X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcRnDriver.lhs;h=0a4895f63a070d3ec4957a38a04a51e213e99d50;hb=ad4a18b179fbe4ad314b3accf32e806cf00f2a0b;hp=e942eec71b6f476b5852f53d3b7ec68b29e04a2d;hpb=7a59afcebe45ea87c42006873f77eb4600d7316f;p=ghc-hetmet.git diff --git a/compiler/typecheck/TcRnDriver.lhs b/compiler/typecheck/TcRnDriver.lhs index e942eec..0a4895f 100644 --- a/compiler/typecheck/TcRnDriver.lhs +++ b/compiler/typecheck/TcRnDriver.lhs @@ -48,7 +48,8 @@ import TcRules ( tcRules ) import TcForeign ( tcForeignImports, tcForeignExports ) import TcInstDcls ( tcInstDecls1, tcInstDecls2 ) import TcIface ( tcExtCoreBindings, tcHiBootIface ) -import IfaceSyn ( checkBootDecl, tyThingToIfaceDecl, IfaceExtName(..) ) +import MkIface ( tyThingToIfaceDecl ) +import IfaceSyn ( checkBootDecl, IfaceExtName(..) ) import TcSimplify ( tcSimplifyTop ) import TcTyClsDecls ( tcTyAndClassDecls ) import LoadIface ( loadOrphanModules ) @@ -112,7 +113,7 @@ import MkId ( unsafeCoerceId ) import TyCon ( tyConName ) import TysWiredIn ( mkListTy, unitTy ) import IdInfo ( GlobalIdDetails(..) ) -import Kind ( Kind ) +import {- Kind parts of -} Type ( Kind, eqKind ) import Var ( globaliseId ) import Name ( isBuiltInSyntax, isInternalName ) import OccName ( isTcOcc ) @@ -428,6 +429,7 @@ tc_rn_src_decls boot_details ds -- Rename the splice expression, and get its supporting decls (rn_splice_expr, splice_fvs) <- rnLExpr splice_expr ; failIfErrsM ; -- Don't typecheck if renaming failed + rnDump (ppr rn_splice_expr) ; -- Execute the splice spliced_decls <- tcSpliceDecls rn_splice_expr ; @@ -995,10 +997,12 @@ tcGhciStmts stmts -- then the type checker would instantiate x..z, and we wouldn't -- get their *polymorphic* values. (And we'd get ambiguity errs -- if they were overloaded, since they aren't applied to anything.) - mk_return ids = nlHsApp (noLoc $ TyApp (nlHsVar ret_id) [ret_ty]) + mk_return ids = nlHsApp (mkHsTyApp ret_id [ret_ty]) (noLoc $ ExplicitList unitTy (map mk_item ids)) ; - mk_item id = nlHsApp (noLoc $ TyApp (nlHsVar unsafeCoerceId) [idType id, unitTy]) - (nlHsVar id) + mk_item id = nlHsApp (noLoc $ unsafeCoerce) + (nlHsVar id) + + unsafeCoerce x = Cast x (mkUnsafeCoercion [idType id, unitTy]) } ; -- OK, we're ready to typecheck the stmts