public interface JifTypeSystem extends polyglot.ext.param.types.ParamTypeSystem<ParamInstance,Param>
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) |
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.
|
ArgLabel |
argLabel(polyglot.util.Position pos,
polyglot.types.LocalInstance li,
polyglot.types.CodeInstance ci) |
ArgLabel |
argLabel(polyglot.util.Position pos,
ParamInstance li) |
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) |
ConfPolicy |
confProjection(Label L) |
Principal |
conjunctivePrincipal(polyglot.util.Position pos,
java.util.Collection<Principal> principals) |
Principal |
conjunctivePrincipal(polyglot.util.Position pos,
Principal conjunctLeft,
Principal conjunctRight) |
PrincipalToJavaExpr |
conjunctivePrincipalTranslator() |
ConstArrayType |
constArrayOf(polyglot.util.Position pos,
polyglot.types.Type type) |
ConstArrayType |
constArrayOf(polyglot.util.Position pos,
polyglot.types.Type type,
int dims) |
ConstArrayType |
constArrayOf(polyglot.util.Position position,
polyglot.types.Type type,
int dims,
boolean castableToNonConst) |
ConstArrayType |
constArrayOf(polyglot.util.Position position,
polyglot.types.Type type,
int dims,
boolean castableToNonConst,
boolean recurseIntoBaseType) |
ConstArrayType |
constArrayOf(polyglot.types.Type type) |
ConstArrayType |
constArrayOf(polyglot.types.Type type,
int dims) |
CovariantParamLabel |
covariantLabel(polyglot.util.Position pos,
ParamInstance pi) |
JifContext |
createContext() |
LabelEnv |
createLabelEnv() |
Solver |
createSolver(java.lang.String solverName)
Returns a new label constraint system solver.
|
DefaultSignature |
defaultSignature() |
Principal |
disjunctivePrincipal(polyglot.util.Position pos,
java.util.Collection<Principal> principals) |
Principal |
disjunctivePrincipal(polyglot.util.Position pos,
Principal disjunctLeft,
Principal disjunctRight) |
PrincipalToJavaExpr |
disjunctivePrincipalTranslator() |
DynamicLabel |
dynamicLabel(polyglot.util.Position pos,
AccessPath path) |
DynamicPrincipal |
dynamicPrincipal(polyglot.util.Position pos,
AccessPath path) |
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() |
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) |
polyglot.types.ClassType |
hasUntrustedAncestor(polyglot.types.Type t)
Check if the class has an untrusted non-jif ancestor.
|
IntegPolicy |
integProjection(Label L) |
boolean |
isAccessible(polyglot.types.MemberInstance mi,
polyglot.types.ClassType contextClass)
Exposes utility method of TypeSystem_c
|
boolean |
isFinalAccessExpr(polyglot.ast.Expr e) |
boolean |
isFinalAccessExprOrConst(polyglot.ast.Expr e) |
boolean |
isFinalAccessExprOrConst(polyglot.ast.Expr e,
polyglot.types.Type expectedType) |
boolean |
isLabel(polyglot.types.Type t)
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 t)
Tests if the type is "principal".
|
boolean |
isSignature(polyglot.types.Type t)
Returns true if the type is signature for a Java class.
|
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) |
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)
Returns a labeled type, type{label}.
|
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. |
LabelTypeCheckUtil |
labelTypeCheckUtil() |
java.lang.String |
LabelUtilClassName()
Returns the name of the LabelUtil class.
|
boolean |
leq(Label L1,
Label L2)
Returns true iff L1 <= L2 in the empty environment.
|
boolean |
leq(Policy p1,
Policy p2) |
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) |
boolean |
needsDynamicTypeMethods(polyglot.types.Type ct)
Returns true if the class has runtime methods for cast and instanceof
|
boolean |
needsImplClass(polyglot.types.Type ct)
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) |
PairLabel |
pairLabel(polyglot.util.Position pos,
ConfPolicy confPol,
IntegPolicy integPol) |
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 |
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) |
void |
processFAP(polyglot.types.VarInstance fi,
AccessPath path,
JifContext A) |
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) |
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.
|
ThisLabel |
thisLabel(polyglot.types.ArrayType ct) |
ThisLabel |
thisLabel(JifClassType ct) |
ThisLabel |
thisLabel(polyglot.util.Position pos,
JifClassType 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) |
UnknownLabel |
unknownLabel(polyglot.util.Position pos) |
Param |
unknownParam(polyglot.util.Position pos) |
UnknownPrincipal |
unknownPrincipal(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) |
instantiate, mutablePClass, subst, subst
Abstract, ArithmeticException, arrayOf, arrayOf, arrayOf, arrayOf, ArrayStoreException, AssertionError, Boolean, Byte, callValid, canCoerceToString, canOverride, Char, checkAccessFlags, checkClassConformance, checkConstructorFlags, checkCycles, checkFieldFlags, checkInitializerFlags, checkInterfaceFieldFlags, checkLocalClassFlags, checkLocalFlags, checkMemberClassFlags, checkMethodFlags, checkOverride, checkTopLevelClassFlags, Class, classAccessible, classAccessible, classAccessibleFromPackage, ClassCastException, classContextResolver, classContextResolver, classFileLazyClassInitializer, Cloneable, constructorInstance, createClassContextResolver, createClassType, createClassType, createClassType, createClassType, createNewFlag, createPackage, createPackage, createPackageContextResolver, defaultClassInitializer, defaultConstructor, defaultPackageImports, descendsFrom, deserializedClassInitializer, Double, equals, Error, Exception, extensionInfo, fieldInstance, 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, initialize, initializerInstance, Int, Interface, interfaces, isAccessible, isAccessible, isAccessible, isAccessible, isCanonical, isCastValid, isEnclosed, isImplicitCastValid, isInherited, isMember, isSameConstructor, isSameMethod, isSubtype, isThrowable, isUncheckedException, leastCommonAncestor, legalAbstractMethodFlags, legalAccessFlags, legalConstructorFlags, legalFieldFlags, legalInitializerFlags, legalInterfaceFieldFlags, legalLocalClassFlags, legalLocalFlags, legalMemberClassFlags, legalMethodFlags, legalTopLevelClassFlags, loadedResolver, localInstance, Long, methodCallValid, methodInstance, moreSpecific, mostSpecificComparator, Native, NoFlags, Null, NullPointerException, numericConversionValid, numericConversionValid, Object, OutOfBoundsException, overrides, packageContextResolver, packageContextResolver, packageContextResolver, packageEquals, packageExists, packageForName, packageForName, parsedResolver, placeHolder, placeHolder, primitiveForName, Private, promote, promote, Protected, Public, restoreSystemResolver, RuntimeException, saveSystemResolver, Serializable, Short, Static, staticTarget, StrictFP, String, superType, Synchronized, systemResolver, Throwable, throwsSubset, Transient, translateArray, translateClass, translatePackage, translatePrimitive, typeEquals, typeForName, uncheckedExceptions, unknownPackage, unknownQualifier, unknownType, Void, Volatile, wrapperTypeString
JifContext createContext()
createContext
in interface polyglot.types.TypeSystem
polyglot.types.PrimitiveType Label()
java.lang.String PrincipalClassName()
java.lang.String PrincipalUtilClassName()
java.lang.String LabelClassName()
java.lang.String LabelUtilClassName()
java.lang.String RuntimePackageName()
polyglot.types.PrimitiveType Principal()
polyglot.types.Type PrincipalClass()
LabeledType labeledType(polyglot.util.Position pos, polyglot.types.Type type, Label label)
polyglot.types.ClassType nullInstantiate(polyglot.util.Position pos, polyglot.ext.param.types.PClass<ParamInstance,Param> pc)
ParamInstance paramInstance(polyglot.util.Position pos, JifClassType container, ParamInstance.Kind kind, java.lang.String name)
PrincipalInstance principalInstance(polyglot.util.Position pos, ExternalPrincipal principal)
ConstArrayType constArrayOf(polyglot.types.Type type)
ConstArrayType constArrayOf(polyglot.util.Position pos, polyglot.types.Type type)
ConstArrayType constArrayOf(polyglot.types.Type type, int dims)
ConstArrayType constArrayOf(polyglot.util.Position pos, polyglot.types.Type type, int dims)
ConstArrayType constArrayOf(polyglot.util.Position position, polyglot.types.Type type, int dims, boolean castableToNonConst)
ConstArrayType constArrayOf(polyglot.util.Position position, polyglot.types.Type type, int dims, boolean castableToNonConst, boolean recurseIntoBaseType)
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)
boolean isPrincipal(polyglot.types.Type t)
boolean isLabel(polyglot.types.Type t)
PathMap pathMap()
ExceptionPath exceptionPath(polyglot.types.Type type)
Path gotoPath(polyglot.ast.Branch.Kind kind, java.lang.String target)
Param unknownParam(polyglot.util.Position pos)
ParamPrincipal principalParam(polyglot.util.Position pos, ParamInstance pi)
DynamicPrincipal dynamicPrincipal(polyglot.util.Position pos, AccessPath path)
ExternalPrincipal externalPrincipal(polyglot.util.Position pos, java.lang.String name)
UnknownPrincipal unknownPrincipal(polyglot.util.Position pos)
TopPrincipal topPrincipal(polyglot.util.Position pos)
BottomPrincipal bottomPrincipal(polyglot.util.Position pos)
Principal conjunctivePrincipal(polyglot.util.Position pos, Principal conjunctLeft, Principal conjunctRight)
Principal conjunctivePrincipal(polyglot.util.Position pos, java.util.Collection<Principal> principals)
Principal disjunctivePrincipal(polyglot.util.Position pos, Principal disjunctLeft, Principal disjunctRight)
Principal disjunctivePrincipal(polyglot.util.Position pos, java.util.Collection<Principal> principals)
Principal pathToPrincipal(polyglot.util.Position pos, AccessPath path)
VarPrincipal freshPrincipalVariable(polyglot.util.Position pos, java.lang.String s, java.lang.String description)
VarLabel freshLabelVariable(polyglot.util.Position pos, java.lang.String s, java.lang.String description)
Label topLabel(polyglot.util.Position pos)
Label bottomLabel(polyglot.util.Position pos)
ProviderLabel providerLabel(JifClassType ct)
ProviderLabel providerLabel(polyglot.util.Position position, JifClassType ct)
Label noComponentsLabel(polyglot.util.Position pos)
Label notTaken(polyglot.util.Position pos)
Label topLabel()
Label bottomLabel()
Label noComponentsLabel()
Label notTaken()
CovariantParamLabel covariantLabel(polyglot.util.Position pos, ParamInstance pi)
ParamLabel paramLabel(polyglot.util.Position pos, ParamInstance pi)
DynamicLabel dynamicLabel(polyglot.util.Position pos, AccessPath path)
ArgLabel argLabel(polyglot.util.Position pos, polyglot.types.LocalInstance li, polyglot.types.CodeInstance ci)
ArgLabel argLabel(polyglot.util.Position pos, ParamInstance li)
Label callSitePCLabel(JifProcedureInstance pi)
ThisLabel thisLabel(polyglot.util.Position pos, JifClassType ct)
ThisLabel thisLabel(JifClassType ct)
ThisLabel thisLabel(polyglot.types.ArrayType ct)
UnknownLabel unknownLabel(polyglot.util.Position pos)
PairLabel pairLabel(polyglot.util.Position pos, ConfPolicy confPol, IntegPolicy integPol)
WritersToReadersLabel writersToReadersLabel(polyglot.util.Position pos, Label L)
Label pathToLabel(polyglot.util.Position pos, AccessPath path)
ReaderPolicy readerPolicy(polyglot.util.Position pos, Principal owner, Principal reader)
ReaderPolicy readerPolicy(polyglot.util.Position pos, Principal owner, java.util.Collection<Principal> readers)
WriterPolicy writerPolicy(polyglot.util.Position pos, Principal owner, Principal writer)
WriterPolicy writerPolicy(polyglot.util.Position pos, Principal owner, java.util.Collection<Principal> writers)
ConfPolicy bottomConfPolicy(polyglot.util.Position pos)
IntegPolicy bottomIntegPolicy(polyglot.util.Position pos)
ConfPolicy topConfPolicy(polyglot.util.Position pos)
IntegPolicy topIntegPolicy(polyglot.util.Position pos)
boolean actsFor(Principal p, Principal q)
ConfPolicy joinConfPolicy(polyglot.util.Position pos, java.util.Set<ConfPolicy> components)
IntegPolicy joinIntegPolicy(polyglot.util.Position pos, java.util.Set<IntegPolicy> components)
ConfPolicy meetConfPolicy(polyglot.util.Position pos, java.util.Set<ConfPolicy> components)
IntegPolicy meetIntegPolicy(polyglot.util.Position pos, java.util.Set<IntegPolicy> components)
ConfPolicy join(ConfPolicy p1, ConfPolicy p2)
ConfPolicy meet(ConfPolicy p1, ConfPolicy p2)
IntegPolicy join(IntegPolicy p1, IntegPolicy p2)
IntegPolicy meet(IntegPolicy p1, IntegPolicy p2)
ConfPolicy confProjection(Label L)
IntegPolicy integProjection(Label L)
<Actor extends ActsForParam,Granter extends ActsForParam> ActsForConstraint<Actor,Granter> actsForConstraint(polyglot.util.Position pos, Actor actor, Granter granter, boolean isEquiv)
LabelLeAssertion labelLeAssertion(polyglot.util.Position pos, Label lhs, Label rhs)
AuthConstraint authConstraint(polyglot.util.Position pos, java.util.List<Principal> principals)
CallerConstraint callerConstraint(polyglot.util.Position pos, java.util.List<Principal> principals)
AutoEndorseConstraint autoEndorseConstraint(polyglot.util.Position pos, Label endorseTo)
Label labelOfField(polyglot.types.FieldInstance vi, Label pc)
Label labelOfLocal(polyglot.types.LocalInstance vi, Label pc)
Label labelOfType(polyglot.types.Type type)
Label labelOfType(polyglot.types.Type type, Label defaultLabel)
defaultLabel
if unlabeled.polyglot.types.Type unlabel(polyglot.types.Type type)
boolean isLabeled(polyglot.types.Type type)
boolean isSignature(polyglot.types.Type t)
boolean isParamsRuntimeRep(polyglot.types.Type t)
polyglot.types.ClassType hasUntrustedAncestor(polyglot.types.Type t)
t
- Type to checkjava.util.List<polyglot.types.ReferenceType> abstractSuperInterfaces(polyglot.types.ReferenceType rt)
boolean isAccessible(polyglot.types.MemberInstance mi, polyglot.types.ClassType contextClass)
isAccessible
in interface polyglot.types.TypeSystem
Solver createSolver(java.lang.String solverName)
LabelEnv createLabelEnv()
DefaultSignature defaultSignature()
boolean equalsNoStrip(polyglot.types.TypeObject t1, polyglot.types.TypeObject t2)
boolean equalsStrip(polyglot.types.TypeObject t1, polyglot.types.TypeObject t2)
LabelTypeCheckUtil labelTypeCheckUtil()
boolean isMarkerFieldName(java.lang.String s)
boolean promoteToFatal(polyglot.types.Type t)
Label toLabel(Principal p)
PrincipalToJavaExpr conjunctivePrincipalTranslator()
PrincipalToJavaExpr disjunctivePrincipalTranslator()
LabelToJavaExpr paramLabelTranslator()
PrincipalToJavaExpr paramPrincipalTranslator()
polyglot.types.ClassType fatalException()
AccessPath exprToAccessPath(polyglot.ast.Expr e, JifContext context) throws polyglot.types.SemanticException
e
in context context
.polyglot.types.SemanticException
AccessPath exprToAccessPath(polyglot.ast.Expr e, polyglot.types.Type expectedType, JifContext context) throws polyglot.types.SemanticException
e
with expected type
expectedType
in context context
.polyglot.types.SemanticException
java.lang.String accessPathDescrip(AccessPath path, java.lang.String kind)
Principal exprToPrincipal(JifTypeSystem ts, polyglot.ast.Expr e, JifContext context) throws polyglot.types.SemanticException
polyglot.types.SemanticException
Label exprToLabel(JifTypeSystem ts, polyglot.ast.Expr e, JifContext context) throws polyglot.types.SemanticException
polyglot.types.SemanticException
boolean isFinalAccessExpr(polyglot.ast.Expr e)
boolean isFinalAccessExprOrConst(polyglot.ast.Expr e, polyglot.types.Type expectedType)
boolean isFinalAccessExprOrConst(polyglot.ast.Expr e)
void processFAP(polyglot.types.VarInstance fi, AccessPath path, JifContext A) throws polyglot.types.SemanticException
polyglot.types.SemanticException
void processFAP(polyglot.types.ReferenceType rt, AccessPath path, JifContext A) throws polyglot.types.SemanticException
polyglot.types.SemanticException
AccessPath varInstanceToAccessPath(polyglot.types.VarInstance vi, java.lang.String name, polyglot.util.Position pos) throws polyglot.types.SemanticException
polyglot.types.SemanticException
AccessPath varInstanceToAccessPath(polyglot.types.VarInstance vi, polyglot.util.Position pos) throws polyglot.types.SemanticException
polyglot.types.SemanticException
boolean needsDynamicTypeMethods(polyglot.types.Type ct)
boolean needsImplClass(polyglot.types.Type ct)