Make SCCFunSig tag Located for ghc-exactprint
authorAlan Zimmerman <alan.zimm@gmail.com>
Fri, 24 Feb 2017 16:57:51 +0000 (18:57 +0200)
committerAlan Zimmerman <alan.zimm@gmail.com>
Fri, 24 Feb 2017 16:59:26 +0000 (18:59 +0200)
compiler/hsSyn/HsBinds.hs
compiler/parser/Parser.y
compiler/typecheck/TcBinds.hs

index 1f38c38..d985082 100644 (file)
@@ -852,7 +852,7 @@ data Sig name
 
   | SCCFunSig  SourceText      -- Note [Pragma source text] in BasicTypes
                (Located name)  -- Function name
-               (Maybe StringLiteral)
+               (Maybe (Located StringLiteral))
   | CompleteMatchSig SourceText (Located [Located name]) (Maybe (Located name))
 
 deriving instance (DataId name) => Data (Sig name)
index 92e3232..c6a8e48 100644 (file)
@@ -2275,7 +2275,7 @@ sigdecl :: { LHsDecl RdrName }
         | '{-# SCC' qvar STRING '#-}'
           {% do { scc <- getSCC $3
                 ; let str_lit = StringLiteral (getSTRINGs $3) scc
-                ; ams (sLL $1 $> (SigD (SCCFunSig (getSCC_PRAGs $1) $2 (Just str_lit))))
+                ; ams (sLL $1 $> (SigD (SCCFunSig (getSCC_PRAGs $1) $2 (Just ( sL1 $3 str_lit)))))
                       [mo $1, mc $4] } }
 
         | '{-# SPECIALISE' activation qvar '::' sigtypes1 '#-}'
index 25c4061..5586abe 100644 (file)
@@ -727,7 +727,7 @@ funBindTicks loc fun_id mod sigs
       -- by the renamer
   , let cc_str
           | Just cc_str <- mb_cc_str
-          = sl_fs cc_str
+          = sl_fs $ unLoc cc_str
           | otherwise
           = getOccFS (Var.varName fun_id)
         cc_name = moduleNameFS (moduleName mod) `appendFS` consFS '.' cc_str