Search in sources :

Example 11 with ContainerType

use of org.eclipse.n4js.ts.types.ContainerType in project n4js by eclipse.

the class ProjectCompareHelper method createEntries.

// may be made public later
private ProjectComparisonEntry createEntries(ProjectComparisonEntry parent, int index, EObject api, EObject[] impls, final boolean includePolyfills) {
    final ProjectComparisonEntry entry = new ProjectComparisonEntry(parent, index, api, impls);
    final EObject[] childrenOfApi = computeChildren(api, false, false, includePolyfills);
    final EObject[][] childrenOfImpls = computeChildren(impls, false, true, includePolyfills);
    // STEP 1: create entries for children of the API
    final Set<EObject> doneImpl = new HashSet<>();
    for (EObject childApi : childrenOfApi) {
        final EObject[] implsForChildApi = computeMatches(childApi, childrenOfImpls, doneImpl);
        // special: for missing members on implementation side, try to find matches among inherited members
        if (childApi instanceof TMember) {
            for (int idxImpl = 0; idxImpl < impls.length; idxImpl++) {
                if (implsForChildApi[idxImpl] == null) {
                    final EObject currImpl = impls[idxImpl];
                    if (currImpl instanceof ContainerType<?>) {
                        implsForChildApi[idxImpl] = computeMatch(childApi, computeChildren(currImpl, true, true, includePolyfills), doneImpl);
                    }
                }
            }
        }
        createEntries(entry, -1, childApi, implsForChildApi, includePolyfills);
    }
    // STEP 2: create missing entries for children of implementations that are not represented in the API
    for (int idxImpl = 0; idxImpl < impls.length; idxImpl++) {
        final EObject[] childrenOfCurrImpl = childrenOfImpls[idxImpl];
        for (int idxChild = 0; idxChild < childrenOfCurrImpl.length; idxChild++) {
            final EObject childImpl = childrenOfCurrImpl[idxChild];
            if (!doneImpl.contains(childImpl)) {
                // collect matches in other implementations
                final EObject[] implsForChildImpl = computeMatches(childImpl, childrenOfImpls, doneImpl);
                // look for neighbor EObject in childrenOfCurrImpl
                final int idxSib = idxChild - 1;
                final EObject siblingImpl = idxSib >= 0 ? childrenOfCurrImpl[idxSib] : null;
                // look up neighbor Entry (i.e. entry with elementImpl == siblingImpl)
                final ProjectComparisonEntry siblingEntry;
                if (siblingImpl != null)
                    siblingEntry = entry.getChildForElementImpl(siblingImpl);
                else
                    siblingEntry = null;
                // add after neighbor OR at beginning if no neighbor found
                final int insertIdx = siblingEntry != null ? entry.getChildIndex(siblingEntry) + 1 : 0;
                // note: no API
                createEntries(entry, insertIdx, null, implsForChildImpl, includePolyfills);
            // element here!
            }
        }
    }
    return entry;
}
Also used : EObject(org.eclipse.emf.ecore.EObject) ContainerType(org.eclipse.n4js.ts.types.ContainerType) TMember(org.eclipse.n4js.ts.types.TMember) HashSet(java.util.HashSet)

Example 12 with ContainerType

use of org.eclipse.n4js.ts.types.ContainerType in project n4js by eclipse.

the class N4JSASTUtils method getOwnOrSuperCtor.

private static TMember getOwnOrSuperCtor(final ContainerType<?> ownerOfField) {
    TClass klass = (TClass) (ownerOfField instanceof TClass ? ownerOfField : null);
    while (null != klass) {
        final TMember ctor = klass.findOwnedMember(CONSTRUCTOR);
        if (null != ctor) {
            return ctor;
        }
        final ParameterizedTypeRef superClassRef = klass.getSuperClassRef();
        if (null == superClassRef) {
            klass = null;
        } else {
            final Type declaredType = superClassRef.getDeclaredType();
            klass = (TClass) (declaredType instanceof TClass ? declaredType : null);
        }
    }
    return null;
}
Also used : ParameterizedTypeRef(org.eclipse.n4js.ts.typeRefs.ParameterizedTypeRef) ContainerType(org.eclipse.n4js.ts.types.ContainerType) Type(org.eclipse.n4js.ts.types.Type) TMember(org.eclipse.n4js.ts.types.TMember) TClass(org.eclipse.n4js.ts.types.TClass)

