diff options
author | Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io> | 2021-06-10 16:54:10 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-06-16 20:22:09 -0400 |
commit | a83d29995d096cca1ceff7042b73080db69219cf (patch) | |
tree | 4526c9e04fd39e60280675c3dc0b888d454d644d | |
parent | e25772a0a95fc9b606044e1afae31ff84790838a (diff) | |
download | haskell-a83d29995d096cca1ceff7042b73080db69219cf.tar.gz |
Fix error message for record updates, #19972
Fix found by Adam Gundry.
-rw-r--r-- | compiler/GHC/Tc/Types/Origin.hs | 2 | ||||
-rw-r--r-- | testsuite/tests/parser/should_fail/RecordDotSyntaxFail13.stderr | 10 |
2 files changed, 5 insertions, 7 deletions
diff --git a/compiler/GHC/Tc/Types/Origin.hs b/compiler/GHC/Tc/Types/Origin.hs index e35f5ba385..cb15e962f6 100644 --- a/compiler/GHC/Tc/Types/Origin.hs +++ b/compiler/GHC/Tc/Types/Origin.hs @@ -526,7 +526,7 @@ exprCtOrigin (HsMultiIf _ rhs) = lGRHSCtOrigin rhs exprCtOrigin (HsLet _ _ e) = lexprCtOrigin e exprCtOrigin (HsDo {}) = DoOrigin exprCtOrigin (RecordCon {}) = Shouldn'tHappenOrigin "record construction" -exprCtOrigin (RecordUpd {}) = Shouldn'tHappenOrigin "record update" +exprCtOrigin (RecordUpd {}) = RecordUpdOrigin exprCtOrigin (ExprWithTySig {}) = ExprSigOrigin exprCtOrigin (ArithSeq {}) = Shouldn'tHappenOrigin "arithmetic sequence" exprCtOrigin (HsPragE _ _ e) = lexprCtOrigin e diff --git a/testsuite/tests/parser/should_fail/RecordDotSyntaxFail13.stderr b/testsuite/tests/parser/should_fail/RecordDotSyntaxFail13.stderr index 8b5369731f..24c3f2a59b 100644 --- a/testsuite/tests/parser/should_fail/RecordDotSyntaxFail13.stderr +++ b/testsuite/tests/parser/should_fail/RecordDotSyntaxFail13.stderr @@ -1,14 +1,12 @@ -RecordDotSyntaxFail13.hs:26:11: - Couldn't match type ‘Int’ with ‘Foo -> Int’ +RecordDotSyntaxFail13.hs:26:11: error: + • Couldn't match type ‘Int’ with ‘Foo -> Int’ arising from a functional dependency between: constraint ‘HasField "foo" Foo (Foo -> Int)’ - << This should not appear in error messages. If you see this - in an error message, please report a bug mentioning ‘record update’ at - https://gitlab.haskell.org/ghc/ghc/wikis/report-a-bug >> + arising from a record update instance ‘HasField "foo" Foo Int’ at RecordDotSyntaxFail13.hs:21:10-31 - In the second argument of ‘($)’, namely ‘a {foo}’ + • In the second argument of ‘($)’, namely ‘a {foo}’ In a stmt of a 'do' block: print $ a {foo} In the expression: do let a = ... |