static boolean hasGenericParameter(MethodBinding method) { if (method.genericSignature() == null) return false; // may be only the return type that is generic, need to check parameters TypeBinding[] params = method.parameters; for (int i = 0, l = params.length; i < l; i++) { TypeBinding param = params[i].leafComponentType(); if (param instanceof ReferenceBinding) { int modifiers = ((ReferenceBinding) param).modifiers; if ((modifiers & ExtraCompilerModifiers.AccGenericSignature) != 0) return true; } } return false; }
static boolean hasGenericParameter(MethodBinding method) { if (method.genericSignature() == null) return false; // may be only the return type that is generic, need to check parameters TypeBinding[] params = method.parameters; for (int i = 0, l = params.length; i < l; i++) { TypeBinding param = params[i].leafComponentType(); if (param instanceof ReferenceBinding) { int modifiers = ((ReferenceBinding) param).modifiers; if ((modifiers & ExtraCompilerModifiers.AccGenericSignature) != 0) return true; } } return false; }
static boolean hasGenericParameter(MethodBinding method) { if (method.genericSignature() == null) return false; // may be only the return type that is generic, need to check parameters TypeBinding[] params = method.parameters; for (int i = 0, l = params.length; i < l; i++) { TypeBinding param = params[i].leafComponentType(); if (param instanceof ReferenceBinding) { int modifiers = ((ReferenceBinding) param).modifiers; if ((modifiers & ExtraCompilerModifiers.AccGenericSignature) != 0) return true; } } return false; }
static boolean hasGenericParameter(MethodBinding method) { if (method.genericSignature() == null) return false; // may be only the return type that is generic, need to check parameters TypeBinding[] params = method.parameters; for (int i = 0, l = params.length; i < l; i++) { TypeBinding param = params[i].leafComponentType(); if (param instanceof ReferenceBinding) { int modifiers = ((ReferenceBinding) param).modifiers; if ((modifiers & ExtraCompilerModifiers.AccGenericSignature) != 0) return true; } } return false; }
static boolean hasGenericParameter(MethodBinding method) { if (method.genericSignature() == null) return false; // may be only the return type that is generic, need to check parameters TypeBinding[] params = method.parameters; for (int i = 0, l = params.length; i < l; i++) { TypeBinding param = params[i].leafComponentType(); if (param instanceof ReferenceBinding) { int modifiers = ((ReferenceBinding) param).modifiers; if ((modifiers & ExtraCompilerModifiers.AccGenericSignature) != 0) return true; } } return false; }
static boolean hasGenericParameter(MethodBinding method) { if (method.genericSignature() == null) return false; // may be only the return type that is generic, need to check parameters TypeBinding[] params = method.parameters; for (int i = 0, l = params.length; i < l; i++) { TypeBinding param = params[i].leafComponentType(); if (param instanceof ReferenceBinding) { int modifiers = ((ReferenceBinding) param).modifiers; if ((modifiers & ExtraCompilerModifiers.AccGenericSignature) != 0) return true; } } return false; }
static boolean hasGenericParameter(MethodBinding method) { if (method.genericSignature() == null) return false; // may be only the return type that is generic, need to check parameters TypeBinding[] params = method.parameters; for (int i = 0, l = params.length; i < l; i++) { TypeBinding param = params[i].leafComponentType(); if (param instanceof ReferenceBinding) { int modifiers = ((ReferenceBinding) param).modifiers; if ((modifiers & ExtraCompilerModifiers.AccGenericSignature) != 0) return true; } } return false; }
static boolean hasGenericParameter(MethodBinding method) { if (method.genericSignature() == null) return false; // may be only the return type that is generic, need to check parameters TypeBinding[] params = method.parameters; for (int i = 0, l = params.length; i < l; i++) { TypeBinding param = params[i].leafComponentType(); if (param instanceof ReferenceBinding) { int modifiers = ((ReferenceBinding) param).modifiers; if ((modifiers & ExtraCompilerModifiers.AccGenericSignature) != 0) return true; } } return false; }
boolean hasGenericParameter(MethodBinding method) { if (method.genericSignature() == null) return false; // may be only the return type that is generic, need to check parameters TypeBinding[] params = method.parameters; for (int i = 0, l = params.length; i < l; i++) { TypeBinding param = params[i].leafComponentType(); if (param instanceof ReferenceBinding) { int modifiers = ((ReferenceBinding) param).modifiers; if ((modifiers & ExtraCompilerModifiers.AccGenericSignature) != 0) return true; } } return false; } boolean isAcceptableReturnTypeOverride(MethodBinding currentMethod, MethodBinding inheritedMethod) {
boolean hasGenericParameter(MethodBinding method) { if (method.genericSignature() == null) return false; // may be only the return type that is generic, need to check parameters TypeBinding[] params = method.parameters; for (int i = 0, l = params.length; i < l; i++) { TypeBinding param = params[i].leafComponentType(); if (param instanceof ReferenceBinding) { int modifiers = ((ReferenceBinding) param).modifiers; if ((modifiers & ExtraCompilerModifiers.AccGenericSignature) != 0) return true; } } return false; } boolean isAcceptableReturnTypeOverride(MethodBinding currentMethod, MethodBinding inheritedMethod) {
boolean hasGenericParameter(MethodBinding method) { if (method.genericSignature() == null) return false; // may be only the return type that is generic, need to check parameters TypeBinding[] params = method.parameters; for (int i = 0, l = params.length; i < l; i++) { TypeBinding param = params[i].leafComponentType(); if (param instanceof ReferenceBinding) { int modifiers = ((ReferenceBinding) param).modifiers; if ((modifiers & ExtraCompilerModifiers.AccGenericSignature) != 0) return true; } } return false; } boolean isAcceptableReturnTypeOverride(MethodBinding currentMethod, MethodBinding inheritedMethod) {
public static char[] getSignature(MethodBinding methodBinding) { char[] result = null; int oldMod = methodBinding.modifiers; //TODO remove the next line when method from binary type will be able to generate generic signature methodBinding.modifiers |= ExtraCompilerModifiers.AccGenericSignature; result = methodBinding.genericSignature(); if(result == null) { result = methodBinding.signature(); } methodBinding.modifiers = oldMod; if (result != null) { result = CharOperation.replaceOnCopy(result, '/', '.'); } return result; }
public static char[] getSignature(MethodBinding methodBinding) { char[] result = null; int oldMod = methodBinding.modifiers; //TODO remove the next line when method from binary type will be able to generate generic signature methodBinding.modifiers |= ExtraCompilerModifiers.AccGenericSignature; result = methodBinding.genericSignature(); if(result == null) { result = methodBinding.signature(); } methodBinding.modifiers = oldMod; if (result != null) { result = CharOperation.replaceOnCopy(result, '/', '.'); } return result; }
public static char[] getSignature(MethodBinding methodBinding) { char[] result = null; int oldMod = methodBinding.modifiers; //TODO remove the next line when method from binary type will be able to generate generic signature methodBinding.modifiers |= ExtraCompilerModifiers.AccGenericSignature; result = methodBinding.genericSignature(); if(result == null) { result = methodBinding.signature(); } methodBinding.modifiers = oldMod; if (result != null) { result = CharOperation.replaceOnCopy(result, '/', '.'); } return result; }
public static char[] getSignature(MethodBinding methodBinding) { char[] result = null; int oldMod = methodBinding.modifiers; //TODO remove the next line when method from binary type will be able to generate generic signature methodBinding.modifiers |= ExtraCompilerModifiers.AccGenericSignature; result = methodBinding.genericSignature(); if(result == null) { result = methodBinding.signature(); } methodBinding.modifiers = oldMod; if (result != null) { result = CharOperation.replaceOnCopy(result, '/', '.'); } return result; }
public static char[] getSignature(MethodBinding methodBinding) { char[] result = null; int oldMod = methodBinding.modifiers; //TODO remove the next line when method from binary type will be able to generate generic signature methodBinding.modifiers |= ExtraCompilerModifiers.AccGenericSignature; result = methodBinding.genericSignature(); if(result == null) { result = methodBinding.signature(); } methodBinding.modifiers = oldMod; if (result != null) { result = CharOperation.replaceOnCopy(result, '/', '.'); } return result; }
public static char[] getSignature(MethodBinding methodBinding) { char[] result = null; int oldMod = methodBinding.modifiers; //TODO remove the next line when method from binary type will be able to generate generic signature methodBinding.modifiers |= ExtraCompilerModifiers.AccGenericSignature; result = methodBinding.genericSignature(); if(result == null) { result = methodBinding.signature(); } methodBinding.modifiers = oldMod; if (result != null) { result = CharOperation.replaceOnCopy(result, '/', '.'); } return result; }
public void consumeMethod(char[] selector, char[] signature) { if (this.typeBinding == null) return; MethodBinding[] methods = ((ReferenceBinding) this.typeBinding).availableMethods(); // resilience for (int i = 0, methodLength = methods.length; i < methodLength; i++) { MethodBinding method = methods[i]; if (CharOperation.equals(selector, method.selector) || (selector.length == 0 && method.isConstructor())) { char[] methodSignature = method.genericSignature(); if (methodSignature == null) methodSignature = method.signature(); if (CharOperation.equals(signature, methodSignature)) { this.typeBinding = null; this.methodBinding = method; this.compilerBinding = this.methodBinding; return; } } } }
public static void annotateMethodBinding(MethodBinding method, ExternalAnnotationProvider provider, LookupEnvironment environment) { char[] methodSignature = method.genericSignature(); if (methodSignature == null) methodSignature = method.signature(); ITypeAnnotationWalker walker = provider.forMethod(method.selector, methodSignature, environment); if (walker != null && walker != ITypeAnnotationWalker.EMPTY_ANNOTATION_WALKER) { ExternalAnnotationSuperimposer visitor = new ExternalAnnotationSuperimposer(environment); TypeVariableBinding[] typeParams = method.typeVariables; for (short i = 0; i < typeParams.length; i++) { if (visitor.go(walker.toTypeParameter(false, i))) typeParams[i] = visitor.superimpose(typeParams[i], TypeVariableBinding.class); } if (!method.isConstructor()) { if (visitor.go(walker.toMethodReturn())) method.returnType = visitor.superimpose(method.returnType, TypeBinding.class); } TypeBinding[] parameters = method.parameters; for (short i = 0; i < parameters.length; i++) { if (visitor.go(walker.toMethodParameter(i))) parameters[i] = visitor.superimpose(parameters[i], TypeBinding.class); } } }
public static void annotateMethodBinding(MethodBinding method, ExternalAnnotationProvider provider, LookupEnvironment environment) { char[] methodSignature = method.genericSignature(); if (methodSignature == null) methodSignature = method.signature(); ITypeAnnotationWalker walker = provider.forMethod(method.selector, methodSignature, environment); if (walker != null && walker != ITypeAnnotationWalker.EMPTY_ANNOTATION_WALKER) { ExternalAnnotationSuperimposer visitor = new ExternalAnnotationSuperimposer(environment); TypeVariableBinding[] typeParams = method.typeVariables; for (short i = 0; i < typeParams.length; i++) { if (visitor.go(walker.toTypeParameter(false, i))) typeParams[i] = visitor.superimpose(typeParams[i], TypeVariableBinding.class); } if (!method.isConstructor()) { if (visitor.go(walker.toMethodReturn())) method.returnType = visitor.superimpose(method.returnType, TypeBinding.class); } TypeBinding[] parameters = method.parameters; for (short i = 0; i < parameters.length; i++) { if (visitor.go(walker.toMethodParameter(i))) parameters[i] = visitor.superimpose(parameters[i], TypeBinding.class); } } }