Example 13 with ContainerType

use of org.eclipse.n4js.ts.types.ContainerType in project n4js by eclipse.

the class N4JSResourceDescription method getCrossRefTypeAcceptor.

private IAcceptor<EObject> getCrossRefTypeAcceptor(final Set<EObject> crossRefTypesAddHere) {
    IAcceptor<EObject> acceptor = new IAcceptor<EObject>() {

        @Override
        public void accept(EObject to) {
            if (to instanceof Type || to instanceof TVariable || to instanceof TEnumLiteral) {
                crossRefTypesAddHere.add(to);
            }
            // Add declared type of a field to cross ref types
            if (to instanceof TFunction) {
                TypeRef returnTypeRef = ((TFunction) to).getReturnTypeRef();
                crossRefTypesAddHere.add(returnTypeRef.getDeclaredType());
            }
            if (to instanceof TField) {
                TypeRef typeRef = ((TField) to).getTypeRef();
                crossRefTypesAddHere.add(typeRef.getDeclaredType());
            }
            // In case of TMember, add the containing type as well
            if (to instanceof TMember) {
                TMember casted = (TMember) to;
                ContainerType<?> declaringType = casted.getContainingType();
                crossRefTypesAddHere.add(declaringType);
            }
        }
    };
    return acceptor;
}
Also used : ContainerType(org.eclipse.n4js.ts.types.ContainerType) Type(org.eclipse.n4js.ts.types.Type) TFunction(org.eclipse.n4js.ts.types.TFunction) TVariable(org.eclipse.n4js.ts.types.TVariable) TField(org.eclipse.n4js.ts.types.TField) TEnumLiteral(org.eclipse.n4js.ts.types.TEnumLiteral) TypeRef(org.eclipse.n4js.ts.typeRefs.TypeRef) EObject(org.eclipse.emf.ecore.EObject) IAcceptor(org.eclipse.xtext.util.IAcceptor) TMember(org.eclipse.n4js.ts.types.TMember)

Example 14 with ContainerType

use of org.eclipse.n4js.ts.types.ContainerType in project n4js by eclipse.

the class StaticWriteAccessFilterScope method isAccepted.

