|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectedu.rice.cs.dynamicjava.symbol.TypeSystem
edu.rice.cs.dynamicjava.symbol.StandardTypeSystem
public abstract class StandardTypeSystem
Abstract parent class for TypeSystems that stick to the standard Java notions of types, conversions, class members, etc. Subclasses are responsible for providing core type operations: subtyping, inference, well-formedness checking, etc.
| Nested Class Summary | |
|---|---|
protected static class |
StandardTypeSystem.SubstitutionMap
|
| Field Summary | |
|---|---|
protected static Type |
CLONEABLE_AND_SERIALIZABLE
|
protected static TypeVisitorLambda<java.lang.Boolean> |
IS_ARRAY
|
protected static TypeVisitorLambda<java.lang.Boolean> |
IS_PRIMITIVE
|
protected static TypeVisitorLambda<java.lang.Boolean> |
IS_REFERENCE
|
| Fields inherited from class edu.rice.cs.dynamicjava.symbol.TypeSystem |
|---|
BOOLEAN, BOOLEAN_CLASS, BOTTOM, BYTE, BYTE_CLASS, CHAR, CHARACTER_CLASS, CLONEABLE, DOUBLE, DOUBLE_CLASS, EMPTY_EXPRESSION_ITERABLE, EMPTY_TYPE_ARRAY, EMPTY_TYPE_ITERABLE, EXCEPTION, FLOAT, FLOAT_CLASS, INT, INTEGER_CLASS, LONG, LONG_CLASS, NONE_TYPE_OPTION, NULL, OBJECT, RUNTIME_EXCEPTION, SERIALIZABLE, SHORT, SHORT_CLASS, STRING, THROWABLE, TOP, VOID, VOID_CLASS |
| Constructor Summary | |
|---|---|
protected |
StandardTypeSystem(Options opt,
boolean boxingInMostSpecific,
boolean useExplicitTypeArgs,
boolean strictClassEquality)
|
| Method Summary | |
|---|---|
Type |
arrayElementType(Type t)
Determine the element type of the given array type. |
Expression |
assign(Type target,
Expression exp)
Prepare the given expression for assignment, wrapping it in any necessary conversions. |
Pair<Expression,Expression> |
binaryPromote(Expression e1,
Expression e2)
Perform binary numeric promotion on a pair of expressions. |
protected ParameterizedClassType |
capture(ParameterizedClassType t)
|
Type |
capture(Type t)
Compute the capture of t. |
protected abstract java.lang.Iterable<Type> |
captureTypeArgs(java.lang.Iterable<? extends Type> targs,
java.lang.Iterable<? extends VariableType> params)
Produce types that are bounded by the corresponding type argument and parameter. |
Expression |
cast(Type target,
Expression e)
Perform a cast on the given expression. |
protected boolean |
containsAnyVar(Type t,
java.util.Set<? extends VariableType> vars)
Test whether any of the given variables is reachable from a type. |
boolean |
containsClass(Type t,
java.lang.String name,
Access.Module accessModule)
|
boolean |
containsField(Type t,
java.lang.String name,
Access.Module accessModule)
|
boolean |
containsMethod(Type t,
java.lang.String name,
Access.Module accessModule)
|
boolean |
containsStaticClass(Type t,
java.lang.String name,
Access.Module accessModule)
|
boolean |
containsStaticField(Type t,
java.lang.String name,
Access.Module accessModule)
|
boolean |
containsStaticMethod(Type t,
java.lang.String name,
Access.Module accessModule)
|
protected boolean |
containsVar(Type t,
VariableType var)
Test whether a variable is reachable from a type. |
Option<Type> |
dynamicallyEnclosingType(Type t)
Get the type of the object, if any, that dynamically encloses instances of t. |
Type |
erase(Type t)
Compute the erased type of t. |
Thunk<java.lang.Class<?>> |
erasedClass(Type t)
Determine the class corresponding to the erasure of t, or null if no such class object
exists. |
Type |
immediateSuperclass(Type t)
|
protected Type |
immediateSupertype(ClassType t)
Get a class type's immediate supertype. |
protected boolean |
inBounds(java.lang.Iterable<? extends VariableType> params,
java.lang.Iterable<? extends Type> args)
Test whether the given arguments are within the bounds of the corresponding parameters. |
protected abstract java.lang.Iterable<Type> |
inferTypeArguments(java.lang.Iterable<? extends VariableType> tparams,
java.lang.Iterable<? extends Type> params,
Type returned,
java.lang.Iterable<? extends Type> args,
Option<Type> expected)
Top-level entry point for type inference. |
boolean |
isArray(Type t)
Determine if t is an array. |
boolean |
isAssignable(Type target,
Type expT)
Determine if assign(edu.rice.cs.dynamicjava.symbol.type.Type, koala.dynamicjava.tree.Expression) would succeed given a non-constant expression of the given type |
boolean |
isAssignable(Type target,
Type expT,
java.lang.Object expValue)
Determine if assign(edu.rice.cs.dynamicjava.symbol.type.Type, koala.dynamicjava.tree.Expression) would succeed given a constant expression of the given type and value |
boolean |
isConcrete(Type t)
Determine if there exist values whose most specific type is t (ignoring
constructor-accessibility issues). |
boolean |
isDisjoint(Type s,
Type t)
Whether two types are known to be disjoint. |
boolean |
isEnum(Type t)
Determine if an object with type t is enumerable (and so can be used as the selector of a
switch statement) |
abstract boolean |
isEqual(Type t1,
Type t2)
Determine if the given types may be treated as equal. |
boolean |
isExtendable(Type t)
Determine if t is valid in the extends clause of a class definition |
boolean |
isImplementable(Type t)
Determine if t is valid in the implements clause of a class definition |
boolean |
isIterable(Type t)
Determine if the type can be used in an enhanced for loop. |
boolean |
isPrimitive(Type t)
Determine if t is a primitive. |
boolean |
isPrimitiveConvertible(Type t)
Determine if TypeSystem.makePrimitive(koala.dynamicjava.tree.Expression) would succeed given an expression of the given type |
boolean |
isReference(Type t)
Determine if t is a reference. |
boolean |
isReferenceConvertible(Type t)
Determine if TypeSystem.makeReference(koala.dynamicjava.tree.Expression) would succeed given an expression of the given type |
boolean |
isReifiable(Type t)
Determine if the type is available at runtime (via a Class object) |
abstract boolean |
isSubtype(Type subT,
Type superT)
Determine if subT is a subtype of superT. |
abstract boolean |
isWellFormed(Type t)
Determine if the type is well-formed. |
abstract Type |
join(java.lang.Iterable<? extends Type> ts)
Compute a common supertype of the given list of types. |
ClassType |
lookupClass(Expression object,
java.lang.String name,
java.lang.Iterable<? extends Type> typeArgs,
Access.Module accessModule)
Lookup the class with the given name in the given object. |
ClassType |
lookupClass(Type t,
java.lang.String name,
java.lang.Iterable<? extends Type> typeArgs,
Access.Module accessModule)
Lookup the class with the given name in the given type. |
TypeSystem.ConstructorInvocation |
lookupConstructor(Type t,
java.lang.Iterable<? extends Type> typeArgs,
java.lang.Iterable<? extends Expression> args,
Option<Type> expected,
Access.Module accessModule)
Lookup the constructor corresponding the the given invocation. |
TypeSystem.ObjectFieldReference |
lookupField(Expression object,
java.lang.String name,
Access.Module accessModule)
Lookup the field with the given name in the given object. |
TypeSystem.ObjectMethodInvocation |
lookupMethod(Expression object,
java.lang.String name,
java.lang.Iterable<? extends Type> typeArgs,
java.lang.Iterable<? extends Expression> args,
Option<Type> expected,
Access.Module accessModule)
Lookup the method corresponding the the given invocation. |
ClassType |
lookupStaticClass(Type t,
java.lang.String name,
java.lang.Iterable<? extends Type> typeArgs,
Access.Module accessModule)
Lookup the static class with the given name. |
TypeSystem.StaticFieldReference |
lookupStaticField(Type t,
java.lang.String name,
Access.Module accessModule)
Lookup the static field with the given name. |
TypeSystem.StaticMethodInvocation |
lookupStaticMethod(Type t,
java.lang.String name,
java.lang.Iterable<? extends Type> typeArgs,
java.lang.Iterable<? extends Expression> args,
Option<Type> expected,
Access.Module accessModule)
Lookup the static method corresponding the the given invocation. |
ClassType |
makeClassType(DJClass c)
Create a SimpleClassType or RawClassType corresponding to the given class. |
ClassType |
makeClassType(DJClass c,
java.lang.Iterable<? extends Type> args)
Create a SimpleClassType, RawClassType, or ParameterizedClassType
corresponding to the given class with given type arguments. |
Expression |
makePrimitive(Expression e)
Convert the expression to a primitive. |
Expression |
makeReference(Expression e)
Convert the expression to a reference. |
abstract Type |
meet(java.lang.Iterable<? extends Type> ts)
Compute a common subtype of the given list of types. |
Pair<Expression,Expression> |
mergeConditional(Expression e1,
Expression e2)
Perform a join (as defined for the ? : operator) on a pair of expressions. |
protected ParameterizedClassType |
parameterize(RawClassType t)
Convert a raw class type to its wildcard-parameterized equivalent. |
Type |
reflectionClassOf(Type t)
Determine the type of the class object associated with t (for example, (informally) classOf(Integer) = Class<Integer>). |
protected boolean |
sameClass(ClassType c1,
ClassType c2)
|
protected Type |
substitute(Type t,
java.lang.Iterable<? extends VariableType> params,
java.lang.Iterable<? extends Type> args)
Assumes each paramater is a unique variable, and that the length of params is consistent with the length of args. |
protected Type |
substitute(Type t,
java.util.Map<? extends VariableType,? extends Type> map)
|
protected Type |
substitute(Type t,
StandardTypeSystem.SubstitutionMap sigma)
|
TypeSystem.TypePrinter |
typePrinter()
|
Expression |
unaryPromote(Expression e)
Perform unary numeric promotion on an expression. |
| Methods inherited from class edu.rice.cs.dynamicjava.symbol.TypeSystem |
|---|
join, meet, wrap, wrap, wrap |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static final Type CLONEABLE_AND_SERIALIZABLE
protected static final TypeVisitorLambda<java.lang.Boolean> IS_PRIMITIVE
protected static final TypeVisitorLambda<java.lang.Boolean> IS_REFERENCE
protected static final TypeVisitorLambda<java.lang.Boolean> IS_ARRAY
| Constructor Detail |
|---|
protected StandardTypeSystem(Options opt,
boolean boxingInMostSpecific,
boolean useExplicitTypeArgs,
boolean strictClassEquality)
| Method Detail |
|---|
public abstract boolean isWellFormed(Type t)
isWellFormed in class TypeSystem
public abstract boolean isEqual(Type t1,
Type t2)
isEqual in class TypeSystem
public abstract boolean isSubtype(Type subT,
Type superT)
subT is a subtype of superT. This is a recursive
(in terms of isEqual(edu.rice.cs.dynamicjava.symbol.type.Type, edu.rice.cs.dynamicjava.symbol.type.Type)), transitive relation.
isSubtype in class TypeSystempublic abstract Type join(java.lang.Iterable<? extends Type> ts)
join in class TypeSystempublic abstract Type meet(java.lang.Iterable<? extends Type> ts)
meet in class TypeSystem
protected abstract java.lang.Iterable<Type> captureTypeArgs(java.lang.Iterable<? extends Type> targs,
java.lang.Iterable<? extends VariableType> params)
protected abstract java.lang.Iterable<Type> inferTypeArguments(java.lang.Iterable<? extends VariableType> tparams,
java.lang.Iterable<? extends Type> params,
Type returned,
java.lang.Iterable<? extends Type> args,
Option<Type> expected)
args were provided where params were expected
(args and params are assumed to have the same length), and returned will
be returned where expected is expected.
tparams, or null if the parameters
are overconstrained
protected boolean sameClass(ClassType c1,
ClassType c2)
public TypeSystem.TypePrinter typePrinter()
typePrinter in class TypeSystempublic boolean isPrimitive(Type t)
t is a primitive.
isPrimitive in class TypeSystempublic boolean isReference(Type t)
t is a reference.
isReference in class TypeSystempublic boolean isArray(Type t)
t is an array.
isArray in class TypeSystempublic boolean isIterable(Type t)
true implies that an object of
type t has member iterator(), which returns a Iterator.
isIterable in class TypeSystempublic boolean isEnum(Type t)
t is enumerable (and so can be used as the selector of a
switch statement)
isEnum in class TypeSystempublic boolean isReifiable(Type t)
Class object)
isReifiable in class TypeSystempublic boolean isConcrete(Type t)
t (ignoring
constructor-accessibility issues). (Note that this implies that t is captured.)
isConcrete in class TypeSystempublic Option<Type> dynamicallyEnclosingType(Type t)
TypeSystemt.
dynamicallyEnclosingType in class TypeSystempublic boolean isExtendable(Type t)
t is valid in the extends clause of a class definition
isExtendable in class TypeSystempublic boolean isImplementable(Type t)
t is valid in the implements clause of a class definition
isImplementable in class TypeSystem
protected boolean containsVar(Type t,
VariableType var)
protected boolean containsAnyVar(Type t,
java.util.Set<? extends VariableType> vars)
public boolean isDisjoint(Type s,
Type t)
isDisjoint in class TypeSystem
public boolean isAssignable(Type target,
Type expT)
assign(edu.rice.cs.dynamicjava.symbol.type.Type, koala.dynamicjava.tree.Expression) would succeed given a non-constant expression of the given type
isAssignable in class TypeSystem
public boolean isAssignable(Type target,
Type expT,
java.lang.Object expValue)
assign(edu.rice.cs.dynamicjava.symbol.type.Type, koala.dynamicjava.tree.Expression) would succeed given a constant expression of the given type and value
isAssignable in class TypeSystempublic boolean isPrimitiveConvertible(Type t)
TypeSystemTypeSystem.makePrimitive(koala.dynamicjava.tree.Expression) would succeed given an expression of the given type
isPrimitiveConvertible in class TypeSystempublic boolean isReferenceConvertible(Type t)
TypeSystemTypeSystem.makeReference(koala.dynamicjava.tree.Expression) would succeed given an expression of the given type
isReferenceConvertible in class TypeSystempublic Type immediateSuperclass(Type t)
public Type capture(Type t)
TypeSystemt. Capture eliminates wildcards in a ParameterizedClassType
and converts VarargArrayTypes to StandardArrayTypes.
capture in class TypeSystemprotected ParameterizedClassType capture(ParameterizedClassType t)
public Type erase(Type t)
t. The result is guaranteed to be reifiable (according
to isReifiable(edu.rice.cs.dynamicjava.symbol.type.Type)) and a supertype of t.
erase in class TypeSystempublic Thunk<java.lang.Class<?>> erasedClass(Type t)
t, or null if no such class object
exists. To prevent over-eager loading of user-defined classes, computation of the result
is delayed by wrapping it in a thunk. (A DJClass return type would be incorrect, as there's no such
thing (for example) as an array DJClass.)
erasedClass in class TypeSystemprotected ParameterizedClassType parameterize(RawClassType t)
public Type reflectionClassOf(Type t)
TypeSystemclassOf(Integer) = Class<Integer>).
reflectionClassOf in class TypeSystemreflectionClassOf(java.lang.Integer) = Class<Integer>).public Type arrayElementType(Type t)
t is an array type (according to
isArray(edu.rice.cs.dynamicjava.symbol.type.Type)).
arrayElementType in class TypeSystem
protected Type substitute(Type t,
java.lang.Iterable<? extends VariableType> params,
java.lang.Iterable<? extends Type> args)
protected Type substitute(Type t,
java.util.Map<? extends VariableType,? extends Type> map)
protected Type substitute(Type t,
StandardTypeSystem.SubstitutionMap sigma)
public ClassType makeClassType(DJClass c)
SimpleClassType or RawClassType corresponding to the given class.
makeClassType in class TypeSystem
public ClassType makeClassType(DJClass c,
java.lang.Iterable<? extends Type> args)
throws TypeSystem.InvalidTypeArgumentException
SimpleClassType, RawClassType, or ParameterizedClassType
corresponding to the given class with given type arguments. If args is nonempty,
the result must be a ParameterizedClassType (or an error must occur).
makeClassType in class TypeSystemc - The class to be instantiatedargs - The type arguments for c
InvalidTypeArgumentException - If the arguments do not correspond to the formal parameters of
c (bounds are not checked, so the result may not be
well-formed).
TypeSystem.InvalidTypeArgumentException
public Expression makePrimitive(Expression e)
throws TypeSystem.UnsupportedConversionException
isPrimitive(edu.rice.cs.dynamicjava.symbol.type.Type)).
makePrimitive in class TypeSysteme - A typed expression
e that has a primitive type
UnsupportedConversionException - If the expression cannot be converted to a primitive
TypeSystem.UnsupportedConversionException
public Expression makeReference(Expression e)
throws TypeSystem.UnsupportedConversionException
isReference(edu.rice.cs.dynamicjava.symbol.type.Type)).
makeReference in class TypeSysteme - A typed expression
e that has a reference type
UnsupportedConversionException - If the expression cannot be converted to a reference
TypeSystem.UnsupportedConversionException
public Expression unaryPromote(Expression e)
throws TypeSystem.UnsupportedConversionException
unaryPromote in class TypeSysteme - A typed expression with a primitive type
e with the promoted type
UnsupportedConversionException - If the expression cannot be used for numeric promotion
TypeSystem.UnsupportedConversionException
public Pair<Expression,Expression> binaryPromote(Expression e1,
Expression e2)
throws TypeSystem.UnsupportedConversionException
binaryPromote in class TypeSysteme1 - A typed expression with a primitive typee2 - A typed expression with a primitive type
e1 and e2 with the promoted type
UnsupportedConversionException - If either expression cannot be used for numeric promotion
TypeSystem.UnsupportedConversionException
public Pair<Expression,Expression> mergeConditional(Expression e1,
Expression e2)
throws TypeSystem.UnsupportedConversionException
mergeConditional in class TypeSysteme1 - A typed expressione2 - A typed expression
e1 and e2 with the joined type
UnsupportedConversionException - If the two types are incompatible.
TypeSystem.UnsupportedConversionException
public Expression cast(Type target,
Expression e)
throws TypeSystem.UnsupportedConversionException
CHECKED_TYPE, CONVERTED_TYPE, or ASSERTED_TYPE is set on the result.
cast in class TypeSysteme, wrapped in any necessary conversions
UnsupportedConversionException - If the cast is to an incompatible type.
TypeSystem.UnsupportedConversionException
public Expression assign(Type target,
Expression exp)
throws TypeSystem.UnsupportedConversionException
assign in class TypeSysteme, wrapped in any necessary conversions
UnsupportedConversionException - If assignment to the given type is incorrect.
TypeSystem.UnsupportedConversionExceptionprotected Type immediateSupertype(ClassType t)
public TypeSystem.ConstructorInvocation lookupConstructor(Type t,
java.lang.Iterable<? extends Type> typeArgs,
java.lang.Iterable<? extends Expression> args,
Option<Type> expected,
Access.Module accessModule)
throws TypeSystem.InvalidTypeArgumentException,
TypeSystem.UnmatchedLookupException
lookupConstructor in class TypeSystemt - The type of the object to be constructed.typeArgs - The type arguments for the constructor's type parameters.args - A list of typed expressions corresponding to the constructor's parameters.expected - The type expected in the invocation's calling context, if any.
TypeSystem.ConstructorInvocation object representing the matched constructor.
InvalidTypeArgumentException - If the type arguments are invalid (for example, a primitive type).
UnmatchedLookupException - If 0 or more than 1 constructor matches the given arguments and type
arguments.
TypeSystem.InvalidTypeArgumentException
TypeSystem.UnmatchedLookupException
public boolean containsMethod(Type t,
java.lang.String name,
Access.Module accessModule)
containsMethod in class TypeSystem
public boolean containsStaticMethod(Type t,
java.lang.String name,
Access.Module accessModule)
containsStaticMethod in class TypeSystem
public TypeSystem.ObjectMethodInvocation lookupMethod(Expression object,
java.lang.String name,
java.lang.Iterable<? extends Type> typeArgs,
java.lang.Iterable<? extends Expression> args,
Option<Type> expected,
Access.Module accessModule)
throws TypeSystem.InvalidTypeArgumentException,
TypeSystem.UnmatchedLookupException
TypeSystem
lookupMethod in class TypeSystemobject - A typed expression representing the object whose method is to be invoked.name - The name of the method.typeArgs - The type arguments for the method's type parameters.args - A list of typed expressions corresponding to the method's parameters.expected - The type expected in the invocation's calling context, if any.
TypeSystem.ObjectMethodInvocation object representing the matched method.
TypeSystem.InvalidTypeArgumentException - If the type arguments are invalid (for example, a primitive type).
TypeSystem.UnmatchedLookupException - If 0 or more than 1 method matches the given name, arguments, and type
arguments.
public TypeSystem.StaticMethodInvocation lookupStaticMethod(Type t,
java.lang.String name,
java.lang.Iterable<? extends Type> typeArgs,
java.lang.Iterable<? extends Expression> args,
Option<Type> expected,
Access.Module accessModule)
throws TypeSystem.InvalidTypeArgumentException,
TypeSystem.UnmatchedLookupException
TypeSystem
lookupStaticMethod in class TypeSystemt - The type in which to search for a static method.name - The name of the method.typeArgs - The type arguments for the method's type parameters.args - A list of typed expressions corresponding to the method's parameters.expected - The type expected in the invocation's calling context, if any.
TypeSystem.StaticMethodInvocation object representing the matched method.
TypeSystem.InvalidTypeArgumentException - If the type arguments are invalid (for example, a primitive type).
TypeSystem.UnmatchedLookupException - If 0 or more than 1 method matches the given name, arguments, and type
arguments.
public boolean containsField(Type t,
java.lang.String name,
Access.Module accessModule)
containsField in class TypeSystem
public boolean containsStaticField(Type t,
java.lang.String name,
Access.Module accessModule)
containsStaticField in class TypeSystem
public TypeSystem.ObjectFieldReference lookupField(Expression object,
java.lang.String name,
Access.Module accessModule)
throws TypeSystem.UnmatchedLookupException
TypeSystem
lookupField in class TypeSystemobject - A typed expression representing the object whose field is to be accessed.name - The name of the field.
TypeSystem.ObjectFieldReference object representing the matched field.
TypeSystem.UnmatchedLookupException - If 0 or more than 1 field matches the given name.
public TypeSystem.StaticFieldReference lookupStaticField(Type t,
java.lang.String name,
Access.Module accessModule)
throws TypeSystem.UnmatchedLookupException
TypeSystem
lookupStaticField in class TypeSystemt - The type in which to search for a static field.name - The name of the field.
TypeSystem.StaticFieldReference object representing the matched field.
TypeSystem.UnmatchedLookupException - If 0 or more than 1 field matches the given name.
public boolean containsClass(Type t,
java.lang.String name,
Access.Module accessModule)
containsClass in class TypeSystem
public boolean containsStaticClass(Type t,
java.lang.String name,
Access.Module accessModule)
containsStaticClass in class TypeSystem
public ClassType lookupClass(Expression object,
java.lang.String name,
java.lang.Iterable<? extends Type> typeArgs,
Access.Module accessModule)
throws TypeSystem.InvalidTypeArgumentException,
TypeSystem.UnmatchedLookupException
TypeSystem
lookupClass in class TypeSystemobject - A typed expression representing the object whose class is to be accessed.name - The name of the class.typeArgs - The type arguments for the class
TypeSystem.InvalidTypeArgumentException - If the type arguments are invalid or do not correspond to the
class's formal parameters (bounds are not checked, so the result
may not be well-formed).
TypeSystem.UnmatchedLookupException - If 0 or more than 1 class matches the given name.
public ClassType lookupClass(Type t,
java.lang.String name,
java.lang.Iterable<? extends Type> typeArgs,
Access.Module accessModule)
throws TypeSystem.InvalidTypeArgumentException,
TypeSystem.UnmatchedLookupException
TypeSystem
lookupClass in class TypeSystemt - The type in which to search for a static class.name - The name of the class.typeArgs - The type arguments for the class
TypeSystem.InvalidTypeArgumentException - If the type arguments are invalid or do not correspond to the
class's formal parameters (bounds are not checked, so the
result may not be well-formed).
TypeSystem.UnmatchedLookupException - If 0 or more than 1 class matches the given name.
public ClassType lookupStaticClass(Type t,
java.lang.String name,
java.lang.Iterable<? extends Type> typeArgs,
Access.Module accessModule)
throws TypeSystem.InvalidTypeArgumentException,
TypeSystem.UnmatchedLookupException
TypeSystem
lookupStaticClass in class TypeSystemt - The type in which to search for a static class.name - The name of the class.typeArgs - The type arguments for the class
TypeSystem.InvalidTypeArgumentException - If the type arguments are invalid or do not correspond to the
class's formal parameters (bounds are not checked, so the result
may not be well-formed).
TypeSystem.UnmatchedLookupException - If 0 or more than 1 class matches the given name.
protected boolean inBounds(java.lang.Iterable<? extends VariableType> params,
java.lang.Iterable<? extends Type> args)
params and args have matching arity.
true iff the given arguments are within the bounds of the given parameters
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||