protected void initializeDistance(final JvmTypeReference firstType, Multimap<JvmType, JvmTypeReference> all, Multiset<JvmType> cumulatedDistance) { ITypeArgumentContext firstContext = getTypeArgumentContextProvider().getTypeArgumentContext( new TypeArgumentContextProvider.ReceiverRequest(firstType)); MaxDistanceRawTypeAcceptor acceptor = new MaxDistanceRawTypeAcceptor( cumulatedDistance, all, new ArgumentResolver(firstContext)); acceptor.accept(firstType, 0); superTypeCollector.collectSuperTypes(firstType, acceptor); }
public TypeConformanceResult isConformant(JvmTypeReference left, JvmTypeReference right, TypeConformanceComputationArgument flags) { if (left == right && left != null) return TypeConformanceResult.SUCCESS; return leftDispatcher.visit(left, TypeConformanceComputationArgument.Internal.create(right, flags.rawType, flags.asTypeArgument, flags.allowPrimitiveConversion)); }
@Override public TypeConformanceResult doVisitParameterizedTypeReference(JvmParameterizedTypeReference reference, TypeConformanceComputationArgument.Internal<JvmTypeReference> param) { return parameterizedTypeDispatcher.visit(param.reference, copyArgument(reference, param)); }
@Override public TypeConformanceResult doVisitGenericArrayTypeReference(JvmParameterizedTypeReference left, JvmGenericArrayTypeReference right, TypeConformanceComputationArgument.Internal<JvmParameterizedTypeReference> param) { if (conformanceComputer.getTypeReferences().is(left, Object.class)) return TypeConformanceResult.SUBTYPE; if (conformanceComputer.getTypeReferences().is(left, Serializable.class)) return TypeConformanceResult.SUBTYPE; if (conformanceComputer.getTypeReferences().is(left, Cloneable.class)) return TypeConformanceResult.SUBTYPE; return TypeConformanceResult.FAILED; }
public boolean isConformant(JvmTypeReference left, JvmTypeReference right, boolean ignoreGenerics) { if (left == right && left != null) return true; TypeConformanceResult result = isConformant(left, right, new TypeConformanceComputationArgument(ignoreGenerics, false, true)); return result.isConformant(); }
protected TypeArgumentContext getBoundTypeParameters(JvmParameterizedTypeReference reference) { return conformanceComputer.getTypeArgumentContextProvider().getReceiverContext(reference); }
protected boolean isSameConstraints(JvmConstraintOwner overridingConstraintOwner, JvmConstraintOwner overriddenConstraintOwner, ITypeArgumentContext context) { return isSameConstraints(overridingConstraintOwner, overriddenConstraintOwner, context, new DeepChecker(context)); }
protected void internalSetExtension(JvmAnnotationTarget annotationTarget, EObject sourceElement, boolean value) { if (value) { annotationLookup.findOrAddAnnotation(annotationTarget, sourceElement, Extension.class); } else { annotationLookup.removeAnnotation(annotationTarget, Extension.class); } }
@Override public Adapter caseJvmTypeConstraint(JvmTypeConstraint object) { return createJvmTypeConstraintAdapter(); } @Override
@Override public Adapter caseJvmCustomAnnotationValue(JvmCustomAnnotationValue object) { return createJvmCustomAnnotationValueAdapter(); } @Override
@Override public <Result> Result accept(ITypeReferenceVisitor<Result> visitor) { Result result = visitor.doVisitSynonymTypeReference(this); return result; }
public static boolean isDeprecated(JvmAnnotationTarget jvmAnnotationTarget) { if (jvmAnnotationTarget instanceof JvmMember) { return isDeprecatedMember((JvmMember) jvmAnnotationTarget); } return false; }
@Override public <Parameter, Result> Result accept(ITypeReferenceVisitorWithParameter<Parameter,Result> visitor, Parameter parameter) { Result result = visitor.doVisitTypeReference(this, parameter); return result; }
@Override public <Result> Result accept(ITypeReferenceVisitor<Result> visitor) { Result result = visitor.doVisitAnyTypeReference(this); return result; }
@Override public TypeConformanceResult doVisitWildcardTypeReference(JvmWildcardTypeReference reference, TypeConformanceComputationArgument.Internal<JvmTypeReference> param) { return wildcardTypeDispatcher.visit(param.reference, copyArgument(reference, param)); }
@Override public TypeConformanceResult doVisitSynonymTypeReference(JvmSynonymTypeReference reference, TypeConformanceComputationArgument.Internal<JvmTypeReference> param) { return synonymTypeDispatcher.visit(param.reference, copyArgument(reference, param)); }
@Override public TypeConformanceResult doVisitGenericArrayTypeReference(JvmGenericArrayTypeReference reference, TypeConformanceComputationArgument.Internal<JvmTypeReference> param) { return genericArrayTypeDispatcher.visit(param.reference, copyArgument(reference, param)); }
@Override public TypeConformanceResult doVisitAnyTypeReference(JvmAnyTypeReference reference, TypeConformanceComputationArgument.Internal<JvmTypeReference> param) { return anyTypeDispatcher.visit(param.reference, copyArgument(reference, param)); }
@Override public TypeConformanceResult doVisitMultiTypeReference(JvmMultiTypeReference reference, TypeConformanceComputationArgument.Internal<JvmTypeReference> param) { return multiTypeDispatcher.visit(param.reference, copyArgument(reference, param)); }
@Override public TypeConformanceResult doVisitUnknownTypeReference(JvmUnknownTypeReference reference, TypeConformanceComputationArgument.Internal<JvmTypeReference> param) { return unknownTypeDispatcher.visit(param.reference, copyArgument(reference, param)); }