diff options
Diffstat (limited to 'compiler/GHC/Parser.y')
-rw-r--r-- | compiler/GHC/Parser.y | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/compiler/GHC/Parser.y b/compiler/GHC/Parser.y index 16b6519788..0f50241bd6 100644 --- a/compiler/GHC/Parser.y +++ b/compiler/GHC/Parser.y @@ -707,7 +707,7 @@ are the most common patterns, rewritten as regular expressions for clarity: MDO { L _ (ITmdo _) } IPDUPVARID { L _ (ITdupipvarid _) } -- GHC extension - LABELVARID { L _ (ITlabelvarid _) } + LABELVARID { L _ (ITlabelvarid _ _) } CHAR { L _ (ITchar _ _) } STRING { L _ (ITstring _ _) } @@ -2908,7 +2908,7 @@ aexp2 :: { ECP } | qcon { ECP $ mkHsVarPV $! $1 } -- See Note [%shift: aexp2 -> ipvar] | ipvar %shift {% acsExpr (\cs -> sL1a $1 (HsIPVar (comment (glRR $1) cs) $! unLoc $1)) } - | overloaded_label {% acsExpr (\cs -> sL1a $1 (HsOverLabel (comment (glRR $1) cs) $! unLoc $1)) } + | overloaded_label {% acsExpr (\cs -> sL1a $1 (HsOverLabel (comment (glRR $1) cs) (fst $! unLoc $1) (snd $! unLoc $1))) } | literal { ECP $ pvA (mkHsLitPV $! $1) } -- This will enable overloaded strings permanently. Normally the renamer turns HsString -- into HsOverLit when -XOverloadedStrings is on. @@ -3494,8 +3494,8 @@ ipvar :: { Located HsIPName } ----------------------------------------------------------------------------- -- Overloaded labels -overloaded_label :: { Located FastString } - : LABELVARID { sL1 $1 (getLABELVARID $1) } +overloaded_label :: { Located (SourceText, FastString) } + : LABELVARID { sL1 $1 (getLABELVARIDs $1, getLABELVARID $1) } ----------------------------------------------------------------------------- -- Warnings and deprecations @@ -3923,7 +3923,7 @@ getQCONID (L _ (ITqconid x)) = x getQVARSYM (L _ (ITqvarsym x)) = x getQCONSYM (L _ (ITqconsym x)) = x getIPDUPVARID (L _ (ITdupipvarid x)) = x -getLABELVARID (L _ (ITlabelvarid x)) = x +getLABELVARID (L _ (ITlabelvarid _ x)) = x getCHAR (L _ (ITchar _ x)) = x getSTRING (L _ (ITstring _ x)) = x getINTEGER (L _ (ITinteger x)) = x @@ -3948,6 +3948,8 @@ getPRIMSTRINGs (L _ (ITprimstring src _)) = src getPRIMINTEGERs (L _ (ITprimint src _)) = src getPRIMWORDs (L _ (ITprimword src _)) = src +getLABELVARIDs (L _ (ITlabelvarid src _)) = src + -- See Note [Pragma source text] in "GHC.Types.Basic" for the following getINLINE_PRAGs (L _ (ITinline_prag _ inl _)) = inlineSpecSource inl getOPAQUE_PRAGs (L _ (ITopaque_prag src)) = src |