diff --git a/pkg/analysis_server/tool/code_completion/code_metrics.dart b/pkg/analysis_server/tool/code_completion/code_metrics.dart index 565a9fd2634..6a37dfd85c9 100644 --- a/pkg/analysis_server/tool/code_completion/code_metrics.dart +++ b/pkg/analysis_server/tool/code_completion/code_metrics.dart @@ -775,7 +775,7 @@ class CodeShapeDataCollector extends RecursiveAstVisitor { @override void visitImplementsClause(ImplementsClause node) { _visitChildren(node, { - 'interfaces': node.interfaces, + 'interfaces': node.interfaces2, }); super.visitImplementsClause(node); } @@ -976,7 +976,7 @@ class CodeShapeDataCollector extends RecursiveAstVisitor { @override void visitOnClause(OnClause node) { _visitChildren(node, { - 'superclassConstraints': node.superclassConstraints, + 'superclassConstraints': node.superclassConstraints2, }); super.visitOnClause(node); } @@ -1286,7 +1286,7 @@ class CodeShapeDataCollector extends RecursiveAstVisitor { @override void visitWithClause(WithClause node) { _visitChildren(node, { - 'mixinTypes': node.mixinTypes, + 'mixinTypes': node.mixinTypes2, }); super.visitWithClause(node); } diff --git a/pkg/analysis_server/tool/code_completion/relevance_metrics.dart b/pkg/analysis_server/tool/code_completion/relevance_metrics.dart index aa88b809eac..dbf9cec75d2 100644 --- a/pkg/analysis_server/tool/code_completion/relevance_metrics.dart +++ b/pkg/analysis_server/tool/code_completion/relevance_metrics.dart @@ -845,7 +845,7 @@ class RelevanceDataCollector extends RecursiveAstVisitor { @override void visitImplementsClause(ImplementsClause node) { // At the start of each type name. - for (var namedType in node.interfaces) { + for (var namedType in node.interfaces2) { _recordDataForNode('ImplementsClause (type)', namedType); } super.visitImplementsClause(node); @@ -1062,7 +1062,7 @@ class RelevanceDataCollector extends RecursiveAstVisitor { @override void visitOnClause(OnClause node) { - for (var constraint in node.superclassConstraints) { + for (var constraint in node.superclassConstraints2) { _recordDataForNode('OnClause (type)', constraint); } super.visitOnClause(node); @@ -1351,7 +1351,7 @@ class RelevanceDataCollector extends RecursiveAstVisitor { @override void visitWithClause(WithClause node) { - for (var namedType in node.mixinTypes) { + for (var namedType in node.mixinTypes2) { _recordDataForNode('WithClause (type)', namedType); } super.visitWithClause(node); diff --git a/pkg/analysis_server/tool/code_completion/relevance_table_generator.dart b/pkg/analysis_server/tool/code_completion/relevance_table_generator.dart index 9e8f22434a8..9df1db8096a 100644 --- a/pkg/analysis_server/tool/code_completion/relevance_table_generator.dart +++ b/pkg/analysis_server/tool/code_completion/relevance_table_generator.dart @@ -819,7 +819,7 @@ class RelevanceDataCollector extends RecursiveAstVisitor { @override void visitImplementsClause(ImplementsClause node) { // At the start of each type name. - for (var namedType in node.interfaces) { + for (var namedType in node.interfaces2) { _recordDataForNode('ImplementsClause_interface', namedType); } super.visitImplementsClause(node); @@ -992,7 +992,7 @@ class RelevanceDataCollector extends RecursiveAstVisitor { @override void visitOnClause(OnClause node) { - for (var constraint in node.superclassConstraints) { + for (var constraint in node.superclassConstraints2) { _recordDataForNode('OnClause_superclassConstraint', constraint); } super.visitOnClause(node); @@ -1251,7 +1251,7 @@ class RelevanceDataCollector extends RecursiveAstVisitor { @override void visitWithClause(WithClause node) { - for (var namedType in node.mixinTypes) { + for (var namedType in node.mixinTypes2) { _recordDataForNode('WithClause_mixinType', namedType); } super.visitWithClause(node); diff --git a/pkg/analyzer/lib/dart/ast/ast.dart b/pkg/analyzer/lib/dart/ast/ast.dart index bfbb493b651..27e1aebb1cd 100644 --- a/pkg/analyzer/lib/dart/ast/ast.dart +++ b/pkg/analyzer/lib/dart/ast/ast.dart @@ -2577,7 +2577,11 @@ abstract class ImplementsClause implements AstNode { Token get implementsKeyword; /// Return the list of the interfaces that are being implemented. + @Deprecated('Use interfaces2 instead') NodeList get interfaces; + + /// Return the list of the interfaces that are being implemented. + NodeList get interfaces2; } /// An import directive. @@ -3402,7 +3406,11 @@ abstract class OnClause implements AstNode { Token get onKeyword; /// Return the list of the classes are superclass constraints for the mixin. + @Deprecated('Use superclassConstraints2 instead') NodeList get superclassConstraints; + + /// Return the list of the classes are superclass constraints for the mixin. + NodeList get superclassConstraints2; } /// A parenthesized expression. @@ -4450,8 +4458,12 @@ abstract class WhileStatement implements Statement { /// Clients may not extend, implement or mix-in this class. abstract class WithClause implements AstNode { /// Return the names of the mixins that were specified. + @Deprecated('Use mixinTypes2 instead') NodeList get mixinTypes; + /// Return the names of the mixins that were specified. + NodeList get mixinTypes2; + /// Return the token representing the 'with' keyword. Token get withKeyword; } diff --git a/pkg/analyzer/lib/src/dart/analysis/dependency/reference_collector.dart b/pkg/analyzer/lib/src/dart/analysis/dependency/reference_collector.dart index 88b61ee82cf..c5243d5c15c 100644 --- a/pkg/analyzer/lib/src/dart/analysis/dependency/reference_collector.dart +++ b/pkg/analyzer/lib/src/dart/analysis/dependency/reference_collector.dart @@ -88,9 +88,9 @@ class ReferenceCollector { // Parts of classes. _visitTypeAnnotation(extendsClause?.superclass); _visitTypeAnnotation(superClass); - _visitTypeAnnotations(withClause?.mixinTypes); - _visitTypeAnnotations(onClause?.superclassConstraints); - _visitTypeAnnotations(implementsClause?.interfaces); + _visitTypeAnnotations(withClause?.mixinTypes2); + _visitTypeAnnotations(onClause?.superclassConstraints2); + _visitTypeAnnotations(implementsClause?.interfaces2); // Parts of executables. _visitFormalParameterList(formalParameters); diff --git a/pkg/analyzer/lib/src/dart/analysis/index.dart b/pkg/analyzer/lib/src/dart/analysis/index.dart index 90b8d68dc95..7ae5e7211cd 100644 --- a/pkg/analyzer/lib/src/dart/analysis/index.dart +++ b/pkg/analyzer/lib/src/dart/analysis/index.dart @@ -660,7 +660,7 @@ class _IndexContributor extends GeneralizingAstVisitor { @override void visitImplementsClause(ImplementsClause node) { - for (NamedType namedType in node.interfaces) { + for (NamedType namedType in node.interfaces2) { recordSuperType(namedType, IndexRelationKind.IS_IMPLEMENTED_BY); } } @@ -713,7 +713,7 @@ class _IndexContributor extends GeneralizingAstVisitor { @override void visitOnClause(OnClause node) { - for (NamedType namedType in node.superclassConstraints) { + for (NamedType namedType in node.superclassConstraints2) { recordSuperType(namedType, IndexRelationKind.IS_IMPLEMENTED_BY); } } @@ -830,7 +830,7 @@ class _IndexContributor extends GeneralizingAstVisitor { @override void visitWithClause(WithClause node) { - for (NamedType namedType in node.mixinTypes) { + for (NamedType namedType in node.mixinTypes2) { recordSuperType(namedType, IndexRelationKind.IS_MIXED_IN_BY); } } @@ -862,9 +862,9 @@ class _IndexContributor extends GeneralizingAstVisitor { } addSupertype(superclass); - withClause?.mixinTypes.forEach(addSupertype); - onClause?.superclassConstraints.forEach(addSupertype); - implementsClause?.interfaces.forEach(addSupertype); + withClause?.mixinTypes2.forEach(addSupertype); + onClause?.superclassConstraints2.forEach(addSupertype); + implementsClause?.interfaces2.forEach(addSupertype); void addMemberName(SimpleIdentifier identifier) { String name = identifier.name; diff --git a/pkg/analyzer/lib/src/dart/analysis/referenced_names.dart b/pkg/analyzer/lib/src/dart/analysis/referenced_names.dart index 073d6f677b4..028dad746fa 100644 --- a/pkg/analyzer/lib/src/dart/analysis/referenced_names.dart +++ b/pkg/analyzer/lib/src/dart/analysis/referenced_names.dart @@ -35,15 +35,15 @@ Set computeSubtypedNames(CompilationUnit unit) { for (CompilationUnitMember declaration in unit.declarations) { if (declaration is ClassDeclaration) { _addSubtypedName(declaration.extendsClause?.superclass); - _addSubtypedNames(declaration.withClause?.mixinTypes); - _addSubtypedNames(declaration.implementsClause?.interfaces); + _addSubtypedNames(declaration.withClause?.mixinTypes2); + _addSubtypedNames(declaration.implementsClause?.interfaces2); } else if (declaration is ClassTypeAlias) { _addSubtypedName(declaration.superclass); - _addSubtypedNames(declaration.withClause.mixinTypes); - _addSubtypedNames(declaration.implementsClause?.interfaces); + _addSubtypedNames(declaration.withClause.mixinTypes2); + _addSubtypedNames(declaration.implementsClause?.interfaces2); } else if (declaration is MixinDeclaration) { - _addSubtypedNames(declaration.onClause?.superclassConstraints); - _addSubtypedNames(declaration.implementsClause?.interfaces); + _addSubtypedNames(declaration.onClause?.superclassConstraints2); + _addSubtypedNames(declaration.implementsClause?.interfaces2); } } diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart index bdcb7635e6e..f7c9969bc26 100644 --- a/pkg/analyzer/lib/src/dart/ast/ast.dart +++ b/pkg/analyzer/lib/src/dart/ast/ast.dart @@ -5756,11 +5756,11 @@ class ImplementsClauseImpl extends AstNodeImpl implements ImplementsClause { Token implementsKeyword; /// The interfaces that are being implemented. - final NodeListImpl _interfaces = NodeListImpl._(); + final NodeListImpl _interfaces = NodeListImpl._(); /// Initialize a newly created implements clause. ImplementsClauseImpl(this.implementsKeyword, List interfaces) { - _interfaces._initialize2(this, interfaces); + _interfaces._initialize(this, interfaces); } @override @@ -5770,13 +5770,17 @@ class ImplementsClauseImpl extends AstNodeImpl implements ImplementsClause { // TODO(paulberry): add commas. Iterable get childEntities => ChildEntities() ..add(implementsKeyword) - ..addAll(interfaces); + ..addAll(interfaces2); @override Token get endToken => _interfaces.endToken!; + @Deprecated('Use interfaces2 instead') @override - NodeListImpl get interfaces => _interfaces; + NodeList get interfaces => _DelegatingTypeNameList(_interfaces); + + @override + NodeListImpl get interfaces2 => _interfaces; @override E? accept(AstVisitor visitor) => visitor.visitImplementsClause(this); @@ -7635,20 +7639,6 @@ class NodeListImpl with ListMixin implements NodeList { } } } - - /// Set the [owner] of this container, and populate it with [elements]. - /// TODO(scheglov) Remove this method, it exists only to implicitly cast. - void _initialize2(AstNodeImpl owner, List? elements) { - _owner = owner; - if (elements != null) { - var length = elements.length; - for (var i = 0; i < length; i++) { - var node = elements[i] as E; - _elements.add(node); - owner._becomeParentOf(node as AstNodeImpl); - } - } - } } /// A formal parameter that is required (is not optional). @@ -7836,11 +7826,11 @@ class OnClauseImpl extends AstNodeImpl implements OnClause { Token onKeyword; /// The classes are super-class constraints for the mixin. - final NodeListImpl _superclassConstraints = NodeListImpl._(); + final NodeListImpl _superclassConstraints = NodeListImpl._(); /// Initialize a newly created on clause. OnClauseImpl(this.onKeyword, List superclassConstraints) { - _superclassConstraints._initialize2(this, superclassConstraints); + _superclassConstraints._initialize(this, superclassConstraints); } @override @@ -7856,7 +7846,11 @@ class OnClauseImpl extends AstNodeImpl implements OnClause { Token get endToken => _superclassConstraints.endToken!; @override - NodeListImpl get superclassConstraints => _superclassConstraints; + NodeList get superclassConstraints => + _DelegatingTypeNameList(_superclassConstraints); + + @override + NodeListImpl get superclassConstraints2 => _superclassConstraints; @override E? accept(AstVisitor visitor) => visitor.visitOnClause(this); @@ -10877,11 +10871,11 @@ class WithClauseImpl extends AstNodeImpl implements WithClause { Token withKeyword; /// The names of the mixins that were specified. - final NodeListImpl _mixinTypes = NodeListImpl._(); + final NodeListImpl _mixinTypes = NodeListImpl._(); /// Initialize a newly created with clause. WithClauseImpl(this.withKeyword, List mixinTypes) { - _mixinTypes._initialize2(this, mixinTypes); + _mixinTypes._initialize(this, mixinTypes); } @override @@ -10896,8 +10890,12 @@ class WithClauseImpl extends AstNodeImpl implements WithClause { @override Token get endToken => _mixinTypes.endToken!; + @Deprecated('Use mixinTypes2 instead') @override - NodeListImpl get mixinTypes => _mixinTypes; + NodeList get mixinTypes => _DelegatingTypeNameList(_mixinTypes); + + @override + NodeListImpl get mixinTypes2 => _mixinTypes; @override E? accept(AstVisitor visitor) => visitor.visitWithClause(this); @@ -10968,6 +10966,76 @@ class YieldStatementImpl extends StatementImpl implements YieldStatement { } } +/// Implementation of `NodeList` that delegates. +class _DelegatingTypeNameList + with ListMixin + implements NodeList { + final NodeListImpl _delegate; + + _DelegatingTypeNameList(this._delegate); + + @override + Token? get beginToken { + return _delegate.beginToken; + } + + @override + Token? get endToken { + return _delegate.endToken; + } + + @override + int get length => _delegate.length; + + @override + set length(int newLength) { + _delegate.length = newLength; + } + + @override + AstNodeImpl get owner => _delegate.owner; + + @override + TypeName operator [](int index) { + return _delegate[index] as TypeName; + } + + @override + void operator []=(int index, TypeName node) { + _delegate[index] = node; + } + + @override + void accept(AstVisitor visitor) { + _delegate.accept(visitor); + } + + @override + void add(NamedType node) { + _delegate.add(node); + } + + @override + void addAll(Iterable nodes) { + _delegate.addAll(nodes); + } + + @override + void clear() { + _delegate.clear(); + } + + @override + void insert(int index, TypeName node) { + _delegate.insert(index, node); + } + + @override + TypeName removeAt(int index) { + return _delegate.removeAt(index) as TypeName; + } +} + /// An indication of the resolved kind of a [SetOrMapLiteral]. enum _SetOrMapKind { /// Indicates that the literal represents a map. diff --git a/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart b/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart index 12c0ab39dd5..908b3f4da59 100644 --- a/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart +++ b/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart @@ -600,7 +600,7 @@ class ToSourceVisitor implements AstVisitor { @override void visitImplementsClause(ImplementsClause node) { sink.write('implements '); - _visitNodeList(node.interfaces, separator: ', '); + _visitNodeList(node.interfaces2, separator: ', '); } @override @@ -776,7 +776,7 @@ class ToSourceVisitor implements AstVisitor { @override void visitOnClause(OnClause node) { sink.write('on '); - _visitNodeList(node.superclassConstraints, separator: ', '); + _visitNodeList(node.superclassConstraints2, separator: ', '); } @override @@ -1072,7 +1072,7 @@ class ToSourceVisitor implements AstVisitor { @override void visitWithClause(WithClause node) { sink.write('with '); - _visitNodeList(node.mixinTypes, separator: ', '); + _visitNodeList(node.mixinTypes2, separator: ', '); } @override diff --git a/pkg/analyzer/lib/src/dart/ast/utilities.dart b/pkg/analyzer/lib/src/dart/ast/utilities.dart index b887f0a217e..d24d4eaf107 100644 --- a/pkg/analyzer/lib/src/dart/ast/utilities.dart +++ b/pkg/analyzer/lib/src/dart/ast/utilities.dart @@ -718,7 +718,7 @@ class AstComparator implements AstVisitor { bool visitImplementsClause(ImplementsClause node) { ImplementsClause other = _other as ImplementsClause; return isEqualTokens(node.implementsKeyword, other.implementsKeyword) && - _isEqualNodeLists(node.interfaces, other.interfaces); + _isEqualNodeLists(node.interfaces2, other.interfaces2); } @override @@ -908,7 +908,7 @@ class AstComparator implements AstVisitor { OnClause other = _other as OnClause; return isEqualTokens(node.onKeyword, other.onKeyword) && _isEqualNodeLists( - node.superclassConstraints, other.superclassConstraints); + node.superclassConstraints2, other.superclassConstraints2); } @override @@ -1246,7 +1246,7 @@ class AstComparator implements AstVisitor { bool visitWithClause(WithClause node) { WithClause other = _other as WithClause; return isEqualTokens(node.withKeyword, other.withKeyword) && - _isEqualNodeLists(node.mixinTypes, other.mixinTypes); + _isEqualNodeLists(node.mixinTypes2, other.mixinTypes2); } @override @@ -2325,7 +2325,7 @@ class NodeReplacer implements AstVisitor { @override bool visitImplementsClause(covariant ImplementsClauseImpl node) { - if (_replaceInList(node.interfaces)) { + if (_replaceInList(node.interfaces2)) { return true; } return visitNode(node); @@ -2933,7 +2933,7 @@ class NodeReplacer implements AstVisitor { @override bool visitWithClause(covariant WithClauseImpl node) { - if (_replaceInList(node.mixinTypes)) { + if (_replaceInList(node.mixinTypes2)) { return true; } return visitNode(node); @@ -2948,7 +2948,7 @@ class NodeReplacer implements AstVisitor { return visitNode(node); } - bool _replaceInList(NodeListImpl list) { + bool _replaceInList(NodeList list) { int count = list.length; for (int i = 0; i < count; i++) { if (identical(_oldNode, list[i])) { diff --git a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart index 37b09c39e9c..964e4140880 100644 --- a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart +++ b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart @@ -1223,7 +1223,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { if (clause == null) return; _resolveTypes( - clause.interfaces, + clause.interfaces2, CompileTimeErrorCode.IMPLEMENTS_NON_CLASS, ); } @@ -1232,7 +1232,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { if (clause == null) return; _resolveTypes( - clause.superclassConstraints, + clause.superclassConstraints2, CompileTimeErrorCode.MIXIN_SUPER_CLASS_CONSTRAINT_NON_INTERFACE, ); } @@ -1302,7 +1302,7 @@ class ResolutionVisitor extends RecursiveAstVisitor { void _resolveWithClause(WithClause? clause) { if (clause == null) return; - for (var namedType in clause.mixinTypes) { + for (var namedType in clause.mixinTypes2) { _typeNameResolver.withClause_namedType = namedType; _resolveType( namedType as TypeNameImpl, diff --git a/pkg/analyzer/lib/src/error/inheritance_override.dart b/pkg/analyzer/lib/src/error/inheritance_override.dart index 928a9f5e785..8c4abb5d923 100644 --- a/pkg/analyzer/lib/src/error/inheritance_override.dart +++ b/pkg/analyzer/lib/src/error/inheritance_override.dart @@ -152,7 +152,7 @@ class _ClassVerifier { // class C extends S&M2 { ...members of C... } // So, we need to check members of each mixin against superinterfaces // of `S`, and superinterfaces of all previous mixins. - var mixinNodes = withClause?.mixinTypes; + var mixinNodes = withClause?.mixinTypes2; var mixinTypes = classElement.mixins; for (var i = 0; i < mixinTypes.length; i++) { var mixinType = mixinTypes[i]; @@ -347,7 +347,7 @@ class _ClassVerifier { bool _checkDirectSuperTypes() { var hasError = false; if (implementsClause != null) { - for (var namedType in implementsClause!.interfaces) { + for (var namedType in implementsClause!.interfaces2) { if (_checkDirectSuperType( namedType, CompileTimeErrorCode.IMPLEMENTS_DISALLOWED_CLASS, @@ -357,7 +357,7 @@ class _ClassVerifier { } } if (onClause != null) { - for (var namedType in onClause!.superclassConstraints) { + for (var namedType in onClause!.superclassConstraints2) { if (_checkDirectSuperType( namedType, CompileTimeErrorCode.MIXIN_SUPER_CLASS_CONSTRAINT_DISALLOWED_CLASS, @@ -375,7 +375,7 @@ class _ClassVerifier { } } if (withClause != null) { - for (var namedType in withClause!.mixinTypes) { + for (var namedType in withClause!.mixinTypes2) { if (_checkDirectSuperType( namedType, CompileTimeErrorCode.MIXIN_OF_DISALLOWED_CLASS, diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart index 75bd8ed37ec..58f534289ac 100644 --- a/pkg/analyzer/lib/src/fasta/ast_builder.dart +++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart @@ -3436,15 +3436,15 @@ class AstBuilder extends StackListener { if (declaration.withClause == null) { declaration.withClause = withClause; } else { - declaration.withClause!.mixinTypes.addAll(withClause.mixinTypes); + declaration.withClause!.mixinTypes2.addAll(withClause.mixinTypes2); } } if (implementsClause != null) { if (declaration.implementsClause == null) { declaration.implementsClause = implementsClause; } else { - declaration.implementsClause!.interfaces - .addAll(implementsClause.interfaces); + declaration.implementsClause!.interfaces2 + .addAll(implementsClause.interfaces2); } } } @@ -3486,16 +3486,16 @@ class AstBuilder extends StackListener { if (mixinDeclaration!.onClause == null) { mixinDeclaration!.onClause = onClause; } else { - mixinDeclaration!.onClause!.superclassConstraints - .addAll(onClause.superclassConstraints); + mixinDeclaration!.onClause!.superclassConstraints2 + .addAll(onClause.superclassConstraints2); } } if (implementsClause != null) { if (mixinDeclaration!.implementsClause == null) { mixinDeclaration!.implementsClause = implementsClause; } else { - mixinDeclaration!.implementsClause!.interfaces - .addAll(implementsClause.interfaces); + mixinDeclaration!.implementsClause!.interfaces2 + .addAll(implementsClause.interfaces2); } } } diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart index 6493ae6f705..029f914037e 100644 --- a/pkg/analyzer/lib/src/generated/error_verifier.dart +++ b/pkg/analyzer/lib/src/generated/error_verifier.dart @@ -833,7 +833,7 @@ class ErrorVerifier extends RecursiveAstVisitor @override void visitImplementsClause(ImplementsClause node) { - node.interfaces.forEach(_checkForImplicitDynamicType); + node.interfaces2.forEach(_checkForImplicitDynamicType); super.visitImplementsClause(node); } @@ -1289,7 +1289,7 @@ class ErrorVerifier extends RecursiveAstVisitor @override void visitWithClause(WithClause node) { - node.mixinTypes.forEach(_checkForImplicitDynamicType); + node.mixinTypes2.forEach(_checkForImplicitDynamicType); super.visitWithClause(node); } @@ -1309,7 +1309,7 @@ class ErrorVerifier extends RecursiveAstVisitor !_checkForNoGenerativeConstructorsInSuperclass(superclass)) { _checkForImplicitDynamicType(superclass); _checkForExtendsDeferredClass(superclass); - _checkForRepeatedType(implementsClause?.interfaces, + _checkForRepeatedType(implementsClause?.interfaces2, CompileTimeErrorCode.IMPLEMENTS_REPEATED); _checkImplementsSuperClass(implementsClause); _checkMixinsSuperClass(withClause); @@ -1384,9 +1384,9 @@ class ErrorVerifier extends RecursiveAstVisitor bool problemReported = false; int mixinTypeIndex = -1; for (int mixinNameIndex = 0; - mixinNameIndex < withClause.mixinTypes.length; + mixinNameIndex < withClause.mixinTypes2.length; mixinNameIndex++) { - NamedType mixinName = withClause.mixinTypes[mixinNameIndex]; + NamedType mixinName = withClause.mixinTypes2[mixinNameIndex]; DartType mixinType = mixinName.typeOrThrow; if (mixinType is InterfaceType) { mixinTypeIndex++; @@ -1624,7 +1624,7 @@ class ErrorVerifier extends RecursiveAstVisitor } if (implementsClause != null) { - for (var interface in implementsClause.interfaces) { + for (var interface in implementsClause.interfaces2) { var type = interface.type; if (type != null && type.isDartCoreFunction) { errorReporter.reportErrorForNode( @@ -1637,7 +1637,7 @@ class ErrorVerifier extends RecursiveAstVisitor } if (withClause != null) { - for (NamedType type in withClause.mixinTypes) { + for (NamedType type in withClause.mixinTypes2) { var mixinElement = type.name.staticElement; if (mixinElement != null && mixinElement.name == "Function") { errorReporter.reportErrorForNode( @@ -2539,7 +2539,7 @@ class ErrorVerifier extends RecursiveAstVisitor return false; } bool foundError = false; - for (NamedType type in clause.interfaces) { + for (NamedType type in clause.interfaces2) { if (_checkForExtendsOrImplementsDisallowedClass( type, CompileTimeErrorCode.IMPLEMENTS_DISALLOWED_CLASS)) { foundError = true; @@ -3221,7 +3221,7 @@ class ErrorVerifier extends RecursiveAstVisitor return false; } - for (NamedType mixinType in withClause.mixinTypes) { + for (NamedType mixinType in withClause.mixinTypes2) { DartType type = mixinType.typeOrThrow; if (type is InterfaceType) { LibraryElement library = type.element.library; @@ -3550,7 +3550,7 @@ class ErrorVerifier extends RecursiveAstVisitor return false; } bool problemReported = false; - for (NamedType namedType in onClause.superclassConstraints) { + for (NamedType namedType in onClause.superclassConstraints2) { DartType type = namedType.typeOrThrow; if (type is InterfaceType) { if (_checkForExtendsOrImplementsDisallowedClass( @@ -4615,7 +4615,7 @@ class ErrorVerifier extends RecursiveAstVisitor return; } - for (var interfaceNode in implementsClause.interfaces) { + for (var interfaceNode in implementsClause.interfaces2) { var type = interfaceNode.type; if (type is InterfaceType && type.element == superElement) { errorReporter.reportErrorForNode( @@ -4638,7 +4638,7 @@ class ErrorVerifier extends RecursiveAstVisitor var interfacesMerger = InterfacesMerger(typeSystem); interfacesMerger.addWithSupertypes(supertype); - for (var namedType in withClause.mixinTypes) { + for (var namedType in withClause.mixinTypes2) { var mixinType = namedType.type; if (mixinType is InterfaceType) { var mixinElement = mixinType.element; @@ -4687,11 +4687,11 @@ class ErrorVerifier extends RecursiveAstVisitor !_checkForImplementsClauseErrorCodes(implementsClause)) { // _checkForImplicitDynamicType(superclass); _checkForRepeatedType( - onClause?.superclassConstraints, + onClause?.superclassConstraints2, CompileTimeErrorCode.ON_REPEATED, ); _checkForRepeatedType( - implementsClause?.interfaces, + implementsClause?.interfaces2, CompileTimeErrorCode.IMPLEMENTS_REPEATED, ); _checkForConflictingGenerics(node); @@ -4712,7 +4712,7 @@ class ErrorVerifier extends RecursiveAstVisitor return; } - for (var mixinNode in withClause.mixinTypes) { + for (var mixinNode in withClause.mixinTypes2) { var type = mixinNode.type; if (type is InterfaceType && type.element == superElement) { errorReporter.reportErrorForNode( diff --git a/pkg/analyzer/lib/src/generated/ffi_verifier.dart b/pkg/analyzer/lib/src/generated/ffi_verifier.dart index f7ecada981d..516a19d8a5b 100644 --- a/pkg/analyzer/lib/src/generated/ffi_verifier.dart +++ b/pkg/analyzer/lib/src/generated/ffi_verifier.dart @@ -116,14 +116,14 @@ class FfiVerifier extends RecursiveAstVisitor { var implementsClause = node.implementsClause; if (implementsClause != null) { - for (NamedType type in implementsClause.interfaces) { + for (NamedType type in implementsClause.interfaces2) { checkSupertype(type, FfiCode.SUBTYPE_OF_FFI_CLASS_IN_IMPLEMENTS, FfiCode.SUBTYPE_OF_STRUCT_CLASS_IN_IMPLEMENTS); } } var withClause = node.withClause; if (withClause != null) { - for (NamedType type in withClause.mixinTypes) { + for (NamedType type in withClause.mixinTypes2) { checkSupertype(type, FfiCode.SUBTYPE_OF_FFI_CLASS_IN_WITH, FfiCode.SUBTYPE_OF_STRUCT_CLASS_IN_WITH); } diff --git a/pkg/analyzer/lib/src/summary2/ast_text_printer.dart b/pkg/analyzer/lib/src/summary2/ast_text_printer.dart index 3c7de8dd855..bb5f5fce600 100644 --- a/pkg/analyzer/lib/src/summary2/ast_text_printer.dart +++ b/pkg/analyzer/lib/src/summary2/ast_text_printer.dart @@ -570,7 +570,7 @@ class AstTextPrinter extends ThrowingAstVisitor { @override void visitImplementsClause(ImplementsClause node) { _token(node.implementsKeyword); - _nodeList(node.interfaces, node.endToken.next); + _nodeList(node.interfaces2, node.endToken.next); } @override @@ -731,7 +731,7 @@ class AstTextPrinter extends ThrowingAstVisitor { @override void visitOnClause(OnClause node) { _token(node.onKeyword); - _nodeList(node.superclassConstraints, node.endToken.next); + _nodeList(node.superclassConstraints2, node.endToken.next); } @override @@ -1003,7 +1003,7 @@ class AstTextPrinter extends ThrowingAstVisitor { @override void visitWithClause(WithClause node) { _token(node.withKeyword); - _nodeList(node.mixinTypes, node.endToken.next); + _nodeList(node.mixinTypes2, node.endToken.next); } @override diff --git a/pkg/analyzer/lib/src/summary2/element_builder.dart b/pkg/analyzer/lib/src/summary2/element_builder.dart index 2c2649d6aca..fe2b237695b 100644 --- a/pkg/analyzer/lib/src/summary2/element_builder.dart +++ b/pkg/analyzer/lib/src/summary2/element_builder.dart @@ -601,7 +601,7 @@ class ElementBuilder extends ThrowingAstVisitor { @override void visitImplementsClause(ImplementsClause node) { - node.interfaces.accept(this); + node.interfaces2.accept(this); } @override @@ -746,7 +746,7 @@ class ElementBuilder extends ThrowingAstVisitor { @override void visitOnClause(OnClause node) { - node.superclassConstraints.accept(this); + node.superclassConstraints2.accept(this); } @override @@ -895,7 +895,7 @@ class ElementBuilder extends ThrowingAstVisitor { @override void visitWithClause(WithClause node) { - node.mixinTypes.accept(this); + node.mixinTypes2.accept(this); } List _buildAnnotations(List nodeList) { diff --git a/pkg/analyzer/lib/src/summary2/reference_resolver.dart b/pkg/analyzer/lib/src/summary2/reference_resolver.dart index 1cba245604a..9fccda8c281 100644 --- a/pkg/analyzer/lib/src/summary2/reference_resolver.dart +++ b/pkg/analyzer/lib/src/summary2/reference_resolver.dart @@ -273,7 +273,7 @@ class ReferenceResolver extends ThrowingAstVisitor { @override void visitImplementsClause(ImplementsClause node) { - node.interfaces.accept(this); + node.interfaces2.accept(this); } @override @@ -316,7 +316,7 @@ class ReferenceResolver extends ThrowingAstVisitor { @override void visitOnClause(OnClause node) { - node.superclassConstraints.accept(this); + node.superclassConstraints2.accept(this); } @override @@ -412,7 +412,7 @@ class ReferenceResolver extends ThrowingAstVisitor { @override void visitWithClause(WithClause node) { - node.mixinTypes.accept(this); + node.mixinTypes2.accept(this); } NullabilitySuffix _getNullabilitySuffix(bool hasQuestion) { diff --git a/pkg/analyzer/lib/src/summary2/types_builder.dart b/pkg/analyzer/lib/src/summary2/types_builder.dart index fd30689a4c3..b128cfe3567 100644 --- a/pkg/analyzer/lib/src/summary2/types_builder.dart +++ b/pkg/analyzer/lib/src/summary2/types_builder.dart @@ -135,11 +135,11 @@ class TypesBuilder { } element.mixins = _toInterfaceTypeList( - node.withClause?.mixinTypes, + node.withClause?.mixinTypes2, ); element.interfaces = _toInterfaceTypeList( - node.implementsClause?.interfaces, + node.implementsClause?.interfaces2, ); } @@ -154,11 +154,11 @@ class TypesBuilder { } element.mixins = _toInterfaceTypeList( - node.withClause.mixinTypes, + node.withClause.mixinTypes2, ); element.interfaces = _toInterfaceTypeList( - node.implementsClause?.interfaces, + node.implementsClause?.interfaces2, ); } @@ -286,7 +286,7 @@ class TypesBuilder { var element = node.declaredElement as MixinElementImpl; var constraints = _toInterfaceTypeList( - node.onClause?.superclassConstraints, + node.onClause?.superclassConstraints2, ); if (constraints.isEmpty) { constraints = [_objectType(element)]; @@ -294,7 +294,7 @@ class TypesBuilder { element.superclassConstraints = constraints; element.interfaces = _toInterfaceTypeList( - node.implementsClause?.interfaces, + node.implementsClause?.interfaces2, ); } @@ -363,7 +363,7 @@ class _MixinInference { void perform(WithClause? withClause) { if (withClause == null) return; - for (var mixinNode in withClause.mixinTypes) { + for (var mixinNode in withClause.mixinTypes2) { var mixinType = _inferSingle(mixinNode as TypeNameImpl); interfacesMerger.addWithSupertypes(mixinType); } @@ -513,7 +513,7 @@ class _MixinsInference { } finally { element.mixinInferenceCallback = null; element.mixins = _toInterfaceTypeList( - withClause.mixinTypes, + withClause.mixinTypes2, ); } } diff --git a/pkg/analyzer/test/generated/simple_parser_test.dart b/pkg/analyzer/test/generated/simple_parser_test.dart index 73804a42d73..830df2daaa1 100644 --- a/pkg/analyzer/test/generated/simple_parser_test.dart +++ b/pkg/analyzer/test/generated/simple_parser_test.dart @@ -1381,7 +1381,7 @@ abstract class Foo {} ImplementsClause clause = parseImplementsClause('implements A, B, C'); expectNotNullIfNoErrors(clause); assertNoErrors(); - expect(clause.interfaces, hasLength(3)); + expect(clause.interfaces2, hasLength(3)); expect(clause.implementsKeyword, isNotNull); } @@ -1389,7 +1389,7 @@ abstract class Foo {} ImplementsClause clause = parseImplementsClause('implements A'); expectNotNullIfNoErrors(clause); assertNoErrors(); - expect(clause.interfaces, hasLength(1)); + expect(clause.interfaces2, hasLength(1)); expect(clause.implementsKeyword, isNotNull); } @@ -2077,7 +2077,7 @@ Function(core.List x) m() => null; expectNotNullIfNoErrors(clause); assertNoErrors(); expect(clause.withKeyword, isNotNull); - expect(clause.mixinTypes, hasLength(3)); + expect(clause.mixinTypes2, hasLength(3)); } void test_parseWithClause_single() { @@ -2085,7 +2085,7 @@ Function(core.List x) m() => null; expectNotNullIfNoErrors(clause); assertNoErrors(); expect(clause.withKeyword, isNotNull); - expect(clause.mixinTypes, hasLength(1)); + expect(clause.mixinTypes2, hasLength(1)); } void test_typeAlias_37733() { diff --git a/pkg/analyzer/test/generated/top_level_parser_test.dart b/pkg/analyzer/test/generated/top_level_parser_test.dart index 6962aff5903..533a43e7ce8 100644 --- a/pkg/analyzer/test/generated/top_level_parser_test.dart +++ b/pkg/analyzer/test/generated/top_level_parser_test.dart @@ -398,7 +398,7 @@ class A native 'something' { expect(typeAlias.withClause, isNotNull); expect(typeAlias.implementsClause, isNotNull); expect(typeAlias.implementsClause!.implementsKeyword, isNotNull); - expect(typeAlias.implementsClause!.interfaces.length, 1); + expect(typeAlias.implementsClause!.interfaces2.length, 1); expect(typeAlias.semicolon, isNotNull); } @@ -414,7 +414,7 @@ class A native 'something' { expect(typeAlias.typeParameters, isNull); expect(typeAlias.withClause, isNotNull); expect(typeAlias.withClause.withKeyword, isNotNull); - expect(typeAlias.withClause.mixinTypes.length, 1); + expect(typeAlias.withClause.mixinTypes2.length, 1); expect(typeAlias.implementsClause, isNull); expect(typeAlias.semicolon, isNotNull); } @@ -1949,7 +1949,7 @@ enum E { expect(declaration.onClause, isNull); var implementsClause = declaration.implementsClause!; expect(implementsClause.implementsKeyword, isNotNull); - NodeList interfaces = implementsClause.interfaces; + NodeList interfaces = implementsClause.interfaces2; expect(interfaces, hasLength(1)); expect(interfaces[0].name.name, 'B'); expect(interfaces[0].typeArguments, isNull); @@ -1971,7 +1971,7 @@ enum E { expect(declaration.onClause, isNull); var implementsClause = declaration.implementsClause!; expect(implementsClause.implementsKeyword, isNotNull); - NodeList interfaces = implementsClause.interfaces; + NodeList interfaces = implementsClause.interfaces2; expect(interfaces, hasLength(2)); expect(interfaces[0].name.name, 'B'); expect(interfaces[0].typeArguments!.arguments, hasLength(1)); @@ -2013,7 +2013,7 @@ enum E { expect(declaration.documentationComment, isNull); var onClause = declaration.onClause!; expect(onClause.onKeyword, isNotNull); - NodeList constraints = onClause.superclassConstraints; + NodeList constraints = onClause.superclassConstraints2; expect(constraints, hasLength(1)); expect(constraints[0].name.name, 'B'); expect(constraints[0].typeArguments, isNull); @@ -2035,7 +2035,7 @@ enum E { expect(declaration.documentationComment, isNull); var onClause = declaration.onClause!; expect(onClause.onKeyword, isNotNull); - NodeList constraints = onClause.superclassConstraints; + NodeList constraints = onClause.superclassConstraints2; expect(constraints, hasLength(2)); expect(constraints[0].name.name, 'B'); expect(constraints[0].typeArguments, isNull); @@ -2059,13 +2059,13 @@ enum E { expect(declaration.documentationComment, isNull); var onClause = declaration.onClause!; expect(onClause.onKeyword, isNotNull); - NodeList constraints = onClause.superclassConstraints; + NodeList constraints = onClause.superclassConstraints2; expect(constraints, hasLength(1)); expect(constraints[0].name.name, 'B'); expect(constraints[0].typeArguments, isNull); var implementsClause = declaration.implementsClause!; expect(implementsClause.implementsKeyword, isNotNull); - NodeList interfaces = implementsClause.interfaces; + NodeList interfaces = implementsClause.interfaces2; expect(interfaces, hasLength(1)); expect(interfaces[0].name.name, 'C'); expect(interfaces[0].typeArguments, isNull); diff --git a/pkg/analyzer/test/generated/utilities_test.dart b/pkg/analyzer/test/generated/utilities_test.dart index 4b2641239c6..4327899b801 100644 --- a/pkg/analyzer/test/generated/utilities_test.dart +++ b/pkg/analyzer/test/generated/utilities_test.dart @@ -1225,7 +1225,7 @@ class ListGetter_NodeReplacerTest_test_implementsClause ListGetter_NodeReplacerTest_test_implementsClause(int arg0) : super(arg0); @override - NodeList getList(ImplementsClause node) => node.interfaces; + NodeList getList(ImplementsClause node) => node.interfaces2; } class ListGetter_NodeReplacerTest_test_labeledStatement @@ -1327,7 +1327,7 @@ class ListGetter_NodeReplacerTest_test_withClause ListGetter_NodeReplacerTest_test_withClause(int arg0) : super(arg0); @override - NodeList getList(WithClause node) => node.mixinTypes; + NodeList getList(WithClause node) => node.mixinTypes2; } class ListGetter_NodeReplacerTest_testAnnotatedNode diff --git a/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart index de0bea2fc90..d2da736ca7c 100644 --- a/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart @@ -6963,7 +6963,7 @@ class D extends A with B implements C {} nullabilitySuffix: NullabilitySuffix.none, ); - NamedType mixinType = dNode.withClause!.mixinTypes[0]; + NamedType mixinType = dNode.withClause!.mixinTypes2[0]; expect(mixinType.type, expectedType); var identifier = mixinType.name as SimpleIdentifier; @@ -6977,7 +6977,7 @@ class D extends A with B implements C {} nullabilitySuffix: NullabilitySuffix.none, ); - NamedType implementedType = dNode.implementsClause!.interfaces[0]; + NamedType implementedType = dNode.implementsClause!.interfaces2[0]; expect(implementedType.type, expectedType); var identifier = implementedType.name as SimpleIdentifier; @@ -7032,7 +7032,7 @@ class D = A with B implements C; nullabilitySuffix: NullabilitySuffix.none, ); - NamedType mixinType = dNode.withClause.mixinTypes[0]; + NamedType mixinType = dNode.withClause.mixinTypes2[0]; expect(mixinType.type, expectedType); var identifier = mixinType.name as SimpleIdentifier; @@ -7046,7 +7046,7 @@ class D = A with B implements C; nullabilitySuffix: NullabilitySuffix.none, ); - NamedType interfaceType = dNode.implementsClause!.interfaces[0]; + NamedType interfaceType = dNode.implementsClause!.interfaces2[0]; expect(interfaceType.type, expectedType); var identifier = interfaceType.name as SimpleIdentifier; diff --git a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart index 1921da73f72..5f7440a842c 100644 --- a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart +++ b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart @@ -814,7 +814,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { var properties = _Properties(); properties.addToken('implementsKeyword', node.implementsKeyword); - properties.addNodeList('interfaces', node.interfaces); + properties.addNodeList('interfaces', node.interfaces2); _addAstNode(properties, node); _writeProperties(properties); }); @@ -1053,7 +1053,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { var properties = _Properties(); properties.addToken('onKeyword', node.onKeyword); properties.addNodeList( - 'superclassConstraints', node.superclassConstraints); + 'superclassConstraints', node.superclassConstraints2); _addAstNode(properties, node); _writeProperties(properties); }); @@ -1531,7 +1531,7 @@ class ResolvedAstPrinter extends ThrowingAstVisitor { _withIndent(() { var properties = _Properties(); properties.addToken('withKeyword', node.withKeyword); - properties.addNodeList('mixinTypes', node.mixinTypes); + properties.addNodeList('mixinTypes', node.mixinTypes2); _addAstNode(properties, node); _writeProperties(properties); }); diff --git a/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart b/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart index d444d319b2d..0cfeba2de86 100644 --- a/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart +++ b/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart @@ -1408,7 +1408,7 @@ class _OpTypeAstVisitor extends GeneralizingAstVisitor { @override void visitWithClause(WithClause node) { - if (node.mixinTypes.contains(entity)) { + if (node.mixinTypes2.contains(entity)) { optype.completionLocation = 'WithClause_mixinType'; } optype.includeTypeNameSuggestions = true; diff --git a/pkg/nnbd_migration/lib/src/node_builder.dart b/pkg/nnbd_migration/lib/src/node_builder.dart index 624c4df67ec..afbcf024e4d 100644 --- a/pkg/nnbd_migration/lib/src/node_builder.dart +++ b/pkg/nnbd_migration/lib/src/node_builder.dart @@ -871,13 +871,13 @@ class NodeBuilder extends GeneralizingAstVisitor var supertypes = []; supertypes.add(superclass); if (withClause != null) { - supertypes.addAll(withClause.mixinTypes); + supertypes.addAll(withClause.mixinTypes2); } if (implementsClause != null) { - supertypes.addAll(implementsClause.interfaces); + supertypes.addAll(implementsClause.interfaces2); } if (onClause != null) { - supertypes.addAll(onClause.superclassConstraints); + supertypes.addAll(onClause.superclassConstraints2); } var decoratedSupertypes = {}; _pushNullabilityNodeTarget(