Record pattern synonyms cause spurious name shadowing warnings
The example given in the documentation gives a warning when compiled with -Wall:
{-# LANGUAGE PatternSynonyms #-}
{-# OPTIONS_GHC -Wall #-}
module Test where
-- Test.hs:13:24: warning: [-Wname-shadowing]
-- This binding for ‘x’ shadows the existing binding
-- defined at Test.hs:13:15
--
-- Test.hs:13:27: warning: [-Wname-shadowing]
-- This binding for ‘y’ shadows the existing binding
-- defined at Test.hs:13:18
pattern Point :: Int -> Int -> (Int, Int)
pattern Point{x, y} = (x, y)
I don't see anything being shadowed here, so I don't think GHC should produce these warnings.
Also, the type signature for that example in the documentation is pattern Point :: (Int, Int), which doesn't compile. Should I file a separate bug for that?
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.0.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |