Bogus multiple-declaration error in GHCi + Template Haskell
Try this (with ghc 7.8.3)
th% ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.8.3
th $ ghc --interactive -XTemplateHaskell
GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> let x = True
Prelude> let y = [d| x = 'c' |]
<interactive>:3:13:
Multiple declarations of ‘x’
Declared at: <interactive>:2:5
<interactive>:3:13
In the Template Haskell quotation [d| x = 'c' |]
This is obviously wrong, a failure of the name-shadwing code in RnNames.extendGlobalRdrEnvRn
.
I suspect that this afflicts 7.10 too, but I can't check that right now.
Working on a fix.
Trac metadata
Trac field | Value |
---|---|
Version | 7.8.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |