#13170: Core Lint error on git HEAD -------------------------------------+------------------------------------- Reporter: dobenour | Owner: rwbarton Type: bug | Status: new Priority: highest | Milestone: Component: Compiler | Version: 8.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: | simplCore/should_compile/T13170 Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D3008 Wiki Page: | -------------------------------------+------------------------------------- Comment (by Ben Gamari <ben@…>): In [changeset:"abaa6815e6435ed29ad121b5e59fc017a1d3e836/ghc" abaa6815/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="abaa6815e6435ed29ad121b5e59fc017a1d3e836" Re-sort case alternatives after scrutinee constant folding (#13170) Commit d3b546b1a605 added a "scrutinee constant folding" pass that rewrites a case expression whose scrutinee is an expression like x +# 3#. But case expressions are supposed to have their alternatives in sorted order, so when the scrutinee is (for example) negateInt# x#, we need to re-sort the alternatives after mapping their values. This showed up as a core lint failure when compiling System.Process.Posix: isSigIntQuit n = sig == sigINT || sig == sigQUIT where sig = fromIntegral (-n) Data.List.sortBy is supposed to be linear-time on sorted or reverse-sorted input, so it is probably not worth doing anything more clever than this. Test Plan: Added a new test T13170 for the above case. Reviewers: austin, hsyl20, simonpj, bgamari Reviewed By: hsyl20, simonpj, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D3008 GHC Trac Issues: #13170 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13170#comment:6> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler