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
-> 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
(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 $
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