public JvmIdentifiableElement getFeature(final XAbstractFeatureCall call, final EvaluationContext context) { Object _eGet = call.eGet(XbasePackage.Literals.XABSTRACT_FEATURE_CALL__FEATURE, false); JvmIdentifiableElement feature = ((JvmIdentifiableElement) _eGet); if (((feature == null) || feature.eIsProxy())) { feature = context.getResolvedTypes().getLinkedFeature(call); } return feature; }
return Collections.singletonList(result); EObject proxyOrResolved = (EObject) featureCall.eGet(XbasePackage.Literals.XABSTRACT_FEATURE_CALL__FEATURE, false); StackedResolvedTypes demandComputedTypes = resolvedTypes.pushTypes(); final AbstractTypeComputationState forked = withNonVoidExpectation(demandComputedTypes);
protected IFeatureLinkingCandidate getKnownFeature(XAbstractFeatureCall featureCall, AbstractTypeComputationState state, ResolvedTypes resolvedTypes) { IFeatureLinkingCandidate result = resolvedTypes.getFeature(featureCall); if (result != null) { return new AppliedFeatureLinkingCandidate(result); } EObject proxyOrResolved = (EObject) featureCall.eGet(XbasePackage.Literals.XABSTRACT_FEATURE_CALL__FEATURE, false); if (proxyOrResolved == null) { return new NullFeatureLinkingCandidate(featureCall, state); } if (!proxyOrResolved.eIsProxy()) { return state.createResolvedLink(featureCall, (JvmIdentifiableElement) proxyOrResolved); } if (!encoder.isCrossLinkFragment(featureCall.eResource(), EcoreUtil.getURI(proxyOrResolved).fragment())) { JvmIdentifiableElement feature = featureCall.getFeature(); if (!feature.eIsProxy()) { return state.createResolvedLink(featureCall, feature); } } return null; }