public class ParameterizedGenericMethodBinding extends ParameterizedMethodBinding implements Substitution
| Modifier and Type | Field and Description |
|---|---|
boolean |
inferredReturnType |
boolean |
isRaw |
TypeBinding[] |
typeArguments |
boolean |
wasInferred |
originalMethoddeclaringClass, defaultNullness, modifiers, parameterNames, parameterNonNullness, parameters, receiver, returnType, selector, tagBits, thrownExceptions, typeVariablesANY_EXCEPTION, ARRAY_TYPE, BASE_TYPE, DefaultLocationArrayContents, DefaultLocationField, DefaultLocationParameter, DefaultLocationReturnType, DefaultLocationTypeArgument, DefaultLocationTypeBound, DefaultLocationTypeParameter, FIELD, GENERIC_TYPE, IMPORT, INTERSECTION_CAST_TYPE, INTERSECTION_TYPE, LOCAL, METHOD, NO_ANNOTATIONS, NO_ELEMENT_VALUE_PAIRS, NO_EXCEPTIONS, NO_FIELDS, NO_MEMBER_TYPES, NO_METHODS, NO_NULL_DEFAULT, NO_PARAMETER_NAMES, NO_PARAMETERS, NO_REFERENCE_TYPES, NO_SUPERINTERFACES, NO_TYPE_VARIABLES, NO_TYPES, NONNULL_BY_DEFAULT, NULL_UNSPECIFIED_BY_DEFAULT, NullnessDefaultMASK, PACKAGE, PARAMETERIZED_TYPE, POLY_TYPE, RAW_TYPE, TYPE, TYPE_PARAMETER, TYPE_USE, UNINITIALIZED_FIELDS, UNINITIALIZED_METHODS, UNINITIALIZED_REFERENCE_TYPES, VARIABLE, WILDCARD_TYPE| Constructor and Description |
|---|
ParameterizedGenericMethodBinding(MethodBinding originalMethod,
RawTypeBinding rawType,
LookupEnvironment environment)
Create raw generic method for raw type (double substitution from type vars with raw type arguments, and erasure of method variables)
Only invoked for non-static generic methods of raw type
|
ParameterizedGenericMethodBinding(MethodBinding originalMethod,
TypeBinding[] typeArguments,
LookupEnvironment environment)
Create method of parameterized type, substituting original parameters with type arguments.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
alwaysNeedsAccessMethod()
Subtypes can override this to return true if an access method should be
used when referring to this method binding.
|
static MethodBinding |
computeCompatibleMethod(MethodBinding originalMethod,
TypeBinding[] arguments,
Scope scope,
InvocationSite invocationSite,
int inferenceLevel)
Perform inference of generic method type parameters and/or expected type
|
char[] |
computeUniqueKey(boolean isLeaf) |
LookupEnvironment |
environment()
Returns the lookup environment
|
MethodBinding |
genericMethod() |
MethodBinding |
getAccessMethod(boolean staticReference)
This will only be called if alwaysNeedsAccessMethod() returns true.
|
boolean |
hasSubstitutedParameters()
Returns true if some parameters got substituted.
|
boolean |
hasSubstitutedReturnType()
Returns true if the return type got substituted.
|
boolean |
isRawSubstitution()
Returns true for raw substitution
|
TypeBinding |
substitute(TypeVariableBinding originalVariable)
Returns the type substitute for a given type variable, or itself
if no substitution got performed.
|
MethodBinding |
tiebreakMethod()
Returns the method to use during tiebreak (usually the method itself).
|
canBeSeenBy, instantiateGetClass, original, shallowOriginal, sourceMethodareParameterErasuresEqual, areParametersCompatibleWith, areParametersEqual, areTypeVariableErasuresEqual, asRawMethod, canBeSeenBy, canBeSeenBy, collectMissingTypes, constantPoolName, fillInDefaultNonNullness, fillInDefaultNonNullness18, findOriginalInheritedMethod, findPrivilegedBinding, genericSignature, getAccessFlags, getAnnotations, getAnnotationTagBits, getDefaultValue, getParameterAnnotations, getTypeVariable, getVisibleBinding, getVisibleBinding, hasNonNullDefaultFor, isAbstract, isBridge, isConstructor, isDefault, isDefaultAbstract, isDefaultMethod, isDeprecated, isFinal, isImplementing, isMain, isNative, isOrEnclosedByPrivateType, isOverriding, isPolymorphic, isPrivate, isProtected, isPublic, isStatic, isStrictfp, isSynchronized, isSynthetic, isUsed, isVarargs, isViewedAsDeprecated, isVoidMethod, kind, readableName, redeclaresPublicObjectMethod, setAnnotations, setAnnotations, setDefaultValue, setParameterAnnotations, setSelector, shortReadableName, signature, signature, sourceEnd, sourceLambda, sourceStart, toString, typeVariablescomputeUniqueKey, initializeDeprecatedAnnotationTagBits, isAnnotationType, isParameter, isTaggedRepeatable, isValidBinding, isVolatile, problemId, setAnnotationspublic TypeBinding[] typeArguments
public boolean inferredReturnType
public boolean wasInferred
public boolean isRaw
public ParameterizedGenericMethodBinding(MethodBinding originalMethod, RawTypeBinding rawType, LookupEnvironment environment)
public ParameterizedGenericMethodBinding(MethodBinding originalMethod, TypeBinding[] typeArguments, LookupEnvironment environment)
public static MethodBinding computeCompatibleMethod(MethodBinding originalMethod, TypeBinding[] arguments, Scope scope, InvocationSite invocationSite, int inferenceLevel)
In 1.8+ the following discipline has to be observed by callers: Each invocation must be subjected to two levels of inference:
Invocation Applicability Inference, which may be applied
multiple times for the same invocationInvocation Type Inference, which is finally performed
for the selected method and which adds information from the "target type".Clients can control which parts of the inference should be performed by passing the appropriate flags into argument 'inferenceLevel'. On each call path it must be ensured that one or more invocation applicability inferences are always followed by exactly one invocation type inference (unless errors have been detected).
Initial clients are the direct callers of
Scope.computeCompatibleMethod(MethodBinding,TypeBinding[],InvocationSite,int),
which should either invoke both levels of inference or delegate the second part to
Scope.mostSpecificMethodBinding(MethodBinding[],int,TypeBinding[],InvocationSite,ReferenceBinding),
which is intended to ensure completing the inference on all non-error exits.
public char[] computeUniqueKey(boolean isLeaf)
computeUniqueKey in class MethodBindingpublic LookupEnvironment environment()
Substitutionenvironment in interface SubstitutionSubstitution.environment()public boolean hasSubstitutedParameters()
hasSubstitutedParameters in class ParameterizedMethodBindingpublic boolean hasSubstitutedReturnType()
hasSubstitutedReturnType in class ParameterizedMethodBindingpublic boolean isRawSubstitution()
SubstitutionisRawSubstitution in interface SubstitutionSubstitution.isRawSubstitution()public TypeBinding substitute(TypeVariableBinding originalVariable)
Substitutionsubstitute in interface SubstitutionSubstitution.substitute(org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding)public MethodBinding tiebreakMethod()
MethodBindingtiebreakMethod in class MethodBindingMethodBinding.tiebreakMethod()public MethodBinding genericMethod()
genericMethod in class MethodBindingpublic boolean alwaysNeedsAccessMethod()
MethodBindingalwaysNeedsAccessMethod in class ParameterizedMethodBindingpublic MethodBinding getAccessMethod(boolean staticReference)
MethodBindinggetAccessMethod in class ParameterizedMethodBinding