
#14152: Float exit paths out of recursive functions -------------------------------------+------------------------------------- Reporter: nomeata | Owner: (none) Type: task | Status: patch Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: JoinPoints Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #14137 #10918 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by nomeata):
Ah! You probably need to topologically sort those abs_vars; see the `sortQuantVars` call in SetLevels.abstractVars. A bug waiting to happen.
While sleeping over it, I was wondering: Did I really get that wrong? And I checked: No, I did not! The `abs_vars` are derived from `captured`, and that is always in dependency order by construction. So no need for `sortQuantVars`. So I reverted the (unnecessary and hence misleading) use of `sortQuantVars` in 270e3e9bbaabad3d9a1348cea9e46a9ecf1e5ec2, but left a comment that should prevent me from forgetting this again. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14152#comment:42 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler