Shadowed binding warning message lacks essential information
1: {-# OPTIONS_GHC -Wall #-}
2:
3: module Temp where
4:
5: data Data = Data {name :: String}
6:
7: h :: a -> a
8: h name = name
Temp.hs:8:2:
Warning: This binding for `name' shadows an existing binding
In the definition of `h'
The problem is that this warning talks only about h, and the location of h (line 8). It doesn't mention that name is also a record selector, or where its defined. My particular instance of this bug involved the data declaration being in a separate module, in code contributed by someone else that I hadn't written.
Suggestion: mention one of "its a record field name", "its from Data", "its defined on line x, in file y"
Trac metadata
Trac field | Value |
---|---|
Version | 6.8.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | Unknown |
Architecture | Unknown |