|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectpolyglot.ext.jl.types.TypeSystem_c
polyglot.ext.param.types.ParamTypeSystem_c
jif.types.JifTypeSystem_c
public class JifTypeSystem_c
An implementation of the JifTypeSystem interface.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class polyglot.ext.jl.types.TypeSystem_c |
|---|
polyglot.ext.jl.types.TypeSystem_c.MostSpecificComparator |
| Field Summary | |
|---|---|
protected polyglot.types.PrimitiveType |
LABEL_
|
protected polyglot.types.PrimitiveType |
PRINCIPAL_
|
protected polyglot.types.Type |
PRINCIPAL_CLASS_
|
| Fields inherited from class polyglot.ext.jl.types.TypeSystem_c |
|---|
ABSTRACT_METHOD_FLAGS, ACCESS_FLAGS, BOOLEAN_, BYTE_, CHAR_, CLASS_, CONSTRUCTOR_FLAGS, DOUBLE_, extInfo, FIELD_FLAGS, flagsForName, FLOAT_, INITIALIZER_FLAGS, INT_, INTERFACE_FLAGS, loadedResolver, LOCAL_CLASS_FLAGS, LOCAL_FLAGS, LONG_, MEMBER_CLASS_FLAGS, METHOD_FLAGS, NULL_, OBJECT_, SHORT_, STRING_, systemResolver, THROWABLE_, TOP_LEVEL_CLASS_FLAGS, unknownPackage, unknownQualifier, unknownType, VOID_ |
| Fields inherited from interface polyglot.types.TypeSystem |
|---|
SERIALIZE_MEMBERS_WITH_CONTAINER |
| Constructor Summary | |
|---|---|
JifTypeSystem_c(polyglot.types.TypeSystem jlts)
|
|
| Method Summary | |
|---|---|
java.util.List |
abstractSuperInterfaces(polyglot.types.ReferenceType rt)
Exposes utility method of TypeSystem_c |
ActsForConstraint |
actsForConstraint(polyglot.util.Position pos,
Principal actor,
Principal granter,
boolean isEquiv)
Construct an acts-for constraint. |
ArgLabel |
argLabel(polyglot.util.Position pos,
polyglot.types.VarInstance vi)
|
AuthConstraint |
authConstraint(polyglot.util.Position pos,
java.util.List principals)
Construct an authority constraint. |
polyglot.types.Resolver |
bodyContextResolver(polyglot.types.ClassType type,
polyglot.types.Resolver outer)
|
Label |
bottomLabel()
|
Label |
bottomLabel(polyglot.util.Position pos)
|
CallerConstraint |
callerConstraint(polyglot.util.Position pos,
java.util.List principals)
Construct a caller constraint. |
boolean |
canCoerceToString(polyglot.types.Type t,
polyglot.types.Context c)
In general, type t can be coerced to a String if t is a String, a primitive, or it has a toString() method. |
void |
checkInstantiation(polyglot.util.Position pos,
polyglot.ext.param.types.PClass t,
java.util.List args)
|
polyglot.types.Resolver |
classContextResolver(polyglot.types.ClassType type)
|
polyglot.types.ConstructorInstance |
constructorInstance(polyglot.util.Position pos,
polyglot.types.ClassType container,
polyglot.types.Flags flags,
java.util.List formalTypes,
java.util.List excTypes)
|
CovariantParamLabel |
covariantLabel(polyglot.util.Position pos,
ParamInstance pi)
|
polyglot.types.ParsedClassType |
createClassType(polyglot.types.LazyClassInitializer init,
polyglot.frontend.Source fromSource)
|
polyglot.types.Context |
createContext()
|
polyglot.types.LazyClassInitializer |
defaultClassInitializer()
|
polyglot.types.ConstructorInstance |
defaultConstructor(polyglot.util.Position pos,
polyglot.types.ClassType container)
|
java.util.List |
defaultPackageImports()
|
DefaultSignature |
defaultSignature()
|
boolean |
descendsFrom(polyglot.types.Type child,
polyglot.types.Type ancestor)
|
DynamicLabel |
dynamicLabel(polyglot.util.Position pos,
AccessPath path)
|
DynamicPrincipal |
dynamicPrincipal(polyglot.util.Position pos,
AccessPath path)
|
boolean |
equals(polyglot.types.TypeObject t1,
polyglot.types.TypeObject t2)
|
boolean |
equalsNoStrip(polyglot.types.TypeObject t1,
polyglot.types.TypeObject t2)
Compares t1 to t2 without stripping off all the parameters and labels |
ExceptionPath |
exceptionPath(polyglot.types.Type type)
|
ExternalPrincipal |
externalPrincipal(polyglot.util.Position pos,
java.lang.String name)
|
polyglot.types.FieldInstance |
fieldInstance(polyglot.util.Position pos,
polyglot.types.ReferenceType container,
polyglot.types.Flags flags,
polyglot.types.Type type,
java.lang.String name)
|
VarLabel |
freshLabelVariable(polyglot.util.Position pos,
java.lang.String s,
java.lang.String description)
|
Path |
gotoPath(polyglot.ast.Branch.Kind kind,
java.lang.String target)
|
boolean |
hasSafeConstructors(polyglot.types.ClassType ct)
Check if the class has safe constructors, that is, if the constructors of the class definitely do not access a final field (possibly on a subclass) before that field has been initalized. |
polyglot.types.ClassType |
hasUntrustedAncestor(polyglot.types.Type t)
Check if the class has an untrusted non-jif ancestor. |
void |
initialize(polyglot.types.TopLevelResolver loadedResolver,
polyglot.frontend.ExtensionInfo extInfo)
Initializes the type system and its internal constants. |
polyglot.types.InitializerInstance |
initializerInstance(polyglot.util.Position pos,
polyglot.types.ClassType container,
polyglot.types.Flags flags)
|
boolean |
isAccessible(polyglot.types.MemberInstance mi,
polyglot.types.ClassType contextClass)
Exposes utility method of TypeSystem_c |
boolean |
isCastValid(polyglot.types.Type fromType,
polyglot.types.Type toType)
|
boolean |
isImplicitCastValid(polyglot.types.Type fromType,
polyglot.types.Type toType)
|
boolean |
isJifClass(polyglot.types.Type type)
Returns true if the type is a Jif class (will return false if the type is just a jif signature for a java class). |
boolean |
isLabel(polyglot.types.Type type)
Tests if the type is "label". |
boolean |
isLabeled(polyglot.types.Type type)
Returns true if the type is labeled. |
boolean |
isParamsRuntimeRep(polyglot.types.Type t)
Returns true if the type is a Jif class, or if it is a non-Jif class that represents parameters at runtime. |
boolean |
isPrincipal(polyglot.types.Type type)
Tests if the type is "principal". |
boolean |
isSubtype(polyglot.types.Type child,
polyglot.types.Type ancestor)
|
JifConstructorInstance |
jifConstructorInstance(polyglot.util.Position pos,
polyglot.types.ClassType container,
polyglot.types.Flags flags,
Label startLabel,
boolean isDefaultStartLabel,
Label returnLabel,
boolean isDefaultReturnLabel,
java.util.List formalTypes,
java.util.List formalArgLabels,
java.util.List excTypes,
java.util.List constraints)
|
JifMethodInstance |
jifMethodInstance(polyglot.util.Position pos,
polyglot.types.ReferenceType container,
polyglot.types.Flags flags,
polyglot.types.Type returnType,
java.lang.String name,
Label startLabel,
boolean isDefaultStartLabel,
java.util.List formalTypes,
java.util.List formalArgLabels,
Label endLabel,
boolean isDefaultEndLabel,
java.util.List excTypes,
java.util.List constraints)
|
Label |
join(Label L1,
Label L2)
Returns the join of L1 and L2. |
Label |
joinLabel(polyglot.util.Position pos,
java.util.Collection components)
|
polyglot.types.PrimitiveType |
Label()
Returns the "label" type. |
LabeledType |
labeledType(polyglot.util.Position pos,
polyglot.types.Type type,
Label label)
Jif specific stuff |
LabelLeAssertion |
labelLeAssertion(polyglot.util.Position pos,
Label lhs,
Label rhs)
Construct an acts-for constraint. |
Label |
labelOfField(polyglot.types.FieldInstance vi,
Label pc)
Get the label of the field, folding in the PC if appropriate. |
Label |
labelOfLocal(polyglot.types.LocalInstance vi,
Label pc)
Get the label of the local, folding in the PC if appropriate. |
Label |
labelOfType(polyglot.types.Type type)
Get the label of the type, or bottom if unlabeled |
Label |
labelOfType(polyglot.types.Type type,
Label defaultLabel)
Get the label of the type, or defaultLabel if unlabeled. |
polyglot.types.Type |
leastCommonAncestor(polyglot.types.Type type1,
polyglot.types.Type type2)
Override the superclass implementation, to handle label and principal parameters, and array base types correctly. |
protected polyglot.types.Type |
leastCommonAncestorSubtype(polyglot.types.Type subtype,
polyglot.types.Type supertype)
Find out if the least common ancestor of subtype and supertype is supertype, given that strip(subtype) is a sub type of strip(supertype). |
boolean |
leq(Label L1,
Label L2)
|
boolean |
leq(Label L1,
Label L2,
LabelEnv env)
Returns true iff L1 <= L2 in ph. |
polyglot.types.LocalInstance |
localInstance(polyglot.util.Position pos,
polyglot.types.Flags flags,
polyglot.types.Type type,
java.lang.String name)
|
polyglot.types.MethodInstance |
methodInstance(polyglot.util.Position pos,
polyglot.types.ReferenceType container,
polyglot.types.Flags flags,
polyglot.types.Type returnType,
java.lang.String name,
java.util.List formalTypes,
java.util.List excTypes)
|
polyglot.ext.param.types.MuPClass |
mutablePClass(polyglot.util.Position pos)
|
Label |
notTaken()
|
Label |
notTaken(polyglot.util.Position pos)
|
polyglot.types.ClassType |
nullInstantiate(polyglot.util.Position pos,
polyglot.ext.param.types.PClass pc)
|
boolean |
numericConversionValid(polyglot.types.Type t,
java.lang.Object value)
|
polyglot.types.Package |
packageForName(polyglot.types.Package prefix,
java.lang.String name)
|
ParamInstance |
paramInstance(polyglot.util.Position pos,
JifClassType container,
ParamInstance.Kind kind,
java.lang.String name)
Constructs a parameter instance for a class parameter declaration |
ParamLabel |
paramLabel(polyglot.util.Position pos,
ParamInstance pi)
|
PathMap |
pathMap()
|
PathMap |
pathMap(Path path,
Label L)
|
PolicyLabel |
policyLabel(polyglot.util.Position pos,
Principal owner,
java.util.Collection readers)
|
polyglot.types.PrimitiveType |
primitiveForName(java.lang.String name)
|
polyglot.types.PrimitiveType |
Principal()
Returns the "principal" type. |
polyglot.types.Type |
PrincipalClass()
Returns the class jif.lang.Principal. |
PrincipalInstance |
principalInstance(polyglot.util.Position pos,
ExternalPrincipal principal)
Constructs a principal instance for an external principal. |
ParamPrincipal |
principalParam(polyglot.util.Position pos,
ParamInstance pi)
|
Label |
runtimeLabel()
|
Label |
runtimeLabel(polyglot.util.Position pos)
|
Solver |
solver(java.lang.String solverName)
Returns a new label constraint system solver. |
polyglot.types.Type |
staticTarget(polyglot.types.Type t)
|
protected polyglot.types.Type |
strip(polyglot.types.Type type)
|
polyglot.ext.param.types.Subst |
subst(java.util.Map substMap,
java.util.Map cache)
|
ThisLabel |
thisLabel(JifClassType ct)
|
ThisLabel |
thisLabel(polyglot.util.Position pos,
JifClassType ct)
|
Label |
topLabel()
|
Label |
topLabel(polyglot.util.Position pos)
|
java.lang.String |
translateClass(polyglot.types.Resolver c,
polyglot.types.ClassType t)
|
java.lang.String |
translatePrimitive(polyglot.types.Resolver c,
polyglot.types.PrimitiveType t)
|
boolean |
typeEquals(polyglot.types.Type t1,
polyglot.types.Type t2)
|
java.util.Collection |
uncheckedExceptions()
|
polyglot.types.ClassType |
uncheckedInstantiate(polyglot.util.Position pos,
polyglot.ext.param.types.PClass t,
java.util.List actuals)
|
UnknownLabel |
unknownLabel(polyglot.util.Position pos)
|
Param |
unknownParam(polyglot.util.Position pos)
|
UnknownPrincipal |
unknownPrincipal(polyglot.util.Position pos)
|
polyglot.types.UnknownQualifier |
unknownQualifier(polyglot.util.Position pos)
|
polyglot.types.UnknownType |
unknownType(polyglot.util.Position pos)
|
polyglot.types.Type |
unlabel(polyglot.types.Type type)
Remove the label from a type, if any. |
| Methods inherited from class polyglot.ext.param.types.ParamTypeSystem_c |
|---|
instantiate, subst, subst |
| Methods inherited from class polyglot.ext.jl.types.TypeSystem_c |
|---|
Abstract, accessibleFromPackage, ArithmeticException, arrayOf, arrayOf, arrayOf, arrayOf, ArrayStoreException, arrayType, assert_, assert_, Boolean, Byte, callValid, canOverride, Char, checkAccessFlags, checkClassConformance, checkConstructorFlags, checkCycles, checkCycles, checkFieldFlags, checkInitializerFlags, checkLocalClassFlags, checkLocalFlags, checkMemberClassFlags, checkMethodFlags, checkOverride, checkTopLevelClassFlags, Class, classAccessible, classAccessible, classAccessibleFromPackage, ClassCastException, classContextResolver, Cloneable, createClassContextResolver, createClassType, createClassType, createClassType, createNewFlag, createNull, createPackage, createPackage, createPackageContextResolver, createPrimitive, deserializedClassInitializer, Double, Error, Exception, extensionInfo, Final, findAcceptableConstructors, findAcceptableMethods, findConstructor, findConstructor, findField, findField, findField, findFields, findImplementingMethod, findMemberClass, findMemberClass, findMemberClass, findMethod, findMethod, findMostSpecificProcedures, findProcedure, flagsForBits, flagsForName, Float, forName, getTransformedClassName, getTypeEncoderRootSet, hasEnclosingInstance, hasFormals, hasMethod, hasMethodNamed, implemented, importTable, importTable, initEnums, initFlags, initTypes, Int, Interface, interfaces, isAccessible, isCanonical, isEnclosed, isSameMethod, isThrowable, isUncheckedException, legalAbstractMethodFlags, legalAccessFlags, legalConstructorFlags, legalFieldFlags, legalInitializerFlags, legalInterfaceFlags, legalLocalClassFlags, legalLocalFlags, legalMemberClassFlags, legalMethodFlags, legalTopLevelClassFlags, listToString, load, loadedResolver, Long, methodCallValid, moreSpecific, Native, NoFlags, Null, NullPointerException, numericConversionValid, Object, OutOfBoundsException, overrides, packageContextResolver, packageContextResolver, packageContextResolver, packageEquals, packageExists, packageForName, parsedResolver, placeHolder, placeHolder, Private, promote, promote, promoteNumeric, promoteNumeric, Protected, Public, restoreSystemResolver, RuntimeException, saveSystemResolver, Serializable, Short, Static, StrictFP, String, superType, Synchronized, systemResolver, Throwable, throwsSubset, toString, Transient, translateArray, translatePackage, typeForClass, typeForName, unknownPackage, Void, Volatile, wrapperTypeString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface polyglot.ext.param.types.ParamTypeSystem |
|---|
instantiate, subst, subst |
| Methods inherited from interface polyglot.types.TypeSystem |
|---|
Abstract, ArithmeticException, arrayOf, arrayOf, arrayOf, arrayOf, ArrayStoreException, Boolean, Byte, callValid, canOverride, Char, checkAccessFlags, checkClassConformance, checkConstructorFlags, checkCycles, checkFieldFlags, checkInitializerFlags, checkLocalClassFlags, checkLocalFlags, checkMemberClassFlags, checkMethodFlags, checkOverride, checkTopLevelClassFlags, Class, classAccessible, classAccessible, classAccessibleFromPackage, ClassCastException, classContextResolver, Cloneable, createClassContextResolver, createClassType, createClassType, createClassType, createNewFlag, createPackage, createPackage, createPackageContextResolver, deserializedClassInitializer, Double, Error, Exception, extensionInfo, Final, findConstructor, findConstructor, findField, findField, findField, findImplementingMethod, findMemberClass, findMemberClass, findMemberClass, findMethod, findMethod, flagsForBits, Float, forName, getTransformedClassName, getTypeEncoderRootSet, hasEnclosingInstance, hasFormals, hasMethod, hasMethodNamed, implemented, importTable, importTable, Int, Interface, interfaces, isAccessible, isCanonical, isEnclosed, isSameMethod, isThrowable, isUncheckedException, legalAbstractMethodFlags, legalAccessFlags, legalConstructorFlags, legalFieldFlags, legalInitializerFlags, legalInterfaceFlags, legalLocalClassFlags, legalLocalFlags, legalMemberClassFlags, legalMethodFlags, legalTopLevelClassFlags, loadedResolver, Long, methodCallValid, moreSpecific, Native, NoFlags, Null, NullPointerException, numericConversionValid, Object, OutOfBoundsException, overrides, packageContextResolver, packageContextResolver, packageContextResolver, packageEquals, packageExists, packageForName, parsedResolver, placeHolder, placeHolder, Private, promote, promote, Protected, Public, restoreSystemResolver, RuntimeException, saveSystemResolver, Serializable, Short, Static, StrictFP, String, superType, Synchronized, systemResolver, Throwable, throwsSubset, Transient, translateArray, translatePackage, typeForName, unknownPackage, Void, Volatile, wrapperTypeString |
| Field Detail |
|---|
protected polyglot.types.PrimitiveType PRINCIPAL_
protected polyglot.types.PrimitiveType LABEL_
protected polyglot.types.Type PRINCIPAL_CLASS_
| Constructor Detail |
|---|
public JifTypeSystem_c(polyglot.types.TypeSystem jlts)
| Method Detail |
|---|
public Solver solver(java.lang.String solverName)
JifTypeSystem
solver in interface JifTypeSystempublic polyglot.ext.param.types.MuPClass mutablePClass(polyglot.util.Position pos)
mutablePClass in interface polyglot.ext.param.types.ParamTypeSystemmutablePClass in class polyglot.ext.param.types.ParamTypeSystem_cpublic polyglot.types.LazyClassInitializer defaultClassInitializer()
defaultClassInitializer in interface polyglot.types.TypeSystemdefaultClassInitializer in class polyglot.ext.jl.types.TypeSystem_c
public void initialize(polyglot.types.TopLevelResolver loadedResolver,
polyglot.frontend.ExtensionInfo extInfo)
throws polyglot.types.SemanticException
initialize in interface polyglot.types.TypeSysteminitialize in class polyglot.ext.jl.types.TypeSystem_cpolyglot.types.SemanticExceptionpublic polyglot.types.UnknownType unknownType(polyglot.util.Position pos)
unknownType in interface polyglot.types.TypeSystemunknownType in class polyglot.ext.jl.types.TypeSystem_cpublic polyglot.types.UnknownQualifier unknownQualifier(polyglot.util.Position pos)
unknownQualifier in interface polyglot.types.TypeSystemunknownQualifier in class polyglot.ext.jl.types.TypeSystem_c
public polyglot.types.Package packageForName(polyglot.types.Package prefix,
java.lang.String name)
throws polyglot.types.SemanticException
packageForName in interface polyglot.types.TypeSystempackageForName in class polyglot.ext.jl.types.TypeSystem_cpolyglot.types.SemanticExceptionpublic polyglot.types.PrimitiveType Principal()
JifTypeSystem
Principal in interface JifTypeSystempublic polyglot.types.Type PrincipalClass()
JifTypeSystem
PrincipalClass in interface JifTypeSystempublic polyglot.types.PrimitiveType Label()
JifTypeSystem
Label in interface JifTypeSystempublic polyglot.types.Context createContext()
createContext in interface polyglot.types.TypeSystemcreateContext in class polyglot.ext.jl.types.TypeSystem_c
public polyglot.types.InitializerInstance initializerInstance(polyglot.util.Position pos,
polyglot.types.ClassType container,
polyglot.types.Flags flags)
initializerInstance in interface polyglot.types.TypeSysteminitializerInstance in class polyglot.ext.jl.types.TypeSystem_c
public polyglot.types.FieldInstance fieldInstance(polyglot.util.Position pos,
polyglot.types.ReferenceType container,
polyglot.types.Flags flags,
polyglot.types.Type type,
java.lang.String name)
fieldInstance in interface polyglot.types.TypeSystemfieldInstance in class polyglot.ext.jl.types.TypeSystem_c
public polyglot.types.LocalInstance localInstance(polyglot.util.Position pos,
polyglot.types.Flags flags,
polyglot.types.Type type,
java.lang.String name)
localInstance in interface polyglot.types.TypeSystemlocalInstance in class polyglot.ext.jl.types.TypeSystem_c
public polyglot.types.ConstructorInstance constructorInstance(polyglot.util.Position pos,
polyglot.types.ClassType container,
polyglot.types.Flags flags,
java.util.List formalTypes,
java.util.List excTypes)
constructorInstance in interface polyglot.types.TypeSystemconstructorInstance in class polyglot.ext.jl.types.TypeSystem_c
public JifConstructorInstance jifConstructorInstance(polyglot.util.Position pos,
polyglot.types.ClassType container,
polyglot.types.Flags flags,
Label startLabel,
boolean isDefaultStartLabel,
Label returnLabel,
boolean isDefaultReturnLabel,
java.util.List formalTypes,
java.util.List formalArgLabels,
java.util.List excTypes,
java.util.List constraints)
public polyglot.types.MethodInstance methodInstance(polyglot.util.Position pos,
polyglot.types.ReferenceType container,
polyglot.types.Flags flags,
polyglot.types.Type returnType,
java.lang.String name,
java.util.List formalTypes,
java.util.List excTypes)
methodInstance in interface polyglot.types.TypeSystemmethodInstance in class polyglot.ext.jl.types.TypeSystem_c
public JifMethodInstance jifMethodInstance(polyglot.util.Position pos,
polyglot.types.ReferenceType container,
polyglot.types.Flags flags,
polyglot.types.Type returnType,
java.lang.String name,
Label startLabel,
boolean isDefaultStartLabel,
java.util.List formalTypes,
java.util.List formalArgLabels,
Label endLabel,
boolean isDefaultEndLabel,
java.util.List excTypes,
java.util.List constraints)
public ParamInstance paramInstance(polyglot.util.Position pos,
JifClassType container,
ParamInstance.Kind kind,
java.lang.String name)
JifTypeSystem
paramInstance in interface JifTypeSystem
public PrincipalInstance principalInstance(polyglot.util.Position pos,
ExternalPrincipal principal)
JifTypeSystem
principalInstance in interface JifTypeSystem
public boolean descendsFrom(polyglot.types.Type child,
polyglot.types.Type ancestor)
descendsFrom in interface polyglot.types.TypeSystemdescendsFrom in class polyglot.ext.jl.types.TypeSystem_c
public boolean isSubtype(polyglot.types.Type child,
polyglot.types.Type ancestor)
isSubtype in interface polyglot.types.TypeSystemisSubtype in class polyglot.ext.jl.types.TypeSystem_c
public boolean isCastValid(polyglot.types.Type fromType,
polyglot.types.Type toType)
isCastValid in interface polyglot.types.TypeSystemisCastValid in class polyglot.ext.jl.types.TypeSystem_c
public boolean isImplicitCastValid(polyglot.types.Type fromType,
polyglot.types.Type toType)
isImplicitCastValid in interface polyglot.types.TypeSystemisImplicitCastValid in class polyglot.ext.jl.types.TypeSystem_cpublic polyglot.types.Type staticTarget(polyglot.types.Type t)
staticTarget in interface polyglot.types.TypeSystemstaticTarget in class polyglot.ext.jl.types.TypeSystem_c
public boolean equalsNoStrip(polyglot.types.TypeObject t1,
polyglot.types.TypeObject t2)
JifTypeSystem
equalsNoStrip in interface JifTypeSystem
public boolean equals(polyglot.types.TypeObject t1,
polyglot.types.TypeObject t2)
equals in interface polyglot.types.TypeSystemequals in class polyglot.ext.jl.types.TypeSystem_c
public boolean typeEquals(polyglot.types.Type t1,
polyglot.types.Type t2)
typeEquals in interface polyglot.types.TypeSystemtypeEquals in class polyglot.ext.jl.types.TypeSystem_c
protected polyglot.types.Type leastCommonAncestorSubtype(polyglot.types.Type subtype,
polyglot.types.Type supertype)
public polyglot.types.Type leastCommonAncestor(polyglot.types.Type type1,
polyglot.types.Type type2)
throws polyglot.types.SemanticException
leastCommonAncestor in interface polyglot.types.TypeSystemleastCommonAncestor in class polyglot.ext.jl.types.TypeSystem_cpolyglot.types.SemanticException
public boolean numericConversionValid(polyglot.types.Type t,
java.lang.Object value)
numericConversionValid in interface polyglot.types.TypeSystemnumericConversionValid in class polyglot.ext.jl.types.TypeSystem_c
public polyglot.types.Resolver bodyContextResolver(polyglot.types.ClassType type,
polyglot.types.Resolver outer)
public polyglot.types.Resolver classContextResolver(polyglot.types.ClassType type)
classContextResolver in interface polyglot.types.TypeSystemclassContextResolver in class polyglot.ext.jl.types.TypeSystem_c
public polyglot.types.ParsedClassType createClassType(polyglot.types.LazyClassInitializer init,
polyglot.frontend.Source fromSource)
createClassType in interface polyglot.types.TypeSystemcreateClassType in class polyglot.ext.jl.types.TypeSystem_cpublic java.util.List defaultPackageImports()
defaultPackageImports in interface polyglot.types.TypeSystemdefaultPackageImports in class polyglot.ext.jl.types.TypeSystem_c
public LabeledType labeledType(polyglot.util.Position pos,
polyglot.types.Type type,
Label label)
labeledType in interface JifTypeSystempublic PathMap pathMap()
pathMap in interface JifTypeSystem
public PathMap pathMap(Path path,
Label L)
pathMap in interface JifTypeSystempublic ExceptionPath exceptionPath(polyglot.types.Type type)
exceptionPath in interface JifTypeSystem
public Path gotoPath(polyglot.ast.Branch.Kind kind,
java.lang.String target)
gotoPath in interface JifTypeSystempublic Param unknownParam(polyglot.util.Position pos)
unknownParam in interface JifTypeSystem
public polyglot.types.ClassType nullInstantiate(polyglot.util.Position pos,
polyglot.ext.param.types.PClass pc)
nullInstantiate in interface JifTypeSystem
public void checkInstantiation(polyglot.util.Position pos,
polyglot.ext.param.types.PClass t,
java.util.List args)
throws polyglot.types.SemanticException
checkInstantiation in class polyglot.ext.param.types.ParamTypeSystem_cpolyglot.types.SemanticException
public polyglot.types.ClassType uncheckedInstantiate(polyglot.util.Position pos,
polyglot.ext.param.types.PClass t,
java.util.List actuals)
uncheckedInstantiate in class polyglot.ext.param.types.ParamTypeSystem_c
public polyglot.ext.param.types.Subst subst(java.util.Map substMap,
java.util.Map cache)
subst in interface polyglot.ext.param.types.ParamTypeSystemsubst in class polyglot.ext.param.types.ParamTypeSystem_c
public VarLabel freshLabelVariable(polyglot.util.Position pos,
java.lang.String s,
java.lang.String description)
freshLabelVariable in interface JifTypeSystem
public ParamPrincipal principalParam(polyglot.util.Position pos,
ParamInstance pi)
principalParam in interface JifTypeSystem
public DynamicPrincipal dynamicPrincipal(polyglot.util.Position pos,
AccessPath path)
dynamicPrincipal in interface JifTypeSystem
public ExternalPrincipal externalPrincipal(polyglot.util.Position pos,
java.lang.String name)
externalPrincipal in interface JifTypeSystempublic UnknownPrincipal unknownPrincipal(polyglot.util.Position pos)
unknownPrincipal in interface JifTypeSystempublic Label topLabel(polyglot.util.Position pos)
topLabel in interface JifTypeSystempublic Label topLabel()
topLabel in interface JifTypeSystempublic Label bottomLabel(polyglot.util.Position pos)
bottomLabel in interface JifTypeSystempublic Label bottomLabel()
bottomLabel in interface JifTypeSystempublic Label notTaken(polyglot.util.Position pos)
notTaken in interface JifTypeSystempublic Label notTaken()
notTaken in interface JifTypeSystempublic Label runtimeLabel(polyglot.util.Position pos)
runtimeLabel in interface JifTypeSystempublic Label runtimeLabel()
runtimeLabel in interface JifTypeSystem
public CovariantParamLabel covariantLabel(polyglot.util.Position pos,
ParamInstance pi)
covariantLabel in interface JifTypeSystem
public ParamLabel paramLabel(polyglot.util.Position pos,
ParamInstance pi)
paramLabel in interface JifTypeSystem
public PolicyLabel policyLabel(polyglot.util.Position pos,
Principal owner,
java.util.Collection readers)
policyLabel in interface JifTypeSystem
public Label joinLabel(polyglot.util.Position pos,
java.util.Collection components)
joinLabel in interface JifTypeSystem
public DynamicLabel dynamicLabel(polyglot.util.Position pos,
AccessPath path)
dynamicLabel in interface JifTypeSystem
public ArgLabel argLabel(polyglot.util.Position pos,
polyglot.types.VarInstance vi)
argLabel in interface JifTypeSystempublic ThisLabel thisLabel(JifClassType ct)
thisLabel in interface JifTypeSystem
public ThisLabel thisLabel(polyglot.util.Position pos,
JifClassType ct)
thisLabel in interface JifTypeSystempublic UnknownLabel unknownLabel(polyglot.util.Position pos)
unknownLabel in interface JifTypeSystem
public ActsForConstraint actsForConstraint(polyglot.util.Position pos,
Principal actor,
Principal granter,
boolean isEquiv)
JifTypeSystem
actsForConstraint in interface JifTypeSystem
public LabelLeAssertion labelLeAssertion(polyglot.util.Position pos,
Label lhs,
Label rhs)
JifTypeSystem
labelLeAssertion in interface JifTypeSystem
public AuthConstraint authConstraint(polyglot.util.Position pos,
java.util.List principals)
JifTypeSystem
authConstraint in interface JifTypeSystem
public CallerConstraint callerConstraint(polyglot.util.Position pos,
java.util.List principals)
JifTypeSystem
callerConstraint in interface JifTypeSystem
public Label labelOfField(polyglot.types.FieldInstance vi,
Label pc)
JifTypeSystem
labelOfField in interface JifTypeSystem
public Label labelOfLocal(polyglot.types.LocalInstance vi,
Label pc)
JifTypeSystem
labelOfLocal in interface JifTypeSystempublic Label labelOfType(polyglot.types.Type type)
JifTypeSystem
labelOfType in interface JifTypeSystem
public Label labelOfType(polyglot.types.Type type,
Label defaultLabel)
JifTypeSystemdefaultLabel if unlabeled.
labelOfType in interface JifTypeSystemprotected polyglot.types.Type strip(polyglot.types.Type type)
public polyglot.types.Type unlabel(polyglot.types.Type type)
JifTypeSystem
unlabel in interface JifTypeSystempublic boolean isLabel(polyglot.types.Type type)
JifTypeSystem
isLabel in interface JifTypeSystempublic boolean isPrincipal(polyglot.types.Type type)
JifTypeSystem
isPrincipal in interface JifTypeSystempublic boolean isLabeled(polyglot.types.Type type)
JifTypeSystem
isLabeled in interface JifTypeSystempublic boolean isJifClass(polyglot.types.Type type)
isJifClass in interface JifTypeSystempublic boolean isParamsRuntimeRep(polyglot.types.Type t)
JifTypeSystem
isParamsRuntimeRep in interface JifTypeSystempublic polyglot.types.ClassType hasUntrustedAncestor(polyglot.types.Type t)
hasUntrustedAncestor in interface JifTypeSystemt - Type to check
public boolean hasSafeConstructors(polyglot.types.ClassType ct)
public boolean canCoerceToString(polyglot.types.Type t,
polyglot.types.Context c)
canCoerceToString in interface polyglot.types.TypeSystemcanCoerceToString in class polyglot.ext.jl.types.TypeSystem_c
public Label join(Label L1,
Label L2)
JifTypeSystem
join in interface JifTypeSystem
public boolean leq(Label L1,
Label L2,
LabelEnv env)
JifTypeSystemph.
leq in interface JifTypeSystem
public boolean leq(Label L1,
Label L2)
leq in interface JifTypeSystem
public java.lang.String translateClass(polyglot.types.Resolver c,
polyglot.types.ClassType t)
translateClass in interface polyglot.types.TypeSystemtranslateClass in class polyglot.ext.jl.types.TypeSystem_c
public java.lang.String translatePrimitive(polyglot.types.Resolver c,
polyglot.types.PrimitiveType t)
translatePrimitive in interface polyglot.types.TypeSystemtranslatePrimitive in class polyglot.ext.jl.types.TypeSystem_cpublic java.util.List abstractSuperInterfaces(polyglot.types.ReferenceType rt)
JifTypeSystem
abstractSuperInterfaces in interface JifTypeSystemabstractSuperInterfaces in class polyglot.ext.jl.types.TypeSystem_c
public boolean isAccessible(polyglot.types.MemberInstance mi,
polyglot.types.ClassType contextClass)
JifTypeSystem
isAccessible in interface JifTypeSystemisAccessible in interface polyglot.types.TypeSystemisAccessible in class polyglot.ext.jl.types.TypeSystem_c
public polyglot.types.PrimitiveType primitiveForName(java.lang.String name)
throws polyglot.types.SemanticException
primitiveForName in interface polyglot.types.TypeSystemprimitiveForName in class polyglot.ext.jl.types.TypeSystem_cpolyglot.types.SemanticExceptionpublic java.util.Collection uncheckedExceptions()
uncheckedExceptions in interface polyglot.types.TypeSystemuncheckedExceptions in class polyglot.ext.jl.types.TypeSystem_cpublic DefaultSignature defaultSignature()
defaultSignature in interface JifTypeSystem
public polyglot.types.ConstructorInstance defaultConstructor(polyglot.util.Position pos,
polyglot.types.ClassType container)
defaultConstructor in interface polyglot.types.TypeSystemdefaultConstructor in class polyglot.ext.jl.types.TypeSystem_c
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||