public class NotTypePattern extends TypePattern
any binding to formals is explicitly forbidden for any composite, ! is just the most obviously wrong case.
TypePattern.MatchKind
AND, annotationPattern, ANY, ANY_KEY, ANY_WITH_ANNO, BINDING, DYNAMIC, ELLIPSIS, ELLIPSIS_KEY, EXACT, HAS_MEMBER, includeSubtypes, isVarArgs, NO, NO_KEY, NOT, OR, STATIC, TYPE_CATEGORY, typeParameters, WILD
end, sourceContext, start
Constructor and Description |
---|
NotTypePattern(TypePattern pattern) |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
accept(PatternNodeVisitor visitor,
java.lang.Object data) |
protected boolean |
couldEverMatchSameTypesAs(TypePattern other) |
boolean |
equals(java.lang.Object obj) |
TypePattern |
getNegatedPattern() |
int |
hashCode() |
boolean |
isBangVoid()
For quickly recognizing the pattern '!void'
|
protected boolean |
matchesExactly(ResolvedType type) |
protected boolean |
matchesExactly(ResolvedType type,
ResolvedType annotatedType) |
FuzzyBoolean |
matchesInstanceof(ResolvedType type) |
boolean |
matchesStatically(ResolvedType type) |
TypePattern |
parameterizeWith(java.util.Map<java.lang.String,UnresolvedType> typeVariableMap,
World w)
return a version of this type pattern in which all type variable references have been replaced by their corresponding entry
in the map.
|
static TypePattern |
read(VersionedDataInputStream s,
ISourceContext context) |
TypePattern |
resolveBindings(IScope scope,
Bindings bindings,
boolean allowBinding,
boolean requireExactType)
This can modify in place, or return a new TypePattern if the type changes.
|
void |
setAnnotationTypePattern(AnnotationTypePattern annPatt) |
void |
setIsVarArgs(boolean isVarArgs) |
java.lang.String |
toString() |
java.lang.Object |
traverse(PatternNodeVisitor visitor,
java.lang.Object data) |
void |
write(CompressingDataOutputStream s) |
getAnnotationPattern, getExactType, getTypeParameters, hasFailedResolution, isArray, isEllipsis, isIncludeSubtypes, isStar, isStarAnnotation, isVarArgs, isVoid, matches, matchesSubtypes, matchesSubtypes, notExactType, postRead, remapAdviceFormals, resolve, resolveExactType, setTypeParameters
copyLocationFrom, getEnd, getFileName, getSourceContext, getSourceLocation, getStart, readLocation, setLocation, writeLocation
public NotTypePattern(TypePattern pattern)
public TypePattern getNegatedPattern()
protected boolean couldEverMatchSameTypesAs(TypePattern other)
couldEverMatchSameTypesAs
in class TypePattern
public FuzzyBoolean matchesInstanceof(ResolvedType type)
matchesInstanceof
in class TypePattern
protected boolean matchesExactly(ResolvedType type)
matchesExactly
in class TypePattern
protected boolean matchesExactly(ResolvedType type, ResolvedType annotatedType)
matchesExactly
in class TypePattern
public boolean matchesStatically(ResolvedType type)
matchesStatically
in class TypePattern
public void setAnnotationTypePattern(AnnotationTypePattern annPatt)
setAnnotationTypePattern
in class TypePattern
public void setIsVarArgs(boolean isVarArgs)
setIsVarArgs
in class TypePattern
public void write(CompressingDataOutputStream s) throws java.io.IOException
write
in class PatternNode
java.io.IOException
public static TypePattern read(VersionedDataInputStream s, ISourceContext context) throws java.io.IOException
java.io.IOException
public TypePattern resolveBindings(IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType)
TypePattern
resolveBindings
in class TypePattern
public boolean isBangVoid()
TypePattern
isBangVoid
in class TypePattern
public TypePattern parameterizeWith(java.util.Map<java.lang.String,UnresolvedType> typeVariableMap, World w)
TypePattern
parameterizeWith
in class TypePattern
public java.lang.String toString()
toString
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.Object accept(PatternNodeVisitor visitor, java.lang.Object data)
accept
in class PatternNode
public java.lang.Object traverse(PatternNodeVisitor visitor, java.lang.Object data)
traverse
in class PatternNode