protected static class DefaultInferredTypesApplier.InferredTypeApplyingVisitor extends AbstractAtmComboVisitor<Void,AnnotationMirror>
Constructor and Description |
---|
InferredTypeApplyingVisitor(QualifierHierarchy qualifierHierarchy,
boolean omitSubtypingCheck) |
visit, visitArray_Array, visitArray_Declared, visitArray_Executable, visitArray_Intersection, visitArray_None, visitArray_Null, visitArray_Primitive, visitArray_Typevar, visitArray_Union, visitArray_Wildcard, visitDeclared_Array, visitDeclared_Declared, visitDeclared_Executable, visitDeclared_Intersection, visitDeclared_None, visitDeclared_Null, visitDeclared_Primitive, visitDeclared_Typevar, visitDeclared_Union, visitDeclared_Wildcard, visitExecutable_Array, visitExecutable_Declared, visitExecutable_Executable, visitExecutable_Intersection, visitExecutable_None, visitExecutable_Null, visitExecutable_Primitive, visitExecutable_Typevar, visitExecutable_Union, visitExecutable_Wildcard, visitIntersection_Array, visitIntersection_Declared, visitIntersection_Executable, visitIntersection_Intersection, visitIntersection_None, visitIntersection_Null, visitIntersection_Primitive, visitIntersection_Typevar, visitIntersection_Union, visitIntersection_Wildcard, visitNone_Array, visitNone_Declared, visitNone_Executable, visitNone_Intersection, visitNone_None, visitNone_Null, visitNone_Primitive, visitNone_Union, visitNone_Wildcard, visitNull_Array, visitNull_Declared, visitNull_Executable, visitNull_Intersection, visitNull_None, visitNull_Null, visitNull_Primitive, visitNull_Typevar, visitNull_Union, visitNull_Wildcard, visitPrimitive_Array, visitPrimitive_Declared, visitPrimitive_Executable, visitPrimitive_Intersection, visitPrimitive_None, visitPrimitive_Null, visitPrimitive_Primitive, visitPrimitive_Typevar, visitPrimitive_Union, visitPrimitive_Wildcard, visitTypevar_Array, visitTypevar_Declared, visitTypevar_Executable, visitTypevar_Intersection, visitTypevar_None, visitTypevar_Null, visitTypevar_Primitive, visitTypevar_Union, visitUnion_Array, visitUnion_Declared, visitUnion_Executable, visitUnion_Intersection, visitUnion_None, visitUnion_Null, visitUnion_Primitive, visitUnion_Typevar, visitUnion_Union, visitUnion_Wildcard, visitWildcard_Array, visitWildcard_Declared, visitWildcard_Executable, visitWildcard_Intersection, visitWildcard_None, visitWildcard_Null, visitWildcard_Primitive, visitWildcard_Union
public InferredTypeApplyingVisitor(QualifierHierarchy qualifierHierarchy, boolean omitSubtypingCheck)
protected String defaultErrorMessage(AnnotatedTypeMirror type, AnnotatedTypeMirror inferred, AnnotationMirror top)
AbstractAtmComboVisitor
defaultErrorMessage
in class AbstractAtmComboVisitor<Void,AnnotationMirror>
type
- the first AnnotatedTypeMirror parameter to the visit method calledinferred
- the second AnnotatedTypeMirror parameter to the visit method calledtop
- subtype specific parameter passed to every visit methodprotected Void defaultAction(AnnotatedTypeMirror type, AnnotatedTypeMirror inferred, AnnotationMirror top)
AbstractAtmComboVisitor
defaultAction
in class AbstractAtmComboVisitor<Void,AnnotationMirror>
type
- the first AnnotatedTypeMirror parameter to the visit method calledinferred
- the second AnnotatedTypeMirror parameter to the visit method calledtop
- subtype specific parameter passed to every visit methodpublic Void visitTypevar_Typevar(AnnotatedTypeMirror.AnnotatedTypeVariable type, AnnotatedTypeMirror.AnnotatedTypeVariable inferred, AnnotationMirror top)
<T> void method() { @TOP T t; }
The type @TOP T is equivalent to a type T[ extends @TOP Object super @TOP Void ]
For the following method:
<@BOTTOM T extends @TOP Object> void method(T in_t) {
T t = in_t;
}
The type of in_t is the declared type of T and it is below @TOP t, so t should be refined to the
declared type of T[ extends @TOP Object super @BOTTOM Void]. To do this, we must apply the
the annotations of both bounds to type. This requires a traversal of type.visitTypevar_Typevar
in interface AtmComboVisitor<Void,AnnotationMirror>
visitTypevar_Typevar
in class AbstractAtmComboVisitor<Void,AnnotationMirror>
public Void visitTypevar_Wildcard(AnnotatedTypeMirror.AnnotatedTypeVariable type, AnnotatedTypeMirror.AnnotatedWildcardType inferred, AnnotationMirror top)
visitTypevar_Wildcard
in interface AtmComboVisitor<Void,AnnotationMirror>
visitTypevar_Wildcard
in class AbstractAtmComboVisitor<Void,AnnotationMirror>
public Void visitWildcard_Typevar(AnnotatedTypeMirror.AnnotatedWildcardType type, AnnotatedTypeMirror.AnnotatedTypeVariable inferred, AnnotationMirror top)
visitWildcard_Typevar
in interface AtmComboVisitor<Void,AnnotationMirror>
visitWildcard_Typevar
in class AbstractAtmComboVisitor<Void,AnnotationMirror>
public Void visitWildcard_Wildcard(AnnotatedTypeMirror.AnnotatedWildcardType type, AnnotatedTypeMirror.AnnotatedWildcardType inferred, AnnotationMirror top)
visitWildcard_Wildcard
in interface AtmComboVisitor<Void,AnnotationMirror>
visitWildcard_Wildcard
in class AbstractAtmComboVisitor<Void,AnnotationMirror>
protected void applyPrimary(AnnotatedTypeMirror bound, AnnotationMirror anno)