X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=compiler%2Ftypecheck%2FTcInstDcls.lhs;h=55fc342e30911e9349b58fb1a7ae0b6a060ab756;hb=786932468faac49aafe20b65eabc8bdf465fbc9d;hp=6ffa9d9fa0cc8865462a8e1248e43df56871059d;hpb=0884a2cb09cd5f609b6163a225ca3b8cce942250;p=ghc-hetmet.git diff --git a/compiler/typecheck/TcInstDcls.lhs b/compiler/typecheck/TcInstDcls.lhs index 6ffa9d9..55fc342 100644 --- a/compiler/typecheck/TcInstDcls.lhs +++ b/compiler/typecheck/TcInstDcls.lhs @@ -21,7 +21,6 @@ import FamInst import FamInstEnv import TcDeriv import TcEnv -import RnEnv ( lookupGlobalOccRn ) import RnSource ( addTcgDUs ) import TcHsType import TcUnify @@ -598,7 +597,7 @@ tc_inst_decl2 :: Id -> InstBindings Name -> TcM (LHsBinds Id) -- If there are no superclasses, matters are simpler, because we don't need the case -- see Note [Newtype deriving superclasses] in TcDeriv.lhs -tc_inst_decl2 dfun_id (NewTypeDerived coi) +tc_inst_decl2 dfun_id (NewTypeDerived coi _) = do { let rigid_info = InstSkol origin = SigOrigin rigid_info inst_ty = idType dfun_id @@ -1026,7 +1025,7 @@ tcInstanceMethod loc standalone_deriv clas tyvars dfun_dicts inst_tys = do { meth_bind <- mkGenericDefMethBind clas inst_tys sel_id local_meth_name ; tc_body meth_bind } - tc_default DefMeth -- An polymorphic default method + tc_default (DefMeth dm_name) -- An polymorphic default method = do { -- Build the typechecked version directly, -- without calling typecheck_method; -- see Note [Default methods in instances] @@ -1034,8 +1033,7 @@ tcInstanceMethod loc standalone_deriv clas tyvars dfun_dicts inst_tys -- in $dm inst_tys this -- The 'let' is necessary only because HsSyn doesn't allow -- you to apply a function to a dictionary *expression*. - dm_name <- lookupGlobalOccRn (mkDefMethRdrName sel_name) - -- Might not be imported, but will be an OrigName + ; dm_id <- tcLookupId dm_name ; let dm_inline_prag = idInlinePragma dm_id rhs = HsWrap (WpApp (instToId this_dict) <.> mkWpTyApps inst_tys) $