| java.lang.Object mlsub.typing.Typing
Typing | final public class Typing (Code) | | Static class for comparing types
version: $Date: 2004/06/29 18:38:18 $ author: Daniel Bonniot |
Field Summary | |
public static boolean | dbg | static int | level |
Method Summary | |
public static void | assertAbs(TypeConstructor t, Interface i) | public static void | assertAbs(TypeConstructor t, Interface[] is) | public static void | assertImp(TypeConstructor t, Interface i, boolean initial) | public static void | assertImp(TypeConstructor t, Interface[] is, boolean initial) | public static void | assertLeq(Interface i, Interface j) | public static void | assertLeq(Interface itf, Interface[] is) | public static void | createInitialContext() | public static int | enter() Enters a new typing context. | public static int | enter(boolean tentative) | public static int | enter(String message) | public static void | eq(Monotype m1, Monotype m2) | public static void | implies() | public static void | in(Polytype type, Monotype domain) Test if a polytype is in a domain. | public static void | in(Polytype[] types, Monotype[] domains) | public static void | initialLeq(TypeConstructor t, TypeConstructor[] ts) | public static void | initialLeq(TypeConstructor t1, TypeConstructor t2) | public static void | introduce(Element e) | public static void | introduce(Element[] elements) | public static void | introduceTypeSymbols(TypeSymbol[] elements) | public static boolean | isInRigidContext() | static boolean | isTop(Monotype m) | public static int | leave() Leaves the last typing context. | public static int | leave(boolean tentative, boolean commit) | public static void | leq(Collection c1, Collection c2) | public static void | leq(TypeConstructor t, Collection c) | public static void | leq(TypeConstructor t, Monotype m) | public static void | leq(TypeConstructor[] ts, Monotype[] ms) | public static void | leq(Monotype m, TypeConstructor t) | public static void | leq(Polytype t1, Polytype t2) | public static void | leq(Polytype t1, Monotype m2) Particular case. | public static void | leq(Monotype m1, Monotype m2) | public static void | leq(Monotype[] ms1, Monotype[] ms2) | public static void | leq(Monotype[] ms1, Monotype[] ms2, boolean dispatchable) | public static void | leq(TypeConstructor t1, TypeConstructor t2) | public static void | leq(Domain d1, Domain d2) Test if d1 is a subdomain of d2. | public static void | leq(Domain d1, Domain d2, boolean dispatchable) Test if d1 is a subdomain of d2. | public static void | leqHead(Monotype[] vars, Monotype[] base) Assert that the vars are matching the base head constructors. | public static TypeConstructor | lowestInstance(TypeConstructor tc) Find an instance of the parameter
that can exist at runtime (isConcrete() is true). | public static void | releaseInitialContext() | public static boolean | smaller(Domain d1, Domain d2) | public static boolean | smaller(Domain d1, Domain d2, boolean dispatchable) | public static void | startNewCompilation() Called before each independant compilation.
This must clear any side-effect of previous compilations. | public static boolean | testLeq(TypeConstructor t1, TypeConstructor t2) | public static boolean | testRigidLeq(TypeConstructor t1, TypeConstructor t2) |
dbg | public static boolean dbg(Code) | | |
createInitialContext | public static void createInitialContext()(Code) | | |
enter | public static int enter()(Code) | | Enters a new typing context.
If an enter() completed successfully,
a matching leave() MUST be issued some time later by the caller.
|
enter | public static int enter(boolean tentative)(Code) | | Parameters: tentative - when true, we will decide upon leaving if we want to commit the changes made to existential type variables or not. |
enter | public static int enter(String message)(Code) | | Enters a new typing context
Parameters: message - A debug message to know where we are |
in | public static void in(Polytype[] types, Monotype[] domains) throws TypingEx(Code) | | Checks wether types belong to domains
Parameters: types - a collection of Polytypes Parameters: domains - a collection of domains exception: TypingEx - |
introduceTypeSymbols | public static void introduceTypeSymbols(TypeSymbol[] elements)(Code) | | |
isInRigidContext | public static boolean isInRigidContext()(Code) | | |
leave | public static int leave() throws TypingEx(Code) | | Leaves the last typing context.
|
leave | public static int leave(boolean tentative, boolean commit) throws TypingEx(Code) | | Parameters: tentative - must match the parameter used when entering Parameters: commit - if tentative is true, then commit selects whether we want to commit the changes made to existential type variables or not. |
leq | public static void leq(Monotype[] ms1, Monotype[] ms2, boolean dispatchable) throws TypingEx(Code) | | Parameters: dispatchable - when true, we require that non dispatchable types beequal, not mere subtypes. |
leq | public static void leq(Domain d1, Domain d2, boolean dispatchable) throws TypingEx(Code) | | Test if d1 is a subdomain of d2.
Parameters: dispatchable - when true, we require that non dispatchable types beequal, not mere subtypes. |
leqHead | public static void leqHead(Monotype[] vars, Monotype[] base) throws TypingEx(Code) | | Assert that the vars are matching the base head constructors.
|
lowestInstance | public static TypeConstructor lowestInstance(TypeConstructor tc)(Code) | | Find an instance of the parameter
that can exist at runtime (isConcrete() is true).
It's better to return a lower (more precise) one.
|
releaseInitialContext | public static void releaseInitialContext()(Code) | | |
smaller | public static boolean smaller(Domain d1, Domain d2, boolean dispatchable)(Code) | | Parameters: dispatchable - when true, we require that non dispatchable types beequal, not mere subtypes. |
startNewCompilation | public static void startNewCompilation()(Code) | | Called before each independant compilation.
This must clear any side-effect of previous compilations.
|
|
|