
#9049: Expose srcLoc from the assertion architecture to allow better error messages -------------------------------------+------------------------------------- Reporter: nh2 | Owner: Type: feature | Status: new request | Milestone: Priority: normal | Version: 7.8.2 Component: Compiler | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: | Related Tickets: None/Unknown | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by rodlogic): I read the wiki:ExplicitCallStack/ImplicitLocations, and the general approach makes sense. The notion of a stack of source locations startes to loose me, though. Could you give a more explicit example? Does it basically mean that {{{show (?location :: Location)}}} below will render g's location and g's caller location? Or am I misunderstanding this? {{{ h :: [a] -> Int h as = f as g :: (?location :: Location) => [a] -> Int g as = f as f :: (?location :: Location) => [a] -> Int f [] = error ("Failure at " ++ show (?location :: Location)) f (x:xs) = ... }}} Could you point me to: 1. In what module should Location be created? 2. Where in the type checker should a Location be created? 3. Where should Locations be pushed? I can then take a closer look and come back with additional questions. @nh2 I am not sure how far along you are with this, so ping me if this is basically done already ;-) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9049#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler