
#12158: ghc: panic! (the 'impossible' happened) translateConPatVec: lookup -------------------------------------+------------------------------------- Reporter: wozgonon | Owner: gkaracha Type: bug | Status: new Priority: normal | Milestone: Component: GHCi | Version: 8.0.1 Resolution: | Keywords: | PatternMatchWarnings Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: #13644 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by adamgundry): * related: => #13644 Comment: The panic here is a duplicate of #13644. With the fix in Phab:D3988 I get: {{{ Prelude> data Stock = Stock {name :: String, ric :: String, price :: Float} Prelude> price Stock{name=name,ric=ric,price=price} = price <interactive>:2:31: error: • Constructor ‘Stock’ does not have field ‘price’ • In the pattern: Stock {name = name, ric = ric, price = price} In an equation for ‘price’: price Stock {name = name, ric = ric, price = price} = price Prelude> let price Stock{name=name,ric=ric,price=price} = price Prelude> }}} This is arguably still wrong, because if the explicit `let` binding works, the implicit one surely should work too. Presumably the GHCi name shadowing magic isn't quite consistent between the two cases. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12158#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler