public class JL5Subst_c extends Subst_c<TypeVariable,ReferenceType> implements JL5Subst
Subst_c.CacheTypeWrapper, Subst_c.ConstructorXform<T extends ConstructorInstance>, Subst_c.FieldXform<T extends FieldInstance>, Subst_c.MethodXform<T extends MethodInstance>, Subst_c.TypeXform<T extends Type>
cache, subst, substClassTypeCache, ts
Constructor and Description |
---|
JL5Subst_c(ParamTypeSystem<TypeVariable,ReferenceType> ts,
java.util.Map<TypeVariable,? extends ReferenceType> subst) |
Modifier and Type | Method and Description |
---|---|
protected ClassType |
substClassTypeImpl(ClassType t) |
<T extends ConstructorInstance> |
substConstructor(T ci)
Perform substitutions on a constructor.
|
protected ReferenceType |
substContainer(MemberInstance mi) |
Type |
substIntersectionType(IntersectionType t) |
<T extends MethodInstance> |
substMethod(T mi)
Perform substitutions on a method.
|
JL5ProcedureInstance |
substProcedure(JL5ProcedureInstance mi) |
protected ReferenceType |
substSubstValue(ReferenceType value)
When adding a new substitution A->B to the map, we need to check if
there are already any existing substitutions, say C->A, and if so,
replace them appropriately, in this case with C->B.
|
Type |
substType(Type t)
Perform substitutions on a type.
|
ReferenceType |
substTypeVariable(TypeVariable t) |
Type |
substWildCardTypeVariable(WildCardType t) |
cacheGet, cachePut, cacheTypeEquality, entries, equals, hashCode, is_entry, substClassType, substConstructorList, substField, substFieldList, substitutions, substMethodList, substPClass, substTypeList, toString, typeSystem, typeWrapper, uncachedSubstType
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
entries, is_entry, substConstructorList, substField, substFieldList, substitutions, substMethodList, substPClass, substTypeList, typeSystem
public JL5Subst_c(ParamTypeSystem<TypeVariable,ReferenceType> ts, java.util.Map<TypeVariable,? extends ReferenceType> subst)
public Type substType(Type t)
Subst
substType
in interface Subst<TypeVariable,ReferenceType>
substType
in class Subst_c<TypeVariable,ReferenceType>
public ReferenceType substTypeVariable(TypeVariable t)
public Type substWildCardTypeVariable(WildCardType t)
public Type substIntersectionType(IntersectionType t)
protected ReferenceType substSubstValue(ReferenceType value)
Subst_c
substSubstValue
in class Subst_c<TypeVariable,ReferenceType>
protected ClassType substClassTypeImpl(ClassType t)
substClassTypeImpl
in class Subst_c<TypeVariable,ReferenceType>
public <T extends MethodInstance> T substMethod(T mi)
Subst
substMethod
in interface Subst<TypeVariable,ReferenceType>
substMethod
in class Subst_c<TypeVariable,ReferenceType>
public <T extends ConstructorInstance> T substConstructor(T ci)
Subst
substConstructor
in interface Subst<TypeVariable,ReferenceType>
substConstructor
in class Subst_c<TypeVariable,ReferenceType>
protected ReferenceType substContainer(MemberInstance mi)
substContainer
in class Subst_c<TypeVariable,ReferenceType>
public JL5ProcedureInstance substProcedure(JL5ProcedureInstance mi)
substProcedure
in interface JL5Subst