private boolean isTypeVariableOfCandidate(TypeBinding type, MethodBinding candidate) { // cf. FunctionalExpression.isPertinentToApplicability() if (type instanceof TypeVariableBinding) { Binding declaringElement = ((TypeVariableBinding) type).declaringElement; if (declaringElement == candidate) return true; if (candidate.isConstructor() && declaringElement == candidate.declaringClass) return true; } return false; }
/** * @see IMethodBinding#isConstructor() */ public boolean isConstructor() { return this.binding.isConstructor(); }
private boolean isTypeVariableOfCandidate(TypeBinding type, MethodBinding candidate) { // cf. FunctionalExpression.isPertinentToApplicability() if (type instanceof TypeVariableBinding) { Binding declaringElement = ((TypeVariableBinding) type).declaringElement; if (declaringElement == candidate) return true; if (candidate.isConstructor() && declaringElement == candidate.declaringClass) return true; } return false; }
/** * @see IMethodBinding#isConstructor() */ @Override public boolean isConstructor() { return this.binding.isConstructor(); }
if (exec.isConstructor()) { ref.setSimpleName(CtExecutableReference.CONSTRUCTOR_NAME); if (exec.isConstructor()) { if (exec.isConstructor() && !(exec.returnType instanceof VoidTypeBinding)) { ref.setDeclaringType(getTypeReference(exec.returnType)); } else {
@Override public void registerResult(TypeBinding targetType, MethodBinding method) { if (method != null && method.isConstructor()) { // ignore the factory. if (this.solutionsPerTargetType == null) this.solutionsPerTargetType = new HashMap<>(); this.solutionsPerTargetType.put(targetType, method); } }
@Override public String getElementName() { if (m_name == null) { if (m_binding.isConstructor()) { m_name = m_declaringType.getElementName(); } else { m_name = new String(m_binding.selector); } } return m_name; }
public SyntheticMethodBinding(MethodBinding targetMethod, boolean isSuperAccess, ReferenceBinding declaringClass) { if (targetMethod.isConstructor()) { initializeConstructorAccessor(targetMethod); } else { initializeMethodAccessor(targetMethod, isSuperAccess, declaringClass); } }
public SyntheticMethodBinding(MethodBinding targetMethod, boolean isSuperAccess, ReferenceBinding declaringClass) { if (targetMethod.isConstructor()) { initializeConstructorAccessor(targetMethod); } else { initializeMethodAccessor(targetMethod, isSuperAccess, declaringClass); } }
public SyntheticMethodBinding(MethodBinding targetMethod, boolean isSuperAccess, ReferenceBinding declaringClass) { if (targetMethod.isConstructor()) { initializeConstructorAccessor(targetMethod); } else { initializeMethodAccessor(targetMethod, isSuperAccess, declaringClass); } }
public void safeVarargsOnFixedArityMethod(MethodBinding method) { String [] arguments = new String[] { new String(method.isConstructor() ? method.declaringClass.shortReadableName() : method.selector)}; this.handle( IProblem.SafeVarargsOnFixedArityMethod, arguments, arguments, method.sourceStart(), method.sourceEnd()); } public void safeVarargsOnNonFinalInstanceMethod(MethodBinding method) {
public void safeVarargsOnNonFinalInstanceMethod(MethodBinding method) { String [] arguments = new String[] { new String(method.isConstructor() ? method.declaringClass.shortReadableName() : method.selector)}; this.handle( IProblem.SafeVarargsOnNonFinalInstanceMethod, arguments, arguments, method.sourceStart(), method.sourceEnd()); } public void possibleHeapPollutionFromVararg(AbstractVariableDeclaration vararg) {
public void safeVarargsOnFixedArityMethod(MethodBinding method) { String [] arguments = new String[] { new String(method.isConstructor() ? method.declaringClass.shortReadableName() : method.selector)}; this.handle( IProblem.SafeVarargsOnFixedArityMethod, arguments, arguments, method.sourceStart(), method.sourceEnd()); } public void safeVarargsOnNonFinalInstanceMethod(MethodBinding method) {
public void safeVarargsOnNonFinalInstanceMethod(MethodBinding method) { String [] arguments = new String[] { new String(method.isConstructor() ? method.declaringClass.shortReadableName() : method.selector)}; this.handle( IProblem.SafeVarargsOnNonFinalInstanceMethod, arguments, arguments, method.sourceStart(), method.sourceEnd()); } public void possibleHeapPollutionFromVararg(AbstractVariableDeclaration vararg) {
public void safeVarargsOnFixedArityMethod(MethodBinding method) { String [] arguments = new String[] { new String(method.isConstructor() ? method.declaringClass.shortReadableName() : method.selector)}; this.handle( IProblem.SafeVarargsOnFixedArityMethod, arguments, arguments, method.sourceStart(), method.sourceEnd()); } public void safeVarargsOnNonFinalInstanceMethod(MethodBinding method) {
public void safeVarargsOnNonFinalInstanceMethod(MethodBinding method) { String [] arguments = new String[] { new String(method.isConstructor() ? method.declaringClass.shortReadableName() : method.selector)}; this.handle( IProblem.SafeVarargsOnNonFinalInstanceMethod, arguments, arguments, method.sourceStart(), method.sourceEnd()); } public void possibleHeapPollutionFromVararg(AbstractVariableDeclaration vararg) {
public void safeVarargsOnFixedArityMethod(MethodBinding method) { String [] arguments = new String[] { new String(method.isConstructor() ? method.declaringClass.shortReadableName() : method.selector)}; this.handle( IProblem.SafeVarargsOnFixedArityMethod, arguments, arguments, method.sourceStart(), method.sourceEnd()); } public void safeVarargsOnNonFinalInstanceMethod(MethodBinding method) {
public int literalIndexForMethodHandle(MethodBinding binding) { boolean isInterface = binding.declaringClass.isInterface(); int referenceKind = isInterface ? binding.isStatic() ? MethodHandleRefKindInvokeStatic : binding.isPrivate() ? MethodHandleRefKindInvokeSpecial : MethodHandleRefKindInvokeInterface : binding.isConstructor() ? MethodHandleRefKindNewInvokeSpecial : binding.isStatic() ? MethodHandleRefKindInvokeStatic : MethodHandleRefKindInvokeVirtual; return literalIndexForMethodHandle(referenceKind, binding.declaringClass, binding.selector, binding.signature(), isInterface); }
public int literalIndexForMethodHandle(MethodBinding binding) { boolean isInterface = binding.declaringClass.isInterface(); int referenceKind = isInterface ? binding.isStatic() ? MethodHandleRefKindInvokeStatic : binding.isPrivate() ? MethodHandleRefKindInvokeSpecial : MethodHandleRefKindInvokeInterface : binding.isConstructor() ? MethodHandleRefKindNewInvokeSpecial : binding.isStatic() ? MethodHandleRefKindInvokeStatic : binding.isPrivate() ? MethodHandleRefKindInvokeSpecial : MethodHandleRefKindInvokeVirtual; return literalIndexForMethodHandle(referenceKind, binding.declaringClass, binding.selector, binding.signature(), isInterface); }
public int literalIndexForMethodHandle(MethodBinding binding) { boolean isInterface = binding.declaringClass.isInterface(); int referenceKind = isInterface ? binding.isStatic() ? MethodHandleRefKindInvokeStatic : binding.isPrivate() ? MethodHandleRefKindInvokeSpecial : MethodHandleRefKindInvokeInterface : binding.isConstructor() ? MethodHandleRefKindNewInvokeSpecial : binding.isStatic() ? MethodHandleRefKindInvokeStatic : binding.isPrivate() ? MethodHandleRefKindInvokeSpecial : MethodHandleRefKindInvokeVirtual; return literalIndexForMethodHandle(referenceKind, binding.declaringClass, binding.selector, binding.signature(), isInterface); }