
#11071: "Not in scope" errors should be more informative for qualified names. -------------------------------------+------------------------------------- Reporter: mojojojo | Owner: nomeata Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by nomeata): * owner: => nomeata Old description:
E.g., if I have something like `Maybe.maybeToList` in a module, which does not have such an import, I get the following error:
Not in scope: ‘Maybe.maybeToList’
Which leads the user to conclude that the `Maybe` namespace does not contain the `maybeToList` element, instead of informing that the `Maybe` namespace is not imported altogether instead.
New description: E.g., if I have something like `Maybe.maybeToList` in a module, which does not have such an import, I get the following error: Not in scope: ‘Maybe.maybeToList’ Which leads the user to conclude that the `Maybe` namespace does not contain the `maybeToList` element, instead of informing that the `Maybe` namespace is not imported altogether instead -- Comment: Looking at the code right now. The first case (`No Module named Maybe is imported.`) is pretty easy. The other cases are actually quite tricky. The semantics of import lists is rather involved, and the code in `filterImports` in `RnNames` is quite terse. Maybe it is better to simply remember the `mi_exports` of all modules, look up the name there, and if it is found, then conclude that it was the fault of the import list. OTOH, a perfect solution would actually suggest to add `D3` to the `C(D1,D2,D3)` in `import Foo (C(D1,D2))` if a data constructor `Foo.D3` is out of scope. I’ll see how far I get... -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11071#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler