public MethodBinding findExactMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { MethodBinding exactMethod = receiverType.getExactMethod(selector, argumentTypes, null); if (exactMethod != null){ if (receiverType.isInterface() || canBeSeenByForCodeSnippet(exactMethod, receiverType, invocationSite, this)) return exactMethod; } return null; } // Internal use only
@Override public MethodBinding findExactMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { MethodBinding exactMethod = receiverType.getExactMethod(selector, argumentTypes, null); if (exactMethod != null){ if (receiverType.isInterface() || canBeSeenByForCodeSnippet(exactMethod, receiverType, invocationSite, this)) return exactMethod; } return null; } // Internal use only
public MethodBinding findExactMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { MethodBinding exactMethod = receiverType.getExactMethod(selector, argumentTypes, null); if (exactMethod != null){ if (receiverType.isInterface() || canBeSeenByForCodeSnippet(exactMethod, receiverType, invocationSite, this)) return exactMethod; } return null; } // Internal use only
public MethodBinding findExactMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { MethodBinding exactMethod = receiverType.getExactMethod(selector, argumentTypes, null); if (exactMethod != null){ if (receiverType.isInterface() || canBeSeenByForCodeSnippet(exactMethod, receiverType, invocationSite, this)) return exactMethod; } return null; } // Internal use only
public MethodBinding findExactMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { MethodBinding exactMethod = receiverType.getExactMethod(selector, argumentTypes, null); if (exactMethod != null){ if (receiverType.isInterface() || canBeSeenByForCodeSnippet(exactMethod, receiverType, invocationSite, this)) return exactMethod; } return null; } // Internal use only
public MethodBinding findExactMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { MethodBinding exactMethod = receiverType.getExactMethod(selector, argumentTypes, null); if (exactMethod != null){ if (receiverType.isInterface() || canBeSeenByForCodeSnippet(exactMethod, receiverType, invocationSite, this)) return exactMethod; } return null; } // Internal use only
public MethodBinding findMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite, boolean inStaticContext) { MethodBinding methodBinding = super.findMethod(receiverType, selector, argumentTypes, invocationSite, inStaticContext); if (methodBinding != null && methodBinding.isValidBinding()) if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotVisible); return methodBinding; }
public MethodBinding findMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite, boolean inStaticContext) { MethodBinding methodBinding = super.findMethod(receiverType, selector, argumentTypes, invocationSite, inStaticContext); if (methodBinding != null && methodBinding.isValidBinding()) if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotVisible); return methodBinding; }
public MethodBinding findMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite, boolean inStaticContext) { MethodBinding methodBinding = super.findMethod(receiverType, selector, argumentTypes, invocationSite, inStaticContext); if (methodBinding != null && methodBinding.isValidBinding()) if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotVisible); return methodBinding; }
@Override public MethodBinding findMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite, boolean inStaticContext) { MethodBinding methodBinding = super.findMethod(receiverType, selector, argumentTypes, invocationSite, inStaticContext); if (methodBinding != null && methodBinding.isValidBinding()) if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotVisible); return methodBinding; }
public MethodBinding findMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite, boolean inStaticContext) { MethodBinding methodBinding = super.findMethod(receiverType, selector, argumentTypes, invocationSite, inStaticContext); if (methodBinding != null && methodBinding.isValidBinding()) if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotVisible); return methodBinding; }
public MethodBinding findMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { MethodBinding methodBinding = super.findMethod(receiverType, selector, argumentTypes, invocationSite); if (methodBinding != null && methodBinding.isValidBinding()) if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotVisible); return methodBinding; }
public MethodBinding getImplicitMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { // retrieve an exact visible match (if possible) MethodBinding methodBinding = findExactMethod(receiverType, selector, argumentTypes, invocationSite); if (methodBinding == null) methodBinding = findMethod(receiverType, selector, argumentTypes, invocationSite, false); if (methodBinding != null) { // skip it if we did not find anything if (methodBinding.isValidBinding()) if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotVisible); return methodBinding; } return new ProblemMethodBinding(selector, argumentTypes, ProblemReasons.NotFound); } }
public MethodBinding getImplicitMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { // retrieve an exact visible match (if possible) MethodBinding methodBinding = findExactMethod(receiverType, selector, argumentTypes, invocationSite); if (methodBinding == null) methodBinding = findMethod(receiverType, selector, argumentTypes, invocationSite, false); if (methodBinding != null) { // skip it if we did not find anything if (methodBinding.isValidBinding()) if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotVisible); return methodBinding; } return new ProblemMethodBinding(selector, argumentTypes, ProblemReasons.NotFound); } }
public MethodBinding getImplicitMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { // retrieve an exact visible match (if possible) MethodBinding methodBinding = findExactMethod(receiverType, selector, argumentTypes, invocationSite); if (methodBinding == null) methodBinding = findMethod(receiverType, selector, argumentTypes, invocationSite, false); if (methodBinding != null) { // skip it if we did not find anything if (methodBinding.isValidBinding()) if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotVisible); return methodBinding; } return new ProblemMethodBinding(selector, argumentTypes, ProblemReasons.NotFound); } }
public MethodBinding getImplicitMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { // retrieve an exact visible match (if possible) MethodBinding methodBinding = findExactMethod(receiverType, selector, argumentTypes, invocationSite); if (methodBinding == null) methodBinding = findMethod(receiverType, selector, argumentTypes, invocationSite, false); if (methodBinding != null) { // skip it if we did not find anything if (methodBinding.isValidBinding()) if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotVisible); return methodBinding; } return new ProblemMethodBinding(selector, argumentTypes, ProblemReasons.NotFound); } }
public MethodBinding getImplicitMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { // retrieve an exact visible match (if possible) MethodBinding methodBinding = findExactMethod(receiverType, selector, argumentTypes, invocationSite); if (methodBinding == null) methodBinding = findMethod(receiverType, selector, argumentTypes, invocationSite, false); if (methodBinding != null) { // skip it if we did not find anything if (methodBinding.isValidBinding()) if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotVisible); return methodBinding; } return new ProblemMethodBinding(selector, argumentTypes, ProblemReasons.NotFound); } }
public MethodBinding getImplicitMethod(ReferenceBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { // retrieve an exact visible match (if possible) MethodBinding methodBinding = findExactMethod(receiverType, selector, argumentTypes, invocationSite); if (methodBinding == null) methodBinding = findMethod(receiverType, selector, argumentTypes, invocationSite); if (methodBinding != null) { // skip it if we did not find anything if (methodBinding.isValidBinding()) if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotVisible); return methodBinding; } return new ProblemMethodBinding(selector, argumentTypes, ProblemReasons.NotFound); } }
@Override public MethodBinding findMethodForArray(ArrayBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { ReferenceBinding object = getJavaLangObject(); MethodBinding methodBinding = object.getExactMethod(selector, argumentTypes, null); if (methodBinding != null) { // handle the method clone() specially... cannot be protected or throw exceptions if (argumentTypes == Binding.NO_PARAMETERS && CharOperation.equals(selector, TypeConstants.CLONE)) return new MethodBinding((methodBinding.modifiers & ~ClassFileConstants.AccProtected) | ClassFileConstants.AccPublic, TypeConstants.CLONE, methodBinding.returnType, argumentTypes, null, object); if (canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return methodBinding; } // answers closest approximation, may not check argumentTypes or visibility methodBinding = findMethod(object, selector, argumentTypes, invocationSite, false); if (methodBinding == null) return new ProblemMethodBinding(selector, argumentTypes, ProblemReasons.NotFound); if (methodBinding.isValidBinding()) { MethodBinding compatibleMethod = computeCompatibleMethod(methodBinding, argumentTypes, invocationSite); if (compatibleMethod == null) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotFound); methodBinding = compatibleMethod; if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, methodBinding.parameters, ProblemReasons.NotVisible); } return methodBinding; } /* API
public MethodBinding findMethodForArray(ArrayBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) { ReferenceBinding object = getJavaLangObject(); MethodBinding methodBinding = object.getExactMethod(selector, argumentTypes, null); if (methodBinding != null) { // handle the method clone() specially... cannot be protected or throw exceptions if (argumentTypes == Binding.NO_PARAMETERS && CharOperation.equals(selector, TypeConstants.CLONE)) return new MethodBinding((methodBinding.modifiers & ~ClassFileConstants.AccProtected) | ClassFileConstants.AccPublic, TypeConstants.CLONE, methodBinding.returnType, argumentTypes, null, object); if (canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return methodBinding; } // answers closest approximation, may not check argumentTypes or visibility methodBinding = findMethod(object, selector, argumentTypes, invocationSite); if (methodBinding == null) return new ProblemMethodBinding(selector, argumentTypes, ProblemReasons.NotFound); if (methodBinding.isValidBinding()) { MethodBinding compatibleMethod = computeCompatibleMethod(methodBinding, argumentTypes, invocationSite); if (compatibleMethod == null) return new ProblemMethodBinding(methodBinding, selector, argumentTypes, ProblemReasons.NotFound); methodBinding = compatibleMethod; if (!canBeSeenByForCodeSnippet(methodBinding, receiverType, invocationSite, this)) return new ProblemMethodBinding(methodBinding, selector, methodBinding.parameters, ProblemReasons.NotVisible); } return methodBinding; } /* API