public class JifTypeSystem_c extends polyglot.ext.param.types.ParamTypeSystem_c<ParamInstance,Param> implements JifTypeSystem
JifTypeSystem interface.| Modifier and Type | Field and Description |
|---|---|
protected polyglot.types.TypeSystem |
jlts |
protected polyglot.types.PrimitiveType |
LABEL_ |
protected LabelTypeCheckUtil |
ltcu |
protected polyglot.types.PrimitiveType |
PRINCIPAL_ |
protected polyglot.types.Type |
PRINCIPAL_CLASS_ |
ABSTRACT_METHOD_FLAGS, ACCESS_FLAGS, BOOLEAN_, BYTE_, CHAR_, CLASS_, CONSTRUCTOR_FLAGS, DOUBLE_, extInfo, FIELD_FLAGS, flagsForName, FLOAT_, INITIALIZER_FLAGS, INT_, INTERFACE_FIELD_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_| Constructor and Description |
|---|
JifTypeSystem_c(polyglot.types.TypeSystem jlts) |
| Modifier and Type | Method and Description |
|---|---|
java.util.List<polyglot.types.ReferenceType> |
abstractSuperInterfaces(polyglot.types.ReferenceType rt)
Exposes utility method of TypeSystem_c
|
java.lang.String |
accessPathDescrip(AccessPath path,
java.lang.String kind) |
protected AccessPathField |
accessPathField(AccessPath path,
polyglot.types.FieldInstance fi,
java.lang.String fieldName,
polyglot.util.Position pos)
Factory method for constructing AccessPathField objects.
|
boolean |
actsFor(Principal p,
Principal q)
Returns true iff p actsfor q in the empty environment.
|
<Actor extends ActsForParam,Granter extends ActsForParam> |
actsForConstraint(polyglot.util.Position pos,
Actor actor,
Granter granter,
boolean isEquiv)
Construct an acts-for constraint.
|
protected ActsForConstraintToJavaExpr |
actsForConstraintTranslator() |
ArgLabel |
argLabel(polyglot.util.Position pos,
polyglot.types.LocalInstance vi,
polyglot.types.CodeInstance ci) |
ArgLabel |
argLabel(polyglot.util.Position pos,
ParamInstance pi) |
protected polyglot.types.ArrayType |
arrayType(polyglot.util.Position pos,
polyglot.types.Type type) |
AuthConstraint |
authConstraint(polyglot.util.Position pos,
java.util.List<Principal> principals)
Construct an authority constraint.
|
AutoEndorseConstraint |
autoEndorseConstraint(polyglot.util.Position pos,
Label endorseTo)
Construct an autoendorse constraint.
|
ConfPolicy |
bottomConfPolicy(polyglot.util.Position pos) |
IntegPolicy |
bottomIntegPolicy(polyglot.util.Position pos) |
Label |
bottomLabel() |
Label |
bottomLabel(polyglot.util.Position pos) |
BottomPrincipal |
bottomPrincipal(polyglot.util.Position pos) |
CallerConstraint |
callerConstraint(polyglot.util.Position pos,
java.util.List<Principal> principals)
Construct a caller constraint.
|
Label |
callSitePCLabel(JifProcedureInstance pi) |
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<ParamInstance,Param> t,
java.util.List<? extends Param> args) |
polyglot.types.reflect.ClassFileLazyClassInitializer |
classFileLazyClassInitializer(polyglot.types.reflect.ClassFile clazz) |
ConfPolicy |
confProjection(Label L) |
Principal |
conjunctivePrincipal(polyglot.util.Position pos,
java.util.Collection<Principal> ps) |
Principal |
conjunctivePrincipal(polyglot.util.Position pos,
Principal l,
Principal r) |
PrincipalToJavaExpr |
conjunctivePrincipalTranslator() |
ConstArrayType |
constArrayOf(polyglot.util.Position pos,
polyglot.types.Type type) |
ConstArrayType |
constArrayOf(polyglot.util.Position pos,
polyglot.types.Type type,
boolean castableToNonConst) |
ConstArrayType |
constArrayOf(polyglot.util.Position pos,
polyglot.types.Type type,
int dims) |
ConstArrayType |
constArrayOf(polyglot.util.Position pos,
polyglot.types.Type type,
int dims,
boolean castableToNonConst) |
ConstArrayType |
constArrayOf(polyglot.util.Position pos,
polyglot.types.Type type,
int dims,
boolean castableToNonConst,
boolean recurseIntoBaseType) |
ConstArrayType |
constArrayOf(polyglot.types.Type type) |
ConstArrayType |
constArrayOf(polyglot.types.Type type,
int dims) |
polyglot.types.ConstructorInstance |
constructorInstance(polyglot.util.Position pos,
polyglot.types.ClassType container,
polyglot.types.Flags flags,
java.util.List<? extends polyglot.types.Type> formalTypes,
java.util.List<? extends polyglot.types.Type> excTypes) |
CovariantParamLabel |
covariantLabel(polyglot.util.Position pos,
ParamInstance pi) |
polyglot.types.ParsedClassType |
createClassType(polyglot.types.LazyClassInitializer init,
polyglot.frontend.Source fromSource) |
JifContext |
createContext() |
protected LabelEnv |
createEmptyLabelEnv() |
LabelEnv |
createLabelEnv() |
Solver |
createSolver(java.lang.String solverName)
Returns a new label constraint system solver.
|
polyglot.types.LazyClassInitializer |
defaultClassInitializer() |
polyglot.types.ConstructorInstance |
defaultConstructor(polyglot.util.Position pos,
polyglot.types.ClassType container) |
java.util.List<java.lang.String> |
defaultPackageImports() |
DefaultSignature |
defaultSignature() |
boolean |
descendsFrom(polyglot.types.Type child,
polyglot.types.Type ancestor) |
polyglot.types.LazyClassInitializer |
deserializedClassInitializer() |
Principal |
disjunctivePrincipal(polyglot.util.Position pos,
java.util.Collection<Principal> ps) |
Principal |
disjunctivePrincipal(polyglot.util.Position pos,
Principal l,
Principal r) |
PrincipalToJavaExpr |
disjunctivePrincipalTranslator() |
DynamicLabel |
dynamicLabel(polyglot.util.Position pos,
AccessPath path) |
protected LabelToJavaExpr |
dynamicLabelTranslator() |
DynamicPrincipal |
dynamicPrincipal(polyglot.util.Position pos,
AccessPath path) |
protected PrincipalToJavaExpr |
dynamicPrincipalTranslator() |
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
|
boolean |
equalsStrip(polyglot.types.TypeObject t1,
polyglot.types.TypeObject t2)
Compares t1 to t2, stripping off all the parameters and labels
|
ExceptionPath |
exceptionPath(polyglot.types.Type type) |
AccessPath |
exprToAccessPath(polyglot.ast.Expr e,
JifContext context)
Create an AccessPath for the expression
e in context context. |
AccessPath |
exprToAccessPath(polyglot.ast.Expr e,
polyglot.types.Type expectedType,
JifContext context)
Create an AccessPath for the expression
e with expected type
expectedType in context context. |
Label |
exprToLabel(JifTypeSystem ts,
polyglot.ast.Expr e,
JifContext context) |
Principal |
exprToPrincipal(JifTypeSystem ts,
polyglot.ast.Expr e,
JifContext context) |
ExternalPrincipal |
externalPrincipal(polyglot.util.Position pos,
java.lang.String name) |
polyglot.types.ClassType |
fatalException() |
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) |
VarPrincipal |
freshPrincipalVariable(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) |
IntegPolicy |
integProjection(Label L) |
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 |
isFinalAccessExpr(polyglot.ast.Expr e) |
boolean |
isFinalAccessExprOrConst(polyglot.ast.Expr e) |
boolean |
isFinalAccessExprOrConst(polyglot.ast.Expr e,
polyglot.types.Type expectedType) |
boolean |
isImplicitCastValid(polyglot.types.Type fromType,
polyglot.types.Type toType) |
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 |
isMarkerFieldName(java.lang.String s)
Is the string s a special marker field name?
|
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 |
isSignature(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 |
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<? extends polyglot.types.Type> formalTypes,
java.util.List<Label> formalArgLabels,
java.util.List<? extends polyglot.types.Type> excTypes,
java.util.List<Assertion> 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<? extends polyglot.types.Type> formalTypes,
java.util.List<Label> formalArgLabels,
Label endLabel,
boolean isDefaultEndLabel,
java.util.List<? extends polyglot.types.Type> excTypes,
java.util.List<Assertion> constraints) |
ConfPolicy |
join(ConfPolicy p1,
ConfPolicy p2) |
IntegPolicy |
join(IntegPolicy p1,
IntegPolicy p2) |
Label |
join(Label L1,
Label L2)
Returns the join of L1 and L2.
|
ConfPolicy |
joinConfPolicy(polyglot.util.Position pos,
java.util.Set<ConfPolicy> components) |
IntegPolicy |
joinIntegPolicy(polyglot.util.Position pos,
java.util.Set<IntegPolicy> components) |
Label |
joinLabel(polyglot.util.Position pos,
java.util.Set<Label> components) |
LabelToJavaExpr |
joinLabelTranslator() |
polyglot.types.PrimitiveType |
Label()
Returns the "label" type.
|
java.lang.String |
LabelClassName()
Returns the name of 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.
|
protected LabelLeAssertionToJavaExpr |
labelLeAssertionTranslator() |
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. |
LabelTypeCheckUtil |
labelTypeCheckUtil() |
java.lang.String |
LabelUtilClassName()
Returns the name of the LabelUtil class.
|
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)
Returns true iff L1 <= L2 in the empty environment.
|
boolean |
leq(Policy p1,
Policy p2) |
polyglot.types.LocalInstance |
localInstance(polyglot.util.Position pos,
polyglot.types.Flags flags,
polyglot.types.Type type,
java.lang.String name) |
ConfPolicy |
meet(ConfPolicy p1,
ConfPolicy p2) |
IntegPolicy |
meet(IntegPolicy p1,
IntegPolicy p2) |
Label |
meet(Label L1,
Label L2)
Returns the meet of L1 and L2.
|
ConfPolicy |
meetConfPolicy(polyglot.util.Position pos,
java.util.Set<ConfPolicy> components) |
IntegPolicy |
meetIntegPolicy(polyglot.util.Position pos,
java.util.Set<IntegPolicy> components) |
Label |
meetLabel(polyglot.util.Position pos,
java.util.Set<Label> components) |
LabelToJavaExpr |
meetLabelTranslator() |
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<? extends polyglot.types.Type> formalTypes,
java.util.List<? extends polyglot.types.Type> excTypes) |
polyglot.ext.param.types.MuPClass<ParamInstance,Param> |
mutablePClass(polyglot.util.Position pos) |
boolean |
needsDynamicTypeMethods(polyglot.types.Type ct)
Returns true if the class has runtime methods for cast and instanceof
|
boolean |
needsImplClass(polyglot.types.Type jpt)
Returns true if the class has runtime methods for cast and instanceof
|
Label |
noComponentsLabel() |
Label |
noComponentsLabel(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<ParamInstance,Param> pc) |
boolean |
numericConversionValid(polyglot.types.Type t,
java.lang.Object value) |
PairLabel |
pairLabel(polyglot.util.Position pos,
ConfPolicy confPol,
IntegPolicy integPol) |
protected LabelToJavaExpr |
pairLabelTranslator() |
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) |
LabelToJavaExpr |
paramLabelTranslator() |
PrincipalToJavaExpr |
paramPrincipalTranslator() |
PathMap |
pathMap() |
PathMap |
pathMap(Path path,
Label L) |
Label |
pathToLabel(polyglot.util.Position pos,
AccessPath path) |
Principal |
pathToPrincipal(polyglot.util.Position pos,
AccessPath path) |
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.
|
java.lang.String |
PrincipalClassName()
Returns the name of the "principal" type.
|
PrincipalInstance |
principalInstance(polyglot.util.Position pos,
ExternalPrincipal principal)
Constructs a principal instance for an external principal.
|
ParamPrincipal |
principalParam(polyglot.util.Position pos,
ParamInstance pi) |
java.lang.String |
PrincipalUtilClassName()
Returns the name of the PrincipalUtil class.
|
void |
processFAP(polyglot.types.ReferenceType rt,
AccessPath path,
JifContext A) |
protected void |
processFAP(polyglot.types.ReferenceType rt,
AccessPath path,
JifContext A,
java.util.Set<polyglot.types.ClassType> visited) |
void |
processFAP(polyglot.types.VarInstance fi,
AccessPath path,
JifContext A) |
protected void |
processFAP(polyglot.types.VarInstance fi,
AccessPath path,
JifContext A,
java.util.Set<polyglot.types.ClassType> visited) |
boolean |
promoteToFatal(polyglot.types.Type t)
Should this exception be promoted to a fatal error?
|
ProviderLabel |
providerLabel(JifClassType ct)
Constructs a label for the provider of the given class type.
|
ProviderLabel |
providerLabel(polyglot.util.Position position,
JifClassType ct) |
protected LabelToJavaExpr |
providerLabelTranslator() |
ReaderPolicy |
readerPolicy(polyglot.util.Position pos,
Principal owner,
java.util.Collection<Principal> readers) |
ReaderPolicy |
readerPolicy(polyglot.util.Position pos,
Principal owner,
Principal reader) |
java.lang.String |
RuntimePackageName()
Returns the name of the Jif runtime package.
|
polyglot.types.Type |
staticTarget(polyglot.types.Type t) |
protected polyglot.types.Type |
strip(polyglot.types.Type type) |
protected polyglot.ext.param.types.Subst<ParamInstance,Param> |
substImpl(java.util.Map<ParamInstance,? extends Param> substMap) |
ThisLabel |
thisLabel(polyglot.types.ArrayType at) |
ThisLabel |
thisLabel(JifClassType ct) |
ThisLabel |
thisLabel(polyglot.util.Position pos,
JifClassType ct) |
ThisLabel |
thisLabel(polyglot.util.Position pos,
polyglot.types.ReferenceType ct) |
Label |
toLabel(Principal p) |
ConfPolicy |
topConfPolicy(polyglot.util.Position pos) |
IntegPolicy |
topIntegPolicy(polyglot.util.Position pos) |
Label |
topLabel() |
Label |
topLabel(polyglot.util.Position pos) |
TopPrincipal |
topPrincipal(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<polyglot.types.Type> |
uncheckedExceptions() |
polyglot.types.ClassType |
uncheckedInstantiate(polyglot.util.Position pos,
polyglot.ext.param.types.PClass<ParamInstance,Param> t,
java.util.List<? extends Param> 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.
|
AccessPath |
varInstanceToAccessPath(polyglot.types.VarInstance vi,
polyglot.util.Position pos) |
AccessPath |
varInstanceToAccessPath(polyglot.types.VarInstance vi,
java.lang.String name,
polyglot.util.Position pos) |
WriterPolicy |
writerPolicy(polyglot.util.Position pos,
Principal owner,
java.util.Collection<Principal> writers) |
WriterPolicy |
writerPolicy(polyglot.util.Position pos,
Principal owner,
Principal writer) |
WritersToReadersLabel |
writersToReadersLabel(polyglot.util.Position pos,
Label L) |
Abstract, accessibleFromPackage, ArithmeticException, arrayOf, arrayOf, arrayOf, arrayOf, ArrayStoreException, assert_, assert_, AssertionError, Boolean, Byte, callValid, canOverride, Char, checkAccessFlags, checkClassConformance, checkClassFlagsConflict, checkConstructorFlags, checkCycles, checkCycles, checkFieldFlags, checkInitializerFlags, checkInterfaceFieldFlags, checkLocalClassFlags, checkLocalFlags, checkMemberClassFlags, checkMethodFlags, checkOverride, checkTopLevelClassFlags, Class, classAccessible, classAccessible, classAccessibleFromPackage, ClassCastException, classContextResolver, classContextResolver, Cloneable, createArrayType, createClassContextResolver, createClassType, createClassType, createClassType, createNewFlag, createNull, createPackage, createPackage, createPackageContextResolver, createPrimitive, Double, Error, Exception, extensionInfo, Final, findAcceptableConstructors, findAcceptableMethods, findConstructor, findConstructor, findConstructor, findField, findField, findField, findField, findFields, findImplementingMethod, findMemberClass, findMemberClass, findMemberClass, findMethod, findMethod, findMethod, findMostSpecificProcedures, findProcedure, flagsForBits, flagsForName, Float, forName, forName, getTransformedClassName, getTypeEncoderRootSet, hasAccessibleMethodNamed, hasEnclosingInstance, hasFormals, hasMethod, hasMethodNamed, implemented, importTable, importTable, initEnums, initFlags, initTypes, Int, Interface, interfaces, isAccessible, isAccessible, isAccessible, isAccessible, isCanonical, isEnclosed, isInherited, isMember, isSameConstructor, isSameMethod, isThrowable, isUncheckedException, legalAbstractMethodFlags, legalAccessFlags, legalConstructorFlags, legalFieldFlags, legalInitializerFlags, legalInterfaceFieldFlags, legalLocalClassFlags, legalLocalFlags, legalMemberClassFlags, legalMethodFlags, legalTopLevelClassFlags, listToString, load, loadedResolver, Long, methodCallValid, moreSpecific, mostSpecificComparator, Native, NoFlags, Null, NullPointerException, numericConversionValid, Object, OutOfBoundsException, overrides, packageContextResolver, packageContextResolver, packageContextResolver, packageEquals, packageExists, packageForName, packageForName, parsedResolver, placeHolder, placeHolder, Private, promote, promote, promoteNumeric, promoteNumeric, Protected, Public, restoreSystemResolver, returnTypesConsistent, RuntimeException, saveSystemResolver, Serializable, Short, Static, StrictFP, String, superType, Synchronized, systemResolver, Throwable, throwsSubset, toString, Transient, translateArray, translatePackage, typeForClass, typeForClass, typeForName, unknownPackage, Void, Volatile, wrapperTypeStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitAbstract, ArithmeticException, arrayOf, arrayOf, arrayOf, arrayOf, ArrayStoreException, AssertionError, Boolean, Byte, callValid, canOverride, Char, checkAccessFlags, checkClassConformance, checkConstructorFlags, checkCycles, checkFieldFlags, checkInitializerFlags, checkInterfaceFieldFlags, checkLocalClassFlags, checkLocalFlags, checkMemberClassFlags, checkMethodFlags, checkOverride, checkTopLevelClassFlags, Class, classAccessible, classAccessible, classAccessibleFromPackage, ClassCastException, classContextResolver, classContextResolver, Cloneable, createClassContextResolver, createClassType, createClassType, createClassType, createNewFlag, createPackage, createPackage, createPackageContextResolver, Double, Error, Exception, extensionInfo, Final, findConstructor, findConstructor, findConstructor, findField, findField, findField, findField, findImplementingMethod, findMemberClass, findMemberClass, findMemberClass, findMethod, findMethod, findMethod, flagsForBits, Float, forName, getTransformedClassName, getTypeEncoderRootSet, hasAccessibleMethodNamed, hasEnclosingInstance, hasFormals, hasMethod, hasMethodNamed, implemented, importTable, importTable, Int, Interface, interfaces, isAccessible, isAccessible, isAccessible, isAccessible, isCanonical, isEnclosed, isInherited, isMember, isSameConstructor, isSameMethod, isThrowable, isUncheckedException, legalAbstractMethodFlags, legalAccessFlags, legalConstructorFlags, legalFieldFlags, legalInitializerFlags, legalInterfaceFieldFlags, legalLocalClassFlags, legalLocalFlags, legalMemberClassFlags, legalMethodFlags, legalTopLevelClassFlags, loadedResolver, Long, methodCallValid, moreSpecific, mostSpecificComparator, Native, NoFlags, Null, NullPointerException, numericConversionValid, Object, OutOfBoundsException, overrides, packageContextResolver, packageContextResolver, packageContextResolver, packageEquals, packageExists, packageForName, 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, wrapperTypeStringprotected final polyglot.types.TypeSystem jlts
protected polyglot.types.PrimitiveType PRINCIPAL_
protected polyglot.types.PrimitiveType LABEL_
protected polyglot.types.Type PRINCIPAL_CLASS_
protected LabelTypeCheckUtil ltcu
public polyglot.types.LazyClassInitializer deserializedClassInitializer()
deserializedClassInitializer in interface polyglot.types.TypeSystemdeserializedClassInitializer in class polyglot.types.TypeSystem_cpublic Solver createSolver(java.lang.String solverName)
JifTypeSystemcreateSolver in interface JifTypeSystemprotected LabelEnv createEmptyLabelEnv()
public LabelEnv createLabelEnv()
createLabelEnv in interface JifTypeSystempublic polyglot.ext.param.types.MuPClass<ParamInstance,Param> mutablePClass(polyglot.util.Position pos)
mutablePClass in interface polyglot.ext.param.types.ParamTypeSystem<ParamInstance,Param>mutablePClass in class polyglot.ext.param.types.ParamTypeSystem_c<ParamInstance,Param>public polyglot.types.LazyClassInitializer defaultClassInitializer()
defaultClassInitializer in interface polyglot.types.TypeSystemdefaultClassInitializer in class polyglot.types.TypeSystem_cpublic void initialize(polyglot.types.TopLevelResolver loadedResolver,
polyglot.frontend.ExtensionInfo extInfo)
throws polyglot.types.SemanticException
initialize in interface polyglot.types.TypeSysteminitialize in class polyglot.types.TypeSystem_cpolyglot.types.SemanticExceptionpublic polyglot.types.UnknownType unknownType(polyglot.util.Position pos)
unknownType in interface polyglot.types.TypeSystemunknownType in class polyglot.types.TypeSystem_cpublic polyglot.types.UnknownQualifier unknownQualifier(polyglot.util.Position pos)
unknownQualifier in interface polyglot.types.TypeSystemunknownQualifier in class polyglot.types.TypeSystem_cpublic java.lang.String PrincipalClassName()
JifTypeSystemPrincipalClassName in interface JifTypeSystempublic java.lang.String PrincipalUtilClassName()
JifTypeSystemPrincipalUtilClassName in interface JifTypeSystempublic java.lang.String LabelClassName()
JifTypeSystemLabelClassName in interface JifTypeSystempublic java.lang.String LabelUtilClassName()
JifTypeSystemLabelUtilClassName in interface JifTypeSystempublic java.lang.String RuntimePackageName()
JifTypeSystemRuntimePackageName in interface JifTypeSystempublic polyglot.types.PrimitiveType Principal()
JifTypeSystemPrincipal in interface JifTypeSystempublic polyglot.types.Type PrincipalClass()
JifTypeSystemPrincipalClass in interface JifTypeSystempublic polyglot.types.PrimitiveType Label()
JifTypeSystemLabel in interface JifTypeSystempublic JifContext createContext()
createContext in interface JifTypeSystemcreateContext in interface polyglot.types.TypeSystemcreateContext in class polyglot.types.TypeSystem_cpublic ConstArrayType constArrayOf(polyglot.types.Type type)
constArrayOf in interface JifTypeSystempublic ConstArrayType constArrayOf(polyglot.util.Position pos, polyglot.types.Type type)
constArrayOf in interface JifTypeSystempublic ConstArrayType constArrayOf(polyglot.util.Position pos, polyglot.types.Type type, boolean castableToNonConst)
public ConstArrayType constArrayOf(polyglot.types.Type type, int dims)
constArrayOf in interface JifTypeSystempublic ConstArrayType constArrayOf(polyglot.util.Position pos, polyglot.types.Type type, int dims)
constArrayOf in interface JifTypeSystempublic ConstArrayType constArrayOf(polyglot.util.Position pos, polyglot.types.Type type, int dims, boolean castableToNonConst)
constArrayOf in interface JifTypeSystempublic ConstArrayType constArrayOf(polyglot.util.Position pos, polyglot.types.Type type, int dims, boolean castableToNonConst, boolean recurseIntoBaseType)
constArrayOf in interface JifTypeSystemprotected polyglot.types.ArrayType arrayType(polyglot.util.Position pos,
polyglot.types.Type type)
arrayType in class polyglot.types.TypeSystem_cpublic 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.types.TypeSystem_cpublic 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.types.TypeSystem_cpublic 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.types.TypeSystem_cpublic polyglot.types.ConstructorInstance constructorInstance(polyglot.util.Position pos,
polyglot.types.ClassType container,
polyglot.types.Flags flags,
java.util.List<? extends polyglot.types.Type> formalTypes,
java.util.List<? extends polyglot.types.Type> excTypes)
constructorInstance in interface polyglot.types.TypeSystemconstructorInstance in class polyglot.types.TypeSystem_cpublic 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<? extends polyglot.types.Type> formalTypes, java.util.List<Label> formalArgLabels, java.util.List<? extends polyglot.types.Type> excTypes, java.util.List<Assertion> 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<? extends polyglot.types.Type> formalTypes,
java.util.List<? extends polyglot.types.Type> excTypes)
methodInstance in interface polyglot.types.TypeSystemmethodInstance in class polyglot.types.TypeSystem_cpublic 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<? extends polyglot.types.Type> formalTypes, java.util.List<Label> formalArgLabels, Label endLabel, boolean isDefaultEndLabel, java.util.List<? extends polyglot.types.Type> excTypes, java.util.List<Assertion> constraints)
jifMethodInstance in interface JifTypeSystempublic ParamInstance paramInstance(polyglot.util.Position pos, JifClassType container, ParamInstance.Kind kind, java.lang.String name)
JifTypeSystemparamInstance in interface JifTypeSystempublic PrincipalInstance principalInstance(polyglot.util.Position pos, ExternalPrincipal principal)
JifTypeSystemprincipalInstance in interface JifTypeSystempublic boolean descendsFrom(polyglot.types.Type child,
polyglot.types.Type ancestor)
descendsFrom in interface polyglot.types.TypeSystemdescendsFrom in class polyglot.types.TypeSystem_cpublic boolean isSubtype(polyglot.types.Type child,
polyglot.types.Type ancestor)
isSubtype in interface polyglot.types.TypeSystemisSubtype in class polyglot.types.TypeSystem_cpublic boolean isCastValid(polyglot.types.Type fromType,
polyglot.types.Type toType)
isCastValid in interface polyglot.types.TypeSystemisCastValid in class polyglot.types.TypeSystem_cpublic boolean isImplicitCastValid(polyglot.types.Type fromType,
polyglot.types.Type toType)
isImplicitCastValid in interface polyglot.types.TypeSystemisImplicitCastValid in class polyglot.types.TypeSystem_cpublic polyglot.types.Type staticTarget(polyglot.types.Type t)
staticTarget in interface polyglot.types.TypeSystemstaticTarget in class polyglot.types.TypeSystem_cpublic boolean equalsNoStrip(polyglot.types.TypeObject t1,
polyglot.types.TypeObject t2)
JifTypeSystemequalsNoStrip in interface JifTypeSystempublic boolean equalsStrip(polyglot.types.TypeObject t1,
polyglot.types.TypeObject t2)
JifTypeSystemequalsStrip in interface JifTypeSystempublic boolean equals(polyglot.types.TypeObject t1,
polyglot.types.TypeObject t2)
equals in interface polyglot.types.TypeSystemequals in class polyglot.types.TypeSystem_cpublic boolean typeEquals(polyglot.types.Type t1,
polyglot.types.Type t2)
typeEquals in interface polyglot.types.TypeSystemtypeEquals in class polyglot.types.TypeSystem_cprotected 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.types.TypeSystem_cpolyglot.types.SemanticExceptionpublic boolean numericConversionValid(polyglot.types.Type t,
java.lang.Object value)
numericConversionValid in interface polyglot.types.TypeSystemnumericConversionValid in class polyglot.types.TypeSystem_cpublic polyglot.types.ParsedClassType createClassType(polyglot.types.LazyClassInitializer init,
polyglot.frontend.Source fromSource)
createClassType in interface polyglot.types.TypeSystemcreateClassType in class polyglot.types.TypeSystem_cpublic java.util.List<java.lang.String> defaultPackageImports()
defaultPackageImports in interface polyglot.types.TypeSystemdefaultPackageImports in class polyglot.types.TypeSystem_cpublic polyglot.types.reflect.ClassFileLazyClassInitializer classFileLazyClassInitializer(polyglot.types.reflect.ClassFile clazz)
classFileLazyClassInitializer in interface polyglot.types.TypeSystemclassFileLazyClassInitializer in class polyglot.types.TypeSystem_cpublic LabeledType labeledType(polyglot.util.Position pos, polyglot.types.Type type, Label label)
labeledType in interface JifTypeSystempublic PathMap pathMap()
pathMap in interface JifTypeSystempublic PathMap pathMap(Path path, Label L)
pathMap in interface JifTypeSystempublic ExceptionPath exceptionPath(polyglot.types.Type type)
exceptionPath in interface JifTypeSystempublic Path gotoPath(polyglot.ast.Branch.Kind kind, java.lang.String target)
gotoPath in interface JifTypeSystempublic Param unknownParam(polyglot.util.Position pos)
unknownParam in interface JifTypeSystempublic polyglot.types.ClassType nullInstantiate(polyglot.util.Position pos,
polyglot.ext.param.types.PClass<ParamInstance,Param> pc)
nullInstantiate in interface JifTypeSystempublic void checkInstantiation(polyglot.util.Position pos,
polyglot.ext.param.types.PClass<ParamInstance,Param> t,
java.util.List<? extends Param> args)
throws polyglot.types.SemanticException
checkInstantiation in class polyglot.ext.param.types.ParamTypeSystem_c<ParamInstance,Param>polyglot.types.SemanticExceptionpublic polyglot.types.ClassType uncheckedInstantiate(polyglot.util.Position pos,
polyglot.ext.param.types.PClass<ParamInstance,Param> t,
java.util.List<? extends Param> actuals)
uncheckedInstantiate in class polyglot.ext.param.types.ParamTypeSystem_c<ParamInstance,Param>protected polyglot.ext.param.types.Subst<ParamInstance,Param> substImpl(java.util.Map<ParamInstance,? extends Param> substMap)
substImpl in class polyglot.ext.param.types.ParamTypeSystem_c<ParamInstance,Param>public polyglot.types.ClassType fatalException()
fatalException in interface JifTypeSystempublic VarLabel freshLabelVariable(polyglot.util.Position pos, java.lang.String s, java.lang.String description)
freshLabelVariable in interface JifTypeSystempublic VarPrincipal freshPrincipalVariable(polyglot.util.Position pos, java.lang.String s, java.lang.String description)
freshPrincipalVariable in interface JifTypeSystempublic ParamPrincipal principalParam(polyglot.util.Position pos, ParamInstance pi)
principalParam in interface JifTypeSystempublic DynamicPrincipal dynamicPrincipal(polyglot.util.Position pos, AccessPath path)
dynamicPrincipal in interface JifTypeSystemprotected PrincipalToJavaExpr dynamicPrincipalTranslator()
public Principal pathToPrincipal(polyglot.util.Position pos, AccessPath path)
pathToPrincipal in interface JifTypeSystempublic ExternalPrincipal externalPrincipal(polyglot.util.Position pos, java.lang.String name)
externalPrincipal in interface JifTypeSystempublic UnknownPrincipal unknownPrincipal(polyglot.util.Position pos)
unknownPrincipal in interface JifTypeSystempublic TopPrincipal topPrincipal(polyglot.util.Position pos)
topPrincipal in interface JifTypeSystempublic BottomPrincipal bottomPrincipal(polyglot.util.Position pos)
bottomPrincipal in interface JifTypeSystempublic Principal conjunctivePrincipal(polyglot.util.Position pos, Principal l, Principal r)
conjunctivePrincipal in interface JifTypeSystempublic Principal conjunctivePrincipal(polyglot.util.Position pos, java.util.Collection<Principal> ps)
conjunctivePrincipal in interface JifTypeSystempublic PrincipalToJavaExpr conjunctivePrincipalTranslator()
conjunctivePrincipalTranslator in interface JifTypeSystempublic Principal disjunctivePrincipal(polyglot.util.Position pos, Principal l, Principal r)
disjunctivePrincipal in interface JifTypeSystempublic Principal disjunctivePrincipal(polyglot.util.Position pos, java.util.Collection<Principal> ps)
disjunctivePrincipal in interface JifTypeSystempublic PrincipalToJavaExpr disjunctivePrincipalTranslator()
disjunctivePrincipalTranslator in interface JifTypeSystempublic LabelToJavaExpr paramLabelTranslator()
paramLabelTranslator in interface JifTypeSystempublic PrincipalToJavaExpr paramPrincipalTranslator()
paramPrincipalTranslator 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 ProviderLabel providerLabel(JifClassType ct)
JifTypeSystemproviderLabel in interface JifTypeSystempublic ProviderLabel providerLabel(polyglot.util.Position position, JifClassType ct)
providerLabel in interface JifTypeSystemprotected LabelToJavaExpr providerLabelTranslator()
public Label noComponentsLabel()
noComponentsLabel in interface JifTypeSystempublic Label noComponentsLabel(polyglot.util.Position pos)
noComponentsLabel in interface JifTypeSystempublic Label notTaken(polyglot.util.Position pos)
notTaken in interface JifTypeSystempublic Label notTaken()
notTaken in interface JifTypeSystempublic CovariantParamLabel covariantLabel(polyglot.util.Position pos, ParamInstance pi)
covariantLabel in interface JifTypeSystempublic ParamLabel paramLabel(polyglot.util.Position pos, ParamInstance pi)
paramLabel in interface JifTypeSystempublic ReaderPolicy readerPolicy(polyglot.util.Position pos, Principal owner, Principal reader)
readerPolicy in interface JifTypeSystempublic ReaderPolicy readerPolicy(polyglot.util.Position pos, Principal owner, java.util.Collection<Principal> readers)
readerPolicy in interface JifTypeSystempublic WriterPolicy writerPolicy(polyglot.util.Position pos, Principal owner, Principal writer)
writerPolicy in interface JifTypeSystempublic WriterPolicy writerPolicy(polyglot.util.Position pos, Principal owner, java.util.Collection<Principal> writers)
writerPolicy in interface JifTypeSystempublic ConfPolicy bottomConfPolicy(polyglot.util.Position pos)
bottomConfPolicy in interface JifTypeSystempublic IntegPolicy bottomIntegPolicy(polyglot.util.Position pos)
bottomIntegPolicy in interface JifTypeSystempublic ConfPolicy topConfPolicy(polyglot.util.Position pos)
topConfPolicy in interface JifTypeSystempublic IntegPolicy topIntegPolicy(polyglot.util.Position pos)
topIntegPolicy in interface JifTypeSystempublic Label joinLabel(polyglot.util.Position pos, java.util.Set<Label> components)
joinLabel in interface JifTypeSystempublic LabelToJavaExpr joinLabelTranslator()
public Label meetLabel(polyglot.util.Position pos, java.util.Set<Label> components)
meetLabel in interface JifTypeSystempublic LabelToJavaExpr meetLabelTranslator()
public DynamicLabel dynamicLabel(polyglot.util.Position pos, AccessPath path)
dynamicLabel in interface JifTypeSystempublic Label pathToLabel(polyglot.util.Position pos, AccessPath path)
pathToLabel in interface JifTypeSystemprotected LabelToJavaExpr dynamicLabelTranslator()
public ArgLabel argLabel(polyglot.util.Position pos, polyglot.types.LocalInstance vi, polyglot.types.CodeInstance ci)
argLabel in interface JifTypeSystempublic ArgLabel argLabel(polyglot.util.Position pos, ParamInstance pi)
argLabel in interface JifTypeSystempublic Label callSitePCLabel(JifProcedureInstance pi)
callSitePCLabel in interface JifTypeSystempublic ThisLabel thisLabel(JifClassType ct)
thisLabel in interface JifTypeSystempublic ThisLabel thisLabel(polyglot.types.ArrayType at)
thisLabel in interface JifTypeSystempublic ThisLabel thisLabel(polyglot.util.Position pos, JifClassType ct)
thisLabel in interface JifTypeSystempublic ThisLabel thisLabel(polyglot.util.Position pos, polyglot.types.ReferenceType ct)
public UnknownLabel unknownLabel(polyglot.util.Position pos)
unknownLabel in interface JifTypeSystempublic PairLabel pairLabel(polyglot.util.Position pos, ConfPolicy confPol, IntegPolicy integPol)
pairLabel in interface JifTypeSystemprotected LabelToJavaExpr pairLabelTranslator()
public WritersToReadersLabel writersToReadersLabel(polyglot.util.Position pos, Label L)
writersToReadersLabel in interface JifTypeSystempublic <Actor extends ActsForParam,Granter extends ActsForParam> ActsForConstraint<Actor,Granter> actsForConstraint(polyglot.util.Position pos, Actor actor, Granter granter, boolean isEquiv)
JifTypeSystemactsForConstraint in interface JifTypeSystemprotected ActsForConstraintToJavaExpr actsForConstraintTranslator()
public LabelLeAssertion labelLeAssertion(polyglot.util.Position pos, Label lhs, Label rhs)
JifTypeSystemlabelLeAssertion in interface JifTypeSystemprotected LabelLeAssertionToJavaExpr labelLeAssertionTranslator()
public AuthConstraint authConstraint(polyglot.util.Position pos, java.util.List<Principal> principals)
JifTypeSystemauthConstraint in interface JifTypeSystempublic AutoEndorseConstraint autoEndorseConstraint(polyglot.util.Position pos, Label endorseTo)
JifTypeSystemautoEndorseConstraint in interface JifTypeSystempublic CallerConstraint callerConstraint(polyglot.util.Position pos, java.util.List<Principal> principals)
JifTypeSystemcallerConstraint in interface JifTypeSystempublic Label labelOfField(polyglot.types.FieldInstance vi, Label pc)
JifTypeSystemlabelOfField in interface JifTypeSystempublic Label labelOfLocal(polyglot.types.LocalInstance vi, Label pc)
JifTypeSystemlabelOfLocal in interface JifTypeSystempublic Label labelOfType(polyglot.types.Type type)
JifTypeSystemlabelOfType in interface JifTypeSystempublic 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)
JifTypeSystemunlabel in interface JifTypeSystempublic boolean isLabel(polyglot.types.Type type)
JifTypeSystemisLabel in interface JifTypeSystempublic boolean isPrincipal(polyglot.types.Type type)
JifTypeSystemisPrincipal in interface JifTypeSystempublic boolean isLabeled(polyglot.types.Type type)
JifTypeSystemisLabeled in interface JifTypeSystempublic boolean isSignature(polyglot.types.Type type)
isSignature in interface JifTypeSystempublic boolean isMarkerFieldName(java.lang.String s)
JifTypeSystemisMarkerFieldName in interface JifTypeSystempublic boolean isParamsRuntimeRep(polyglot.types.Type t)
JifTypeSystemisParamsRuntimeRep in interface JifTypeSystempublic polyglot.types.ClassType hasUntrustedAncestor(polyglot.types.Type t)
hasUntrustedAncestor in interface JifTypeSystemt - Type to checkpublic 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.types.TypeSystem_cpublic Label join(Label L1, Label L2)
JifTypeSystemjoin in interface JifTypeSystempublic Label meet(Label L1, Label L2)
JifTypeSystemmeet in interface JifTypeSystempublic boolean actsFor(Principal p, Principal q)
JifTypeSystemactsFor in interface JifTypeSystempublic boolean leq(Label L1, Label L2)
JifTypeSystemleq in interface JifTypeSystempublic boolean leq(Policy p1, Policy p2)
leq in interface JifTypeSystempublic ConfPolicy joinConfPolicy(polyglot.util.Position pos, java.util.Set<ConfPolicy> components)
joinConfPolicy in interface JifTypeSystempublic IntegPolicy joinIntegPolicy(polyglot.util.Position pos, java.util.Set<IntegPolicy> components)
joinIntegPolicy in interface JifTypeSystempublic ConfPolicy meetConfPolicy(polyglot.util.Position pos, java.util.Set<ConfPolicy> components)
meetConfPolicy in interface JifTypeSystempublic IntegPolicy meetIntegPolicy(polyglot.util.Position pos, java.util.Set<IntegPolicy> components)
meetIntegPolicy in interface JifTypeSystempublic ConfPolicy join(ConfPolicy p1, ConfPolicy p2)
join in interface JifTypeSystempublic IntegPolicy join(IntegPolicy p1, IntegPolicy p2)
join in interface JifTypeSystempublic ConfPolicy meet(ConfPolicy p1, ConfPolicy p2)
meet in interface JifTypeSystempublic IntegPolicy meet(IntegPolicy p1, IntegPolicy p2)
meet in interface JifTypeSystempublic ConfPolicy confProjection(Label L)
confProjection in interface JifTypeSystempublic IntegPolicy integProjection(Label L)
integProjection in interface JifTypeSystempublic java.lang.String translateClass(polyglot.types.Resolver c,
polyglot.types.ClassType t)
translateClass in interface polyglot.types.TypeSystemtranslateClass in class polyglot.types.TypeSystem_cpublic java.lang.String translatePrimitive(polyglot.types.Resolver c,
polyglot.types.PrimitiveType t)
translatePrimitive in interface polyglot.types.TypeSystemtranslatePrimitive in class polyglot.types.TypeSystem_cpublic java.util.List<polyglot.types.ReferenceType> abstractSuperInterfaces(polyglot.types.ReferenceType rt)
JifTypeSystemabstractSuperInterfaces in interface JifTypeSystemabstractSuperInterfaces in class polyglot.types.TypeSystem_cpublic boolean isAccessible(polyglot.types.MemberInstance mi,
polyglot.types.ClassType contextClass)
JifTypeSystemisAccessible in interface JifTypeSystemisAccessible in interface polyglot.types.TypeSystemisAccessible in class polyglot.types.TypeSystem_cpublic polyglot.types.PrimitiveType primitiveForName(java.lang.String name)
throws polyglot.types.SemanticException
primitiveForName in interface polyglot.types.TypeSystemprimitiveForName in class polyglot.types.TypeSystem_cpolyglot.types.SemanticExceptionpublic java.util.Collection<polyglot.types.Type> uncheckedExceptions()
uncheckedExceptions in interface polyglot.types.TypeSystemuncheckedExceptions in class polyglot.types.TypeSystem_cpublic DefaultSignature defaultSignature()
defaultSignature in interface JifTypeSystempublic polyglot.types.ConstructorInstance defaultConstructor(polyglot.util.Position pos,
polyglot.types.ClassType container)
defaultConstructor in interface polyglot.types.TypeSystemdefaultConstructor in class polyglot.types.TypeSystem_cpublic LabelTypeCheckUtil labelTypeCheckUtil()
labelTypeCheckUtil in interface JifTypeSystempublic boolean promoteToFatal(polyglot.types.Type t)
JifTypeSystempromoteToFatal in interface JifTypeSystempublic Label toLabel(Principal p)
toLabel in interface JifTypeSystempublic AccessPath exprToAccessPath(polyglot.ast.Expr e, JifContext context) throws polyglot.types.SemanticException
JifTypeSysteme in context context.exprToAccessPath in interface JifTypeSystempolyglot.types.SemanticExceptionpublic AccessPath exprToAccessPath(polyglot.ast.Expr e, polyglot.types.Type expectedType, JifContext context) throws polyglot.types.SemanticException
JifTypeSysteme with expected type
expectedType in context context.exprToAccessPath in interface JifTypeSystempolyglot.types.SemanticExceptionpublic java.lang.String accessPathDescrip(AccessPath path, java.lang.String kind)
accessPathDescrip in interface JifTypeSystempublic Principal exprToPrincipal(JifTypeSystem ts, polyglot.ast.Expr e, JifContext context) throws polyglot.types.SemanticException
exprToPrincipal in interface JifTypeSystempolyglot.types.SemanticExceptionpublic Label exprToLabel(JifTypeSystem ts, polyglot.ast.Expr e, JifContext context) throws polyglot.types.SemanticException
exprToLabel in interface JifTypeSystempolyglot.types.SemanticExceptionpublic boolean isFinalAccessExpr(polyglot.ast.Expr e)
isFinalAccessExpr in interface JifTypeSystempublic boolean isFinalAccessExprOrConst(polyglot.ast.Expr e,
polyglot.types.Type expectedType)
isFinalAccessExprOrConst in interface JifTypeSystempublic boolean isFinalAccessExprOrConst(polyglot.ast.Expr e)
isFinalAccessExprOrConst in interface JifTypeSystempublic void processFAP(polyglot.types.VarInstance fi,
AccessPath path,
JifContext A)
throws polyglot.types.SemanticException
processFAP in interface JifTypeSystempolyglot.types.SemanticExceptionprotected void processFAP(polyglot.types.VarInstance fi,
AccessPath path,
JifContext A,
java.util.Set<polyglot.types.ClassType> visited)
throws polyglot.types.SemanticException
polyglot.types.SemanticExceptionpublic void processFAP(polyglot.types.ReferenceType rt,
AccessPath path,
JifContext A)
throws polyglot.types.SemanticException
processFAP in interface JifTypeSystempolyglot.types.SemanticExceptionprotected void processFAP(polyglot.types.ReferenceType rt,
AccessPath path,
JifContext A,
java.util.Set<polyglot.types.ClassType> visited)
throws polyglot.types.SemanticException
polyglot.types.SemanticExceptionpublic AccessPath varInstanceToAccessPath(polyglot.types.VarInstance vi, java.lang.String name, polyglot.util.Position pos) throws polyglot.types.SemanticException
varInstanceToAccessPath in interface JifTypeSystempolyglot.types.SemanticExceptionpublic AccessPath varInstanceToAccessPath(polyglot.types.VarInstance vi, polyglot.util.Position pos) throws polyglot.types.SemanticException
varInstanceToAccessPath in interface JifTypeSystempolyglot.types.SemanticExceptionpublic boolean needsDynamicTypeMethods(polyglot.types.Type ct)
JifTypeSystemneedsDynamicTypeMethods in interface JifTypeSystempublic boolean needsImplClass(polyglot.types.Type jpt)
JifTypeSystemneedsImplClass in interface JifTypeSystemprotected AccessPathField accessPathField(AccessPath path, polyglot.types.FieldInstance fi, java.lang.String fieldName, polyglot.util.Position pos)