public class TemplateTypeMapReplacer extends ModificationVisitor
Modifier and Type | Field and Description |
---|---|
private TemplateTypeMap |
replacements |
private ArrayDeque<TemplateType> |
visitedTypes |
Constructor and Description |
---|
TemplateTypeMapReplacer(JSTypeRegistry registry,
TemplateTypeMap replacements) |
Modifier and Type | Method and Description |
---|---|
JSType |
caseTemplateType(TemplateType type)
Template type's case.
|
private boolean |
hasVisitedType(TemplateType type)
Checks if the specified type has already been visited during the Visitor's
traversal of a JSType.
|
private boolean |
isRecursive(TemplateType currentType,
JSType replacementType)
Returns whether the replacement type is a templatized type which contains the current type.
|
private boolean |
isSameType(TemplateType currentType,
TemplateType replacementType) |
caseAllType, caseBooleanType, caseEnumElementType, caseFunctionType, caseNamedType, caseNoObjectType, caseNoType, caseNullType, caseNumberType, caseObjectType, caseProxyObjectType, caseStringType, caseTemplatizedType, caseUnionType, caseUnknownType, caseVoidType
private final TemplateTypeMap replacements
private ArrayDeque<TemplateType> visitedTypes
public TemplateTypeMapReplacer(JSTypeRegistry registry, TemplateTypeMap replacements)
public JSType caseTemplateType(TemplateType type)
Visitor
caseTemplateType
in interface Visitor<JSType>
caseTemplateType
in class ModificationVisitor
private boolean isRecursive(TemplateType currentType, JSType replacementType)
private boolean isSameType(TemplateType currentType, TemplateType replacementType)
private boolean hasVisitedType(TemplateType type)