Interface TypeVariableReferenceDetails

All Superinterfaces:
TypeDetails, TypeVariableScope
All Known Implementing Classes:
TypeVariableReferenceDetailsImpl

public interface TypeVariableReferenceDetails extends TypeDetails
Models a reference to a type variable in the bound of a recursive type parameter.

The referenced type variable is available via getTarget(). The name of the type variable corresponds to the raw type name which here comes from the target. The identifier is the name of the type variable as present in the source code.

For example,

 T extends Comparable<T>
 
In this case, we have uses of the 2 type variable T. The initial one is modeled as a TypeVariableDetails. The second one (as part of Comparable<T>) is modeled as a TypeVariableReferenceDetails. The identifier is T while the name is Comparable.
API Note:
This split between TypeVariableDetails and TypeVariableReferenceDetails helps protect against stack overflows while processing generics.