Duplicate type error messages with implicit parameters
The following ill-typed program generates two identical type errors at the same source location:
{-# LANGUAGE ImplicitParams #-}
foo :: (?x :: Int) => a
foo = undefined
bar =
let ?x = "hello"
in foo
The error messages are:
Test.hs:8:8:
Couldn't match type `Int' with `[Char]'
In the expression: foo
In the expression: let ?x = "hello" in foo
In an equation for `bar': bar = let ?x = "hello" in foo
Test.hs:8:8:
Couldn't match type `Int' with `[Char]'
In the expression: foo
In the expression: let ?x = "hello" in foo
In an equation for `bar': bar = let ?x = "hello" in foo
Obviously, it should only print this error once. I encountered this in a larger program where it meant I got eight identical type errors at the same source position!
Trac metadata
Trac field | Value |
---|---|
Version | 7.0.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (Type checker) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |