Inline instance dictionary functions.
Remove {-# INLINE instance #-} support and uses.
-- current instance decl
SrcLoc
- | InlineInstSig (Maybe Int) -- phase
- SrcLoc
-
| FixSig (FixitySig name) -- Fixity declaration
okInstDclSig ns (Sig _ _ _) = False
okInstDclSig ns (FixSig _) = False
okInstDclSig ns (SpecInstSig _ _) = True
-okInstDclSig ns (InlineInstSig _ _) = True
okInstDclSig ns sig = sigForThisGroup ns sig
sigForThisGroup ns sig
isPragSig (InlineSig _ _ _) = True
isPragSig (NoInlineSig _ _ _) = True
isPragSig (SpecInstSig _ _) = True
-isPragSig (InlineInstSig _ _) = True
isPragSig other = False
\end{code}
hsSigDoc (InlineSig _ _ loc) = (SLIT("INLINE pragma"),loc)
hsSigDoc (NoInlineSig _ _ loc) = (SLIT("NOINLINE pragma"),loc)
hsSigDoc (SpecInstSig _ loc) = (SLIT("SPECIALISE instance pragma"),loc)
-hsSigDoc (InlineInstSig _ loc) = (SLIT("INLINE instance pragma"),loc)
hsSigDoc (FixSig (FixitySig _ _ loc)) = (SLIT("fixity declaration"), loc)
\end{code}
ppr_sig (SpecInstSig ty _)
= hsep [text "{-# SPECIALIZE instance", ppr ty, text "#-}"]
-ppr_sig (InlineInstSig phase _)
- = hsep [text "{-# INLINE instance", ppr_phase phase, text "#-}"]
-
ppr_sig (FixSig fix_sig) = ppr fix_sig
-- may have many specialisations for one value;
-- but not ones that are exactly the same...
(n1 == n2) && (ty1 == ty2)
-eqHsSig (InlineInstSig _ _) (InlineInstSig _ _) = True
-eqHsSig other_1 other_2 = False
+eqHsSig _other1 _other2 = False
\end{code}
{-
-----------------------------------------------------------------------------
-$Id: Parser.y,v 1.57 2001/04/14 22:24:24 qrczak Exp $
+$Id: Parser.y,v 1.58 2001/05/01 09:16:55 qrczak Exp $
Haskell grammar.
| valdef { $1 }
| '{-# INLINE' srcloc opt_phase qvar '#-}' { RdrSig (InlineSig $4 $3 $2) }
| '{-# NOINLINE' srcloc opt_phase qvar '#-}' { RdrSig (NoInlineSig $4 $3 $2) }
- | '{-# INLINE' srcloc 'instance' opt_phase '#-}' { RdrSig (InlineInstSig $4 $2) }
| '{-# SPECIALISE' srcloc qvar '::' sigtypes '#-}'
{ foldr1 RdrAndBindings
(map (\t -> RdrSig (SpecSig $3 t $2)) $5) }
rnHsType (text "A SPECIALISE instance pragma") ty `thenRn` \ new_ty ->
returnRn (SpecInstSig new_ty src_loc)
-renameSig (InlineInstSig p src_loc)
- = returnRn (InlineInstSig p src_loc)
-
renameSig (SpecSig v ty src_loc)
= pushSrcLocRn src_loc $
lookupSigOccRn v `thenRn` \ new_v ->
import Generics ( validGenericInstanceType )
import Module ( Module, foldModuleEnv )
import Name ( getSrcLoc )
-import NameSet ( emptyNameSet, mkNameSet, nameSetToList )
+import NameSet ( emptyNameSet, unitNameSet, nameSetToList )
import PrelInfo ( eRROR_ID )
import PprType ( pprClassPred, pprPred )
import TyCon ( TyCon, isSynTyCon )
dict_constr = classDataCon clas
scs_and_meths = map instToId (sc_dicts ++ meth_insts)
this_dict_id = instToId this_dict
- inlines = mkNameSet [idName dfun_id | InlineInstSig _ _ <- uprags]
+ inlines = unitNameSet (idName dfun_id)
dict_rhs
| null scs_and_meths
% -----------------------------------------------------------------------------
-% $Id: PrelArr.lhs,v 1.27 2001/04/14 22:27:00 qrczak Exp $
+% $Id: PrelArr.lhs,v 1.28 2001/05/01 09:16:56 qrczak Exp $
%
% (c) The University of Glasgow, 1994-2000
%
fmap = amap
instance (Ix i, Eq e) => Eq (Array i e) where
- {-# INLINE instance #-}
(==) = eqArray
instance (Ix i, Ord e) => Ord (Array i e) where
- {-# INLINE instance #-}
compare = cmpArray
instance (Ix a, Show a, Show b) => Show (Array a b) where