X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcBinds.lhs;h=cf0e165259721b4c7d8d1988cdf4b8922902694c;hb=829a54156b8153ccc14e1cf4f100457b25c6f11f;hp=2871f3bd58b027dc1851cfeba29f2ec69c37fba9;hpb=77166b1729061531eeb77c33f4d3b2581f7d4c41;p=ghc-hetmet.git diff --git a/compiler/typecheck/TcBinds.lhs b/compiler/typecheck/TcBinds.lhs index 2871f3b..cf0e165 100644 --- a/compiler/typecheck/TcBinds.lhs +++ b/compiler/typecheck/TcBinds.lhs @@ -310,7 +310,7 @@ tcPolyBinds :: TopLevelFlag -> TcSigFun -> TcPragFun tcPolyBinds top_lvl sig_fn prag_fn rec_group rec_tc binds = let bind_list = bagToList binds - binder_names = collectHsBindBinders binds + binder_names = collectHsBindsBinders binds loc = getLoc (head bind_list) -- TODO: location a bit awkward, but the mbinds have been -- dependency analysed and may no longer be adjacent @@ -446,19 +446,17 @@ tcPrags :: RecFlag -> Bool -- True <=> function is overloaded -> Id -> [LSig Name] -> TcM (Id, [Located TcSpecPrag]) --- Add INLINE and SPECLIASE pragmas +-- Add INLINE and SPECIALSE pragmas -- INLINE prags are added to the (polymorphic) Id directly -- SPECIALISE prags are passed to the desugarer via TcSpecPrags -- Pre-condition: the poly_id is zonked -- Reason: required by tcSubExp -tcPrags _rec_group _multi_bind _is_overloaded_id poly_id prag_sigs +tcPrags _rec_group _multi_bind is_overloaded_id poly_id prag_sigs = do { poly_id' <- tc_inl inl_sigs ; spec_prags <- mapM (wrapLocM (tcSpecPrag poly_id')) spec_sigs --- Commented out until bytestring library removes redundant pragmas --- for packWith and unpackWith --- ; unless (null spec_sigs || is_overloaded_id) warn_discarded_spec + ; unless (null spec_sigs || is_overloaded_id) warn_discarded_spec ; unless (null bad_sigs) warn_discarded_sigs @@ -467,8 +465,8 @@ tcPrags _rec_group _multi_bind _is_overloaded_id poly_id prag_sigs (inl_sigs, other_sigs) = partition isInlineLSig prag_sigs (spec_sigs, bad_sigs) = partition isSpecLSig other_sigs --- warn_discarded_spec = warnPrags poly_id spec_sigs $ --- ptext (sLit "SPECIALISE pragmas for non-overloaded function") + warn_discarded_spec = warnPrags poly_id spec_sigs $ + ptext (sLit "SPECIALISE pragmas for non-overloaded function") warn_dup_inline = warnPrags poly_id inl_sigs $ ptext (sLit "Duplicate INLINE pragmas for") warn_discarded_sigs = warnPrags poly_id bad_sigs $ @@ -582,7 +580,7 @@ unliftedMustBeBang :: LHsBindsLR Var Var -> SDoc unliftedMustBeBang mbind = hang (text "Bindings containing unlifted types must use an outermost bang pattern:") 4 (pprLHsBinds mbind) - $$ text "*** This will be an error in GHC 6.14! Fix your code now!" + $$ text "*** This will be an error in GHC 7.2! Fix your code now!" strictBindErr :: String -> Bool -> LHsBindsLR Var Var -> SDoc strictBindErr flavour unlifted mbind