Implememt -fdefer-type-errors (Trac #5624)
[ghc.git] / compiler / deSugar / DsBinds.lhs
index 7cc5858..8e82787 100644 (file)
@@ -32,6 +32,7 @@ import DsUtils
 
 import HsSyn           -- lots of things
 import CoreSyn         -- lots of things
+import Literal          ( Literal(MachStr) )
 import CoreSubst
 import MkCore
 import CoreUtils
@@ -40,6 +41,7 @@ import CoreUnfold
 import CoreFVs
 import Digraph
 
+
 import TyCon      ( isTupleTyCon, tyConDataCons_maybe )
 import TcEvidence
 import TcType
@@ -705,7 +707,10 @@ dsEvTerm (EvSuperClass d n)
   = Var sc_sel_id `mkTyApps` tys `App` Var d
   where
     sc_sel_id  = classSCSelId cls n    -- Zero-indexed
-    (cls, tys) = getClassPredTys (evVarPred d)    
+    (cls, tys) = getClassPredTys (evVarPred d)   
+dsEvTerm (EvDelayedError ty msg) = Var errorId `mkTyApps` [ty] `mkApps` [litMsg]
+  where errorId = rUNTIME_ERROR_ID
+        litMsg  = Lit (MachStr msg)
 
 ---------------------------------------
 dsTcCoercion :: TcCoercion -> (Coercion -> CoreExpr) -> CoreExpr