@Override
protected boolean isAccepted(IEObjectDescription description) {
    EObject proxyOrInstance = description.getEObjectOrProxy();
    if (proxyOrInstance instanceof TMember && !proxyOrInstance.eIsProxy()) {
        TMember member = (TMember) proxyOrInstance;
        // this particular message to hide the better one.
        if (member.isStatic() && member.isWriteable() && /* i.e. (member.isField(), not const || member.isSetter()) */
        isWriteAccess()) {
            ContainerType<?> memberType = member.getContainingType();
            memberTypeName = memberType.getName();
            // Access only allowed for Direct access, so AST must be IdentifierRef.
            final boolean isTargetGivenByIdentifier = getTarget() instanceof IdentifierRef;
            if (!isTargetGivenByIdentifier) {
                // Not an IdentifierRef --> disallowed for write access.
                return false;
            }
            IdentifierRef idref = (IdentifierRef) getTarget();
            // this also covers aliased imports:
            if (idref.getId().getName().equals(memberTypeName)) {
                // correct name.
                return true;
            } else {
                // wrong name, disallowed
                // search for alias, for better error reporting.
                Script sc = EcoreUtil2.getContainerOfType(context, Script.class);
                Optional<NamedImportSpecifier> namedImport = sc.getScriptElements().stream().filter(se -> se instanceof ImportDeclaration).map(se -> (ImportDeclaration) se).flatMap(idecl -> {
                    return idecl.getImportSpecifiers().stream().filter(is -> is instanceof NamedImportSpecifier).map(is -> (NamedImportSpecifier) is);
                }).filter(s -> s.getImportedElement() == memberType).findFirst();
                if (namedImport.isPresent()) {
                    // if alias is present assign, otherwise null will be passed through
                    memberTypeAlias = namedImport.get().getAlias();
                }
                return false;
            }
        }
    }
    return true;
}
Also used : IndexedAccessExpression(org.eclipse.n4js.n4JS.IndexedAccessExpression) FilterWithErrorMarkerScope(org.eclipse.n4js.xtext.scoping.FilterWithErrorMarkerScope) IScope(org.eclipse.xtext.scoping.IScope) TMember(org.eclipse.n4js.ts.types.TMember) EObject(org.eclipse.emf.ecore.EObject) Script(org.eclipse.n4js.n4JS.Script) IEObjectDescriptionWithError(org.eclipse.n4js.xtext.scoping.IEObjectDescriptionWithError) NamedImportSpecifier(org.eclipse.n4js.n4JS.NamedImportSpecifier) ContainerType(org.eclipse.n4js.ts.types.ContainerType) ExpressionExtensions(org.eclipse.n4js.n4JS.extensions.ExpressionExtensions) ImportDeclaration(org.eclipse.n4js.n4JS.ImportDeclaration) ParameterizedPropertyAccessExpression(org.eclipse.n4js.n4JS.ParameterizedPropertyAccessExpression) EcoreUtil2(org.eclipse.xtext.EcoreUtil2) IdentifierRef(org.eclipse.n4js.n4JS.IdentifierRef) Optional(java.util.Optional) Expression(org.eclipse.n4js.n4JS.Expression) IEObjectDescription(org.eclipse.xtext.resource.IEObjectDescription) Script(org.eclipse.n4js.n4JS.Script) NamedImportSpecifier(org.eclipse.n4js.n4JS.NamedImportSpecifier) EObject(org.eclipse.emf.ecore.EObject) ImportDeclaration(org.eclipse.n4js.n4JS.ImportDeclaration) TMember(org.eclipse.n4js.ts.types.TMember) IdentifierRef(org.eclipse.n4js.n4JS.IdentifierRef)

Example 15 with ContainerType

use of org.eclipse.n4js.ts.types.ContainerType in project n4js by eclipse.

the class N4JSMemberRedefinitionValidator method addIssueToMemberOrInterfaceReference.

