dupFieldErr, checkTupSize )
import DynFlags ( DynFlag(..) )
import BasicTypes ( FixityDirection(..) )
+import SrcLoc ( SrcSpan )
import PrelNames ( thFAKE, hasKey, assertIdKey, assertErrorName,
loopAName, choiceAName, appAName, arrAName, composeAName, firstAName,
negateName, thenMName, bindMName, failMName )
, undefined_RDR, breakpointIdKey, breakpointCondIdKey )
import UniqFM ( eltsUFM )
import DynFlags ( GhcMode(..) )
-import SrcLoc ( srcSpanFile, srcSpanStartLine )
import Name ( isTyVarName )
#endif
import Name ( Name, nameOccName, nameIsLocalOrFrom )
import NameSet
import RdrName ( RdrName, emptyGlobalRdrEnv, extendLocalRdrEnv, lookupLocalRdrEnv )
-import LoadIface ( loadHomeInterface )
+import LoadIface ( loadInterfaceForName )
import UniqFM ( isNullUFM )
import UniqSet ( emptyUniqSet )
import List ( nub )
-- The type checker will complain later
---------------------------------------------------
-methodNamesMatch (MatchGroup ms ty)
+methodNamesMatch (MatchGroup ms _)
= plusFVs (map do_one ms)
where
do_one (L _ (Match pats sig_ty grhss)) = methodNamesGRHSs grhss
rnBracket (VarBr n) = do { name <- lookupOccRn n
; this_mod <- getModule
; checkM (nameIsLocalOrFrom this_mod name) $ -- Reason: deprecation checking asumes the
- do { loadHomeInterface msg name -- home interface is loaded, and this is the
+ do { loadInterfaceForName msg name -- home interface is loaded, and this is the
; return () } -- only way that is going to happen
; returnM (VarBr name, unitFV name) }
where
mkExpr' fnName [] = inLoc (HsVar fnName)
mkExpr' fnName (arg:args)
= lHsApp (mkExpr' fnName args) (inLoc arg)
- expr = unLoc $ mkExpr breakpointFunc [mkScopeArg scope, HsVar undef, HsLit msg]
- mkScopeArg args
- = unLoc $ mkExpr undef (map HsVar args)
- msg = HsString (mkFastString (unpackFS (srcSpanFile sloc) ++ ":" ++ show (srcSpanStartLine sloc)))
+ expr = unLoc $ mkExpr breakpointFunc [mkScopeArg scope, HsVar undef, msg]
+ mkScopeArg args = unLoc $ mkExpr undef (map HsVar args)
+ msg = srcSpanLit sloc
return (expr, emptyFVs)
#endif
+
+srcSpanLit :: SrcSpan -> HsExpr Name
+srcSpanLit span = HsLit (HsString (mkFastString (showSDoc (ppr span))))
\end{code}
%************************************************************************
mkAssertErrorExpr
= getSrcSpanM `thenM` \ sloc ->
let
- expr = HsApp (L sloc (HsVar assertErrorName)) (L sloc (HsLit msg))
- msg = HsStringPrim (mkFastString (showSDoc (ppr sloc)))
+ expr = HsApp (L sloc (HsVar assertErrorName))
+ (L sloc (srcSpanLit sloc))
in
returnM (expr, emptyFVs)
\end{code}