X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=compiler%2FdeSugar%2FDesugar.lhs;h=0801b1c66375decd8a89c95184bd647a9d2840b2;hb=ec81fddea750b1ad21f63b7c4307c15f89f10dfd;hp=99be1b0a465b8d49cd711dd5e650da383352cb71;hpb=206b752961b48dcf8943632572b0a4f9c8a0fccc;p=ghc-hetmet.git diff --git a/compiler/deSugar/Desugar.lhs b/compiler/deSugar/Desugar.lhs index 99be1b0..0801b1c 100644 --- a/compiler/deSugar/Desugar.lhs +++ b/compiler/deSugar/Desugar.lhs @@ -293,9 +293,10 @@ dsRule mod in_scope (L loc (HsRule name act vars lhs tv_lhs rhs fv_rhs)) -- Substitute the dict bindings eagerly, -- and take the body apart into a (f args) form - { let local_rule = nameIsLocalOrFrom mod fn_name - -- NB we can't use isLocalId in the orphan test, - -- because isLocalId isn't true of class methods + { let local_rule = isLocalId fn_id + -- NB: isLocalId is False of implicit Ids. This is good becuase + -- we don't want to attach rules to the bindings of implicit Ids, + -- because they don't show up in the bindings until just before code gen fn_name = idName fn_id rule = Rule { ru_name = name, ru_fn = fn_name, ru_act = act,