private void addIssueToMemberOrInterfaceReference(RedefinitionType redefinitionType, TMember overriding, TMember implemented, String message, String issueCode, String... issueData) {
    if (redefinitionType == RedefinitionType.overridden && overriding.getContainingType() != getCurrentClassifier()) {
        throw new IllegalStateException("must not happen as member is not consumed");
    }
    TClassifier currentClassifier = getCurrentClassifier();
    if (overriding.getContainingType() == currentClassifier) {
        addIssue(message, overriding.getAstElement(), N4JSPackage.Literals.PROPERTY_NAME_OWNER__DECLARED_NAME, issueCode, issueData);
    } else {
        MemberCollector memberCollector = containerTypesHelper.fromContext(getCurrentClassifierDefinition());
        ContainerType<?> bequestingType = memberCollector.directSuperTypeBequestingMember(currentClassifier, implemented);
        Optional<ParameterizedTypeRef> optRef = StreamSupport.stream(getCurrentClassifierDefinition().getImplementedOrExtendedInterfaceRefs().spliterator(), false).filter(ref -> ref.getDeclaredType() == bequestingType).findAny();
        ParameterizedTypeRef ref = optRef.get();
        EStructuralFeature feature = ref.eContainingFeature();
        List<?> list = (List<?>) getCurrentClassifierDefinition().eGet(feature);
        int index = list.indexOf(ref);
        addIssue(message, getCurrentClassifierDefinition(), feature, index, issueCode, issueData);
    }
}
Also used : TClassifier(org.eclipse.n4js.ts.types.TClassifier) ParameterizedTypeRef(org.eclipse.n4js.ts.typeRefs.ParameterizedTypeRef) IssueCodes.getMessageForCLF_REDEFINED_NON_ACCESSIBLE(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_REDEFINED_NON_ACCESSIBLE) CLF_CONSUMED_INHERITED_MEMBER_UNSOLVABLE_CONFLICT(org.eclipse.n4js.validation.IssueCodes.CLF_CONSUMED_INHERITED_MEMBER_UNSOLVABLE_CONFLICT) TClass(org.eclipse.n4js.ts.types.TClass) ParameterizedTypeRef(org.eclipse.n4js.ts.typeRefs.ParameterizedTypeRef) IssueCodes.getMessageForCLF_OVERRIDE_FINAL(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_OVERRIDE_FINAL) TSetter(org.eclipse.n4js.ts.types.TSetter) IssueCodes.getMessageForCLF_IMPLEMENT_MEMBERTYPE_INCOMPATIBLE(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_IMPLEMENT_MEMBERTYPE_INCOMPATIBLE) IssueCodes.getMessageForCLF_MISSING_IMPLEMENTATION(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_MISSING_IMPLEMENTATION) IssueCodes.getMessageForCLF_OVERRIDE_VISIBILITY(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_OVERRIDE_VISIBILITY) Type(org.eclipse.n4js.ts.types.Type) IssueCodes.getMessageForCLF_OVERRIDE_CONST(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_OVERRIDE_CONST) Map(java.util.Map) CLF_PSEUDO_REDEFINED_SPEC_CTOR_INCOMPATIBLE(org.eclipse.n4js.validation.IssueCodes.CLF_PSEUDO_REDEFINED_SPEC_CTOR_INCOMPATIBLE) IssueUserDataKeys(org.eclipse.n4js.validation.IssueUserDataKeys) Check(org.eclipse.xtext.validation.Check) CLF_CONSUMED_FIELD_ACCESSOR_PAIR_INCOMPLETE(org.eclipse.n4js.validation.IssueCodes.CLF_CONSUMED_FIELD_ACCESSOR_PAIR_INCOMPLETE) CLF_OVERRIDE_ANNOTATION(org.eclipse.n4js.validation.IssueCodes.CLF_OVERRIDE_ANNOTATION) CLF_OVERRIDE_MEMBERTYPE_INCOMPATIBLE(org.eclipse.n4js.validation.IssueCodes.CLF_OVERRIDE_MEMBERTYPE_INCOMPATIBLE) IssueCodes.getMessageForCLF_OVERRIDE_WITH_FINAL_OR_CONST_FIELD(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_OVERRIDE_WITH_FINAL_OR_CONST_FIELD) CLF_REDEFINED_TYPE_NOT_SAME_TYPE(org.eclipse.n4js.validation.IssueCodes.CLF_REDEFINED_TYPE_NOT_SAME_TYPE) IssueCodes.getMessageForCLF_OVERRIDE_FIELD_REQUIRES_ACCESSOR_PAIR(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_OVERRIDE_FIELD_REQUIRES_ACCESSOR_PAIR) CLF_NON_ACCESSIBLE_ABSTRACT_MEMBERS(org.eclipse.n4js.validation.IssueCodes.CLF_NON_ACCESSIBLE_ABSTRACT_MEMBERS) Set(java.util.Set) CLF_REDEFINED_METHOD_TYPE_CONFLICT(org.eclipse.n4js.validation.IssueCodes.CLF_REDEFINED_METHOD_TYPE_CONFLICT) CLF_IMPLEMENT_MEMBERTYPE_INCOMPATIBLE(org.eclipse.n4js.validation.IssueCodes.CLF_IMPLEMENT_MEMBERTYPE_INCOMPATIBLE) N4ClassifierDefinition(org.eclipse.n4js.n4JS.N4ClassifierDefinition) MethodDeclaration(org.eclipse.n4js.n4JS.MethodDeclaration) CLF_OVERRIDE_FINAL(org.eclipse.n4js.validation.IssueCodes.CLF_OVERRIDE_FINAL) Iterables(com.google.common.collect.Iterables) MemberType(org.eclipse.n4js.ts.types.MemberType) MemberAccessModifier(org.eclipse.n4js.ts.types.MemberAccessModifier) IssueCodes.getMessageForCLF_OVERRIDEN_CONCRETE_WITH_ABSTRACT(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_OVERRIDEN_CONCRETE_WITH_ABSTRACT) TypeUtils(org.eclipse.n4js.ts.utils.TypeUtils) ArrayList(java.util.ArrayList) TModule(org.eclipse.n4js.ts.types.TModule) TypeSystemHelper(org.eclipse.n4js.typesystem.TypeSystemHelper) RuleEnvironmentExtensions(org.eclipse.n4js.typesystem.RuleEnvironmentExtensions) TInterface(org.eclipse.n4js.ts.types.TInterface) MemberMatrix(org.eclipse.n4js.validation.validators.utils.MemberMatrix) IssueCodes.getMessageForCLF_OVERRIDE_NON_EXISTENT(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_OVERRIDE_NON_EXISTENT) MemberVisibilityChecker(org.eclipse.n4js.scoping.accessModifiers.MemberVisibilityChecker) AbstractN4JSDeclarativeValidator(org.eclipse.n4js.validation.AbstractN4JSDeclarativeValidator) StreamSupport(java.util.stream.StreamSupport) CLF_OVERRIDE_NON_EXISTENT(org.eclipse.n4js.validation.IssueCodes.CLF_OVERRIDE_NON_EXISTENT) IssueCodes.getMessageForCLF_OVERRIDE_MEMBERTYPE_INCOMPATIBLE(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_OVERRIDE_MEMBERTYPE_INCOMPATIBLE) N4JSLanguageUtils(org.eclipse.n4js.utils.N4JSLanguageUtils) EcoreUtil(org.eclipse.emf.ecore.util.EcoreUtil) NameStaticPair(org.eclipse.n4js.ts.types.util.NameStaticPair) FunctionTypeExprOrRef(org.eclipse.n4js.ts.typeRefs.FunctionTypeExprOrRef) IssueCodes.getMessageForCLF_OVERRIDE_NON_EXISTENT_INTERFACE(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_OVERRIDE_NON_EXISTENT_INTERFACE) N4JSTypeSystem(org.eclipse.n4js.typesystem.N4JSTypeSystem) FunctionTypeExpression(org.eclipse.n4js.ts.typeRefs.FunctionTypeExpression) IssueCodes.getMessageForCLF_UNMATCHED_ACCESSOR_OVERRIDE(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_UNMATCHED_ACCESSOR_OVERRIDE) IssueCodes.getMessageForCLF_NON_ACCESSIBLE_ABSTRACT_MEMBERS(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_NON_ACCESSIBLE_ABSTRACT_MEMBERS) Arrays(org.eclipse.xtext.util.Arrays) RuleEnvironment(org.eclipse.xsemantics.runtime.RuleEnvironment) SourceAwareIterator(org.eclipse.n4js.validation.validators.utils.MemberMatrix.SourceAwareIterator) Inject(com.google.inject.Inject) EStructuralFeature(org.eclipse.emf.ecore.EStructuralFeature) ContainerType(org.eclipse.n4js.ts.types.ContainerType) IssueCodes.getMessageForCLF_REDEFINED_MEMBER_TYPE_INVALID(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_REDEFINED_MEMBER_TYPE_INVALID) IssueCodes.getMessageForCLF_OVERRIDE_ANNOTATION(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_OVERRIDE_ANNOTATION) CLF_OVERRIDE_FIELD_REQUIRES_ACCESSOR_PAIR(org.eclipse.n4js.validation.IssueCodes.CLF_OVERRIDE_FIELD_REQUIRES_ACCESSOR_PAIR) CLF_MISSING_IMPLEMENTATION(org.eclipse.n4js.validation.IssueCodes.CLF_MISSING_IMPLEMENTATION) CLF_OVERRIDE_VISIBILITY(org.eclipse.n4js.validation.IssueCodes.CLF_OVERRIDE_VISIBILITY) MemberList(org.eclipse.n4js.ts.types.util.MemberList) N4InterfaceDeclaration(org.eclipse.n4js.n4JS.N4InterfaceDeclaration) TypeRef(org.eclipse.n4js.ts.typeRefs.TypeRef) N4ClassDefinition(org.eclipse.n4js.n4JS.N4ClassDefinition) IssueCodes.getMessageForCLF_CONSUMED_FIELD_ACCESSOR_PAIR_INCOMPLETE(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_CONSUMED_FIELD_ACCESSOR_PAIR_INCOMPLETE) TField(org.eclipse.n4js.ts.types.TField) Collection(java.util.Collection) IssueCodes.getMessageForCLF_MISSING_IMPLEMENTATION_EXT(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_MISSING_IMPLEMENTATION_EXT) JavaScriptVariantHelper(org.eclipse.n4js.validation.JavaScriptVariantHelper) IssueCodes.getMessageForCLF_PSEUDO_REDEFINED_SPEC_CTOR_INCOMPATIBLE(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_PSEUDO_REDEFINED_SPEC_CTOR_INCOMPATIBLE) EObject(org.eclipse.emf.ecore.EObject) TMethod(org.eclipse.n4js.ts.types.TMethod) Collectors(java.util.stream.Collectors) List(java.util.List) TClassifier(org.eclipse.n4js.ts.types.TClassifier) IssueCodes.getMessageForCLF_UNMATCHED_ACCESSOR_OVERRIDE_JS(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_UNMATCHED_ACCESSOR_OVERRIDE_JS) Entry(java.util.Map.Entry) Resource(org.eclipse.emf.ecore.resource.Resource) CLF_OVERRIDE_CONST(org.eclipse.n4js.validation.IssueCodes.CLF_OVERRIDE_CONST) Optional(java.util.Optional) MemberRedefinitionUtils(org.eclipse.n4js.validation.validators.utils.MemberRedefinitionUtils) IssueCodes.getMessageForCLF_REDEFINED_TYPE_NOT_SAME_TYPE(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_REDEFINED_TYPE_NOT_SAME_TYPE) HashMap(java.util.HashMap) N4JSPackage(org.eclipse.n4js.n4JS.N4JSPackage) CLF_OVERRIDE_NON_EXISTENT_INTERFACE(org.eclipse.n4js.validation.IssueCodes.CLF_OVERRIDE_NON_EXISTENT_INTERFACE) CLF_UNMATCHED_ACCESSOR_OVERRIDE(org.eclipse.n4js.validation.IssueCodes.CLF_UNMATCHED_ACCESSOR_OVERRIDE) FieldAccessor(org.eclipse.n4js.ts.types.FieldAccessor) Iterators(com.google.common.collect.Iterators) HashSet(java.util.HashSet) IssueCodes.getMessageForCLF_CONSUMED_MEMBER_SOLVABLE_CONFLICT(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_CONSUMED_MEMBER_SOLVABLE_CONFLICT) ContainerTypesHelper(org.eclipse.n4js.utils.ContainerTypesHelper) EcoreUtil2(org.eclipse.xtext.EcoreUtil2) IssueCodes.getMessageForCLF_REDEFINED_METHOD_TYPE_CONFLICT(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_REDEFINED_METHOD_TYPE_CONFLICT) CLF_MISSING_IMPLEMENTATION_EXT(org.eclipse.n4js.validation.IssueCodes.CLF_MISSING_IMPLEMENTATION_EXT) MemberCube(org.eclipse.n4js.validation.validators.utils.MemberCube) MemberCollector(org.eclipse.n4js.utils.ContainerTypesHelper.MemberCollector) IssueCodes.getMessageForCLF_CONSUMED_MEMBER_UNSOLVABLE_CONFLICT(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_CONSUMED_MEMBER_UNSOLVABLE_CONFLICT) CLF_OVERRIDEN_CONCRETE_WITH_ABSTRACT(org.eclipse.n4js.validation.IssueCodes.CLF_OVERRIDEN_CONCRETE_WITH_ABSTRACT) Result(org.eclipse.xsemantics.runtime.Result) TMember(org.eclipse.n4js.ts.types.TMember) CLF_CONSUMED_MEMBER_UNSOLVABLE_CONFLICT(org.eclipse.n4js.validation.IssueCodes.CLF_CONSUMED_MEMBER_UNSOLVABLE_CONFLICT) IssueCodes.getMessageForCLF_CONSUMED_INHERITED_MEMBER_UNSOLVABLE_CONFLICT(org.eclipse.n4js.validation.IssueCodes.getMessageForCLF_CONSUMED_INHERITED_MEMBER_UNSOLVABLE_CONFLICT) CLF_REDEFINED_MEMBER_TYPE_INVALID(org.eclipse.n4js.validation.IssueCodes.CLF_REDEFINED_MEMBER_TYPE_INVALID) CLF_OVERRIDE_WITH_FINAL_OR_CONST_FIELD(org.eclipse.n4js.validation.IssueCodes.CLF_OVERRIDE_WITH_FINAL_OR_CONST_FIELD) AccessModifiers(org.eclipse.n4js.ts.types.util.AccessModifiers) CLF_CONSUMED_MEMBER_SOLVABLE_CONFLICT(org.eclipse.n4js.validation.IssueCodes.CLF_CONSUMED_MEMBER_SOLVABLE_CONFLICT) CLF_REDEFINED_NON_ACCESSIBLE(org.eclipse.n4js.validation.IssueCodes.CLF_REDEFINED_NON_ACCESSIBLE) EValidatorRegistrar(org.eclipse.xtext.validation.EValidatorRegistrar) CLF_UNMATCHED_ACCESSOR_OVERRIDE_JS(org.eclipse.n4js.validation.IssueCodes.CLF_UNMATCHED_ACCESSOR_OVERRIDE_JS) EStructuralFeature(org.eclipse.emf.ecore.EStructuralFeature) ArrayList(java.util.ArrayList) MemberList(org.eclipse.n4js.ts.types.util.MemberList) List(java.util.List) MemberCollector(org.eclipse.n4js.utils.ContainerTypesHelper.MemberCollector)

