Class LogicalContainerAwareReentrantTypeResolver

    • Field Detail

      • rootedInstances

        protected java.util.Set<org.eclipse.emf.ecore.EObject> rootedInstances
    • Constructor Detail

      • LogicalContainerAwareReentrantTypeResolver

        public LogicalContainerAwareReentrantTypeResolver()
    • Method Detail

      • getRootJvmType

        protected org.eclipse.xtext.common.types.JvmType getRootJvmType()
      • isPartOfExpressionTree

        protected boolean isPartOfExpressionTree​(org.eclipse.emf.ecore.EObject container)
        Returns true if the container can be nested within the expression tree. First and foremost that's true if the container itself is an expression. Other possible types are XCasePart, XCatchClause or XAnnotationElementValuePair. Clients may override.
      • prepare

        protected java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> prepare​(ResolvedTypes resolvedTypes,
                                                                                                                   IFeatureScopeSession featureScopeSession)
        Assign computed type references to the identifiable structural elements in the processed type.
        Returns:
        the stacked resolved types that shall be used in the computation.
      • recordExpressions

        protected void recordExpressions​(org.eclipse.xtext.common.types.JvmIdentifiableElement element)
      • _recordExpressions

        protected void _recordExpressions​(org.eclipse.xtext.common.types.JvmFeature feature)
      • _recordExpressions

        protected void _recordExpressions​(org.eclipse.xtext.common.types.JvmExecutable executable)
      • _recordExpressions

        protected void _recordExpressions​(org.eclipse.xtext.common.types.JvmDeclaredType type)
      • doPrepare

        protected void doPrepare​(ResolvedTypes resolvedTypes,
                                 IFeatureScopeSession featureScopeSession,
                                 org.eclipse.xtext.common.types.JvmIdentifiableElement element,
                                 java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> resolvedTypesByContext)
      • _doPrepare

        protected void _doPrepare​(ResolvedTypes resolvedTypes,
                                  IFeatureScopeSession featureScopeSession,
                                  org.eclipse.xtext.common.types.JvmDeclaredType type,
                                  java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> resolvedTypesByType)
      • prepareMembers

        protected void prepareMembers​(ResolvedTypes resolvedTypes,
                                      IFeatureScopeSession featureScopeSession,
                                      org.eclipse.xtext.common.types.JvmDeclaredType type,
                                      java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> resolvedTypesByType)
      • declareTypeParameters

        protected StackedResolvedTypes declareTypeParameters​(ResolvedTypes resolvedTypes,
                                                             org.eclipse.xtext.common.types.JvmIdentifiableElement declarator,
                                                             java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> resolvedTypesByContext)
      • isStatic

        protected boolean isStatic​(org.eclipse.xtext.common.types.JvmIdentifiableElement declarator)
      • _doPrepare

        protected void _doPrepare​(ResolvedTypes resolvedTypes,
                                  IFeatureScopeSession featureScopeSession,
                                  org.eclipse.xtext.common.types.JvmField field,
                                  java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> resolvedTypesByContext)
      • markComputing

        protected void markComputing​(org.eclipse.xtext.common.types.JvmTypeReference knownType)
      • unmarkComputing

        protected void unmarkComputing​(org.eclipse.xtext.common.types.JvmTypeReference knownType)
      • _doPrepare

        protected void _doPrepare​(ResolvedTypes resolvedTypes,
                                  IFeatureScopeSession featureScopeSession,
                                  org.eclipse.xtext.common.types.JvmConstructor constructor,
                                  java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> resolvedTypesByContext)
      • recordAnnotationExpressions

        protected void recordAnnotationExpressions​(org.eclipse.xtext.common.types.JvmExecutable executable)
      • recordAnnotationExpressions

        protected void recordAnnotationExpressions​(org.eclipse.xtext.common.types.JvmAnnotationTarget annotable)
      • recordAnnotationExpressions

        protected void recordAnnotationExpressions​(java.util.List<org.eclipse.xtext.common.types.JvmAnnotationReference> annotations)
      • _doPrepare

        protected void _doPrepare​(ResolvedTypes resolvedTypes,
                                  IFeatureScopeSession featureScopeSession,
                                  org.eclipse.xtext.common.types.JvmOperation operation,
                                  java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> resolvedTypesByContext)
      • createComputedTypeReference

        protected org.eclipse.xtext.common.types.JvmTypeReference createComputedTypeReference​(java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> resolvedTypesByContext,
                                                                                              ResolvedTypes resolvedTypes,
                                                                                              IFeatureScopeSession featureScopeSession,
                                                                                              org.eclipse.xtext.common.types.JvmMember member,
                                                                                              InferredTypeIndicator indicator,
                                                                                              boolean returnType)
      • getInferredFrom

        protected XExpression getInferredFrom​(org.eclipse.xtext.common.types.JvmTypeReference typeReference)
        Returns the expression that will be used to infer the given type from. If the type is already resolved, the result will be null. If no expression can be determined, null is also returned.
      • computeTypes

        protected void computeTypes​(java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> preparedResolvedTypes,
                                    ResolvedTypes resolvedTypes,
                                    IFeatureScopeSession featureScopeSession,
                                    org.eclipse.emf.ecore.EObject element)
      • _computeTypes

        protected void _computeTypes​(java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> preparedResolvedTypes,
                                     ResolvedTypes resolvedTypes,
                                     IFeatureScopeSession featureScopeSession,
                                     org.eclipse.xtext.common.types.JvmField field)
      • _computeTypes

        protected void _computeTypes​(java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> preparedResolvedTypes,
                                     ResolvedTypes resolvedTypes,
                                     IFeatureScopeSession featureScopeSession,
                                     org.eclipse.xtext.common.types.JvmConstructor constructor)
      • computeLocalTypes

        protected void computeLocalTypes​(java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> preparedResolvedTypes,
                                         ResolvedTypes resolvedTypes,
                                         IFeatureScopeSession featureScopeSession,
                                         org.eclipse.xtext.common.types.JvmFeature feature)
      • addExtensionProviders

        protected void addExtensionProviders​(ITypeComputationState state,
                                             java.util.List<org.eclipse.xtext.common.types.JvmFormalParameter> parameters)
      • _computeTypes

        protected void _computeTypes​(java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> preparedResolvedTypes,
                                     ResolvedTypes resolvedTypes,
                                     IFeatureScopeSession featureScopeSession,
                                     org.eclipse.xtext.common.types.JvmOperation operation)
      • computeAnnotationTypes

        protected void computeAnnotationTypes​(ResolvedTypes resolvedTypes,
                                              IFeatureScopeSession sessions,
                                              org.eclipse.xtext.common.types.JvmExecutable operation)
      • mergeChildTypes

        protected void mergeChildTypes​(ResolvedTypes childResolvedTypes)
      • computeAnnotationTypes

        protected void computeAnnotationTypes​(ResolvedTypes resolvedTypes,
                                              IFeatureScopeSession featureScopeSession,
                                              org.eclipse.xtext.common.types.JvmAnnotationTarget annotable)
      • computeAnnotationTypes

        protected void computeAnnotationTypes​(ResolvedTypes resolvedTypes,
                                              IFeatureScopeSession featureScopeSession,
                                              java.util.List<org.eclipse.xtext.common.types.JvmAnnotationReference> annotations)
      • _computeTypes

        protected void _computeTypes​(java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> preparedResolvedTypes,
                                     ResolvedTypes resolvedTypes,
                                     IFeatureScopeSession featureScopeSession,
                                     org.eclipse.xtext.common.types.JvmDeclaredType type)
      • computeMemberTypes

        protected void computeMemberTypes​(java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> preparedResolvedTypes,
                                          ResolvedTypes resolvedTypes,
                                          IFeatureScopeSession featureScopeSession,
                                          org.eclipse.xtext.common.types.JvmDeclaredType type)
      • getExtendedClass

        public org.eclipse.xtext.common.types.JvmTypeReference getExtendedClass​(org.eclipse.xtext.common.types.JvmDeclaredType type)
      • addExtensionFieldsToMemberSession

        protected IFeatureScopeSession addExtensionFieldsToMemberSession​(ResolvedTypes resolvedTypes,
                                                                         IFeatureScopeSession featureScopeSession,
                                                                         org.eclipse.xtext.common.types.JvmDeclaredType type,
                                                                         org.eclipse.xtext.common.types.JvmIdentifiableElement thisFeature,
                                                                         java.util.Set<java.lang.String> seenNames,
                                                                         java.util.Set<org.eclipse.xtext.common.types.JvmType> seenTypes)
      • createExtensionProvider

        protected XAbstractFeatureCall createExtensionProvider​(org.eclipse.xtext.common.types.JvmIdentifiableElement thisFeature,
                                                               org.eclipse.xtext.common.types.JvmField field)
      • isExtensionProvider

        protected boolean isExtensionProvider​(org.eclipse.xtext.common.types.JvmAnnotationTarget annotatedElement)
      • getAnnotationLookup

        protected org.eclipse.xtext.common.types.util.AnnotationLookup getAnnotationLookup()
      • getReturnTypeOfOverriddenOperation

        protected LightweightTypeReference getReturnTypeOfOverriddenOperation​(org.eclipse.xtext.common.types.JvmOperation operation,
                                                                              ResolvedTypes resolvedTypes,
                                                                              IFeatureScopeSession session)
        Returns null if the given operation declares it's own return type or if it does not override another operation.
      • getInferredElements

        protected java.util.Set<org.eclipse.emf.ecore.EObject> getInferredElements​(org.eclipse.emf.ecore.EObject element)
      • requestCapturedLocalVariables

        protected void requestCapturedLocalVariables​(org.eclipse.xtext.common.types.JvmTypeReference toBeWrapped,
                                                     org.eclipse.xtext.common.types.JvmDeclaredType type,
                                                     ResolvedTypes resolvedTypes,
                                                     java.util.Map<org.eclipse.xtext.common.types.JvmIdentifiableElement,​ResolvedTypes> resolvedTypesByContext,
                                                     org.eclipse.xtext.util.IAcceptor<org.eclipse.xtext.common.types.JvmTypeReference> result)