• Simon Peyton Jones's avatar
    Improve Linting in GHCi (fixes Trac #8215) · dfa8ef03
    Simon Peyton Jones authored
    The original problem was that we weren't bringing varaibles bound in the
    interactive context into scope before Linting the result of a top-level
    declaration in GHCi.  (We were doing this for expressions.)
    
    Moreover I found that we weren't Linting the result of desugaring
    a GHCi expression, which we really should be doing.
    
    It took me a bit of time to unravel all this, and I did some refactoring
    to make it easier next time.
    
      * CoreMonad contains the Lint wrappers that get the right
        environments into place.  It always had endPass and lintPassResult
        (which Lints bindings), but now it has lintInteractiveExpr.
    
      * Both use a common function CoreMonad.interactiveInScope to find
        those in-scope variables.
    
    Quite a bit of knock-on effects from this, but nothing exciting.
    dfa8ef03
HscMain.hs 65.1 KB