Aggregations

ContainerType (org.eclipse.n4js.ts.types.ContainerType)16 EObject (org.eclipse.emf.ecore.EObject)10 TMember (org.eclipse.n4js.ts.types.TMember)9 Type (org.eclipse.n4js.ts.types.Type)9 ParameterizedTypeRef (org.eclipse.n4js.ts.typeRefs.ParameterizedTypeRef)6 TypeRef (org.eclipse.n4js.ts.typeRefs.TypeRef)6 TMethod (org.eclipse.n4js.ts.types.TMethod)4 Result (org.eclipse.xsemantics.runtime.Result)4 RuleEnvironment (org.eclipse.xsemantics.runtime.RuleEnvironment)4 Optional (java.util.Optional)3 InternalEObject (org.eclipse.emf.ecore.InternalEObject)3 TClass (org.eclipse.n4js.ts.types.TClass)3 TypeVariable (org.eclipse.n4js.ts.types.TypeVariable)3 ArrayList (java.util.ArrayList)2 HashSet (java.util.HashSet)2 EcoreUtil (org.eclipse.emf.ecore.util.EcoreUtil)2 Expression (org.eclipse.n4js.n4JS.Expression)2 IndexedAccessExpression (org.eclipse.n4js.n4JS.IndexedAccessExpression)2 ParameterizedPropertyAccessExpression (org.eclipse.n4js.n4JS.ParameterizedPropertyAccessExpression)2 BaseTypeRef (org.eclipse.n4js.ts.typeRefs.BaseTypeRef)2