private class Overrides.ExplicitOverrides.TypeSubstVisitor
extends javax.lang.model.util.SimpleTypeVisitor6<javax.lang.model.type.TypeMirror,java.lang.Void>
E
is String
, then we can return String
for E
,
List<String>
for List<E>
, String[]
for E[]
, etc. We don't
have to cover all types here because (1) the type is going to end up being erased, and
(2) wildcards can't appear in direct supertypes. So for example it is illegal to write
class MyList implements List<? extends Number>
. It's legal to write
class MyList implements List<Set<? extends Number>>
but that doesn't matter
because the E
of the List
is going to be erased to raw Set
.Modifier and Type | Field and Description |
---|---|
private java.util.Map<javax.lang.model.element.TypeParameterElement,javax.lang.model.type.TypeMirror> |
typeBindings
The bindings of type variables.
|
Modifier | Constructor and Description |
---|---|
private |
TypeSubstVisitor() |
Modifier and Type | Method and Description |
---|---|
protected javax.lang.model.type.TypeMirror |
defaultAction(javax.lang.model.type.TypeMirror e,
java.lang.Void p) |
(package private) com.google.common.collect.ImmutableList<javax.lang.model.type.TypeMirror> |
erasedParameterTypes(javax.lang.model.element.ExecutableElement method,
javax.lang.model.element.TypeElement in) |
javax.lang.model.type.TypeMirror |
visitArray(javax.lang.model.type.ArrayType t,
java.lang.Void p) |
javax.lang.model.type.TypeMirror |
visitDeclared(javax.lang.model.type.DeclaredType t,
java.lang.Void p) |
javax.lang.model.type.TypeMirror |
visitTypeVariable(javax.lang.model.type.TypeVariable t,
java.lang.Void p) |
visitError, visitExecutable, visitNoType, visitNull, visitPrimitive, visitWildcard
private final java.util.Map<javax.lang.model.element.TypeParameterElement,javax.lang.model.type.TypeMirror> typeBindings
List<E>
is not the same as E in Collection<E>
. As we ascend the type hierarchy we'll add
mappings for all the variables we see. We could equivalently create a new map for each type
we visit, but this is slightly simpler and probably about as performant.com.google.common.collect.ImmutableList<javax.lang.model.type.TypeMirror> erasedParameterTypes(javax.lang.model.element.ExecutableElement method, javax.lang.model.element.TypeElement in)
protected javax.lang.model.type.TypeMirror defaultAction(javax.lang.model.type.TypeMirror e, java.lang.Void p)
defaultAction
in class javax.lang.model.util.SimpleTypeVisitor6<javax.lang.model.type.TypeMirror,java.lang.Void>
public javax.lang.model.type.TypeMirror visitTypeVariable(javax.lang.model.type.TypeVariable t, java.lang.Void p)
visitTypeVariable
in interface javax.lang.model.type.TypeVisitor<javax.lang.model.type.TypeMirror,java.lang.Void>
visitTypeVariable
in class javax.lang.model.util.SimpleTypeVisitor6<javax.lang.model.type.TypeMirror,java.lang.Void>
public javax.lang.model.type.TypeMirror visitDeclared(javax.lang.model.type.DeclaredType t, java.lang.Void p)
visitDeclared
in interface javax.lang.model.type.TypeVisitor<javax.lang.model.type.TypeMirror,java.lang.Void>
visitDeclared
in class javax.lang.model.util.SimpleTypeVisitor6<javax.lang.model.type.TypeMirror,java.lang.Void>
public javax.lang.model.type.TypeMirror visitArray(javax.lang.model.type.ArrayType t, java.lang.Void p)
visitArray
in interface javax.lang.model.type.TypeVisitor<javax.lang.model.type.TypeMirror,java.lang.Void>
visitArray
in class javax.lang.model.util.SimpleTypeVisitor6<javax.lang.model.type.TypeMirror,java.lang.Void>