public ResolvedFeatures getJavaResolvedFeatures(final JvmGenericType type) { return this._overrideHelper.getResolvedFeatures(type); }
public JvmOperation findOverriddenOperation(JvmOperation operation) { if (operation.getVisibility() == JvmVisibility.PRIVATE) { return null; } ITypeReferenceOwner owner = new StandardTypeReferenceOwner(services, operation.eResource().getResourceSet()); LightweightTypeReference declaringType = owner.toLightweightTypeReference(operation.getDeclaringType()); TypeParameterSubstitutor<?> substitutor = createSubstitutor(owner, declaringType); return findOverriddenOperation(operation, declaringType, substitutor, owner, new ContextualVisibilityHelper(visibilityHelper, declaringType)); }
JvmOperation syntheticDispatchMethod = dispatchHelper.getDispatcherOperation(type, signature); if (syntheticDispatchMethod != null) { JvmOperation overriddenOperation = overrideHelper.findOverriddenOperation(syntheticDispatchMethod); Boolean expectStatic = null; if(overriddenOperation != null) {
/** * Returns <code>null</code> if the given operation declares it's own return type or if it does not override * another operation. */ /* @Nullable */ @SuppressWarnings("unused") protected LightweightTypeReference getReturnTypeOfOverriddenOperation(JvmOperation operation, ResolvedTypes resolvedTypes, IFeatureScopeSession session) { if (operation.getVisibility() == JvmVisibility.PRIVATE) return null; if (InferredTypeIndicator.isInferred(operation.getReturnType())) { LightweightTypeReference declaringType = resolvedTypes.getActualType(operation.getDeclaringType()); if (declaringType == null) { throw new IllegalStateException("Cannot determine declaring type of operation: " + operation); } LightweightTypeReference result = overrideHelper.getReturnTypeOfOverriddenOperation(operation, declaringType); return result; } return null; }
JvmFormalParameter parameter = operation.getParameters().get(i); JvmFormalParameter candidateParameter = candidate.getParameters().get(i); matchesSignature = isMatchesSignature(parameter, candidateParameter, substitutor, owner);
/** * Returns the resolved features targeting a specific Java version in order to support new language features. */ public ResolvedFeatures getResolvedFeatures(JvmTypeReference contextType, JavaVersion targetVersion) { ITypeReferenceOwner owner = new StandardTypeReferenceOwner(services, contextType.eResource().getResourceSet()); return getResolvedFeatures(owner.toLightweightTypeReference(contextType), targetVersion); }
TypeParameterSubstitutor<?> substitutor = createSubstitutor(owner, declaringType); JvmOperation overriddenOperation = findOverriddenOperation(operation, declaringType, substitutor, owner, visibilityHelper); if (overriddenOperation != null) { return substitutor.substitute(owner.toLightweightTypeReference(overriddenOperation.getReturnType()));
/** * Returns the resolved features that are defined in the given <code>type</code> and its supertypes. * Considers private methods of super types, too. * @param type the type. Has to be contained in a resource. * @return the resolved features. */ public ResolvedFeatures getResolvedFeatures(JvmDeclaredType type) { ITypeReferenceOwner owner = new StandardTypeReferenceOwner(services, type.eResource().getResourceSet()); LightweightTypeReference contextType = owner.toLightweightTypeReference(type); return getResolvedFeatures(contextType); }
/** * Returns the resolved features targeting a specific Java version in order to support new language features. */ public ResolvedFeatures getResolvedFeatures(JvmDeclaredType type, JavaVersion targetVersion) { ITypeReferenceOwner owner = new StandardTypeReferenceOwner(services, type.eResource().getResourceSet()); LightweightTypeReference contextType = owner.toLightweightTypeReference(type); return getResolvedFeatures(contextType, targetVersion); }
/** * Returns the resolved features that are defined in the given <code>context type</code> and its supertypes. * Considers private methods of super types, too. * @param contextType the context type. Has to be contained in a resource. * @return the resolved features. */ public ResolvedFeatures getResolvedFeatures(JvmTypeReference contextType) { ITypeReferenceOwner owner = new StandardTypeReferenceOwner(services, contextType.eResource().getResourceSet()); return getResolvedFeatures(owner.toLightweightTypeReference(contextType)); }
public List<IResolvedExecutable> getImplementationCandidates(final JvmDeclaredType type, final boolean isAnonymous) { if (((type == null) || (!(type instanceof JvmGenericType)))) { return Collections.<IResolvedExecutable>emptyList(); } JavaVersion sourceVersion = this.generatorConfigProvider.get(type).getJavaSourceVersion(); ResolvedFeatures resolvedFeatures = this.overrideHelper.getResolvedFeatures(type, sourceVersion); List<IResolvedExecutable> result = Lists.<IResolvedExecutable>newArrayList(); LightweightTypeReference _type = resolvedFeatures.getType(); ContextualVisibilityHelper contextualVisibilityHelper = new ContextualVisibilityHelper(this.visibilityHelper, _type); this.addOperationCandidates(resolvedFeatures, contextualVisibilityHelper, result); if (((!isAnonymous) && (!((JvmGenericType) type).isInterface()))) { this.addConstructorCandidates(resolvedFeatures, contextualVisibilityHelper, result); } return result; }
@Check public void checkDuplicateAndOverriddenFunctions(XtendTypeDeclaration xtendType) { final JvmDeclaredType inferredType = associations.getInferredType(xtendType); if (inferredType instanceof JvmGenericType) { JavaVersion targetVersion = getGeneratorConfig(xtendType).getJavaSourceVersion(); ResolvedFeatures resolvedFeatures = overrideHelper.getResolvedFeatures(inferredType, targetVersion); Set<EObject> flaggedOperations = Sets.newHashSet(); doCheckDuplicateExecutables((JvmGenericType) inferredType, resolvedFeatures, flaggedOperations); doCheckOverriddenMethods(xtendType, (JvmGenericType) inferredType, resolvedFeatures, flaggedOperations); doCheckFunctionOverrides(resolvedFeatures, flaggedOperations); } }
erasedSignatures.add(constructor.getResolvedErasureSignature()); ResolvedFeatures superClass = this.overrideHelper.getResolvedFeatures(superType); List<IResolvedConstructor> constructors = superClass.getDeclaredConstructors(); for (final IResolvedConstructor constructor_1 : constructors) {
@Override public Iterable<? extends ResolvedConstructor> getDeclaredResolvedConstructors() { final Function1<IResolvedConstructor, ResolvedConstructor> _function = (IResolvedConstructor it) -> { return this.getCompilationUnit().toResolvedConstructor(it); }; return ListExtensions.<IResolvedConstructor, ResolvedConstructor>map(this.getCompilationUnit().getOverrideHelper().getResolvedFeatures(this.getDelegate()).getDeclaredConstructors(), _function); }
@Override public Iterable<? extends ResolvedMethod> getAllResolvedMethods() { final Function1<IResolvedOperation, ResolvedMethod> _function = (IResolvedOperation it) -> { return this.getCompilationUnit().toResolvedMethod(it); }; return ListExtensions.<IResolvedOperation, ResolvedMethod>map(this.getCompilationUnit().getOverrideHelper().getResolvedFeatures(this.getDelegate()).getAllOperations(), _function); }
@Override public Iterable<? extends ResolvedMethod> getDeclaredResolvedMethods() { final Function1<IResolvedOperation, ResolvedMethod> _function = (IResolvedOperation it) -> { return this.getCompilationUnit().toResolvedMethod(it); }; return ListExtensions.<IResolvedOperation, ResolvedMethod>map(this.getCompilationUnit().getOverrideHelper().getResolvedFeatures(this.getDelegate()).getDeclaredOperations(), _function); }