Version 2.13.0-11.0.dev
Merge commit '9624709abffea2feb930d068520a07a10cbf3926' into 'dev'
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 614d996..656d53d 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -85,7 +85,7 @@
/// TODO(scheglov) Clean up the list of implicitly analyzed files.
class AnalysisDriver implements AnalysisDriverGeneric {
/// The version of data format, should be incremented on every format change.
- static const int DATA_VERSION = 125;
+ static const int DATA_VERSION = 126;
/// The length of the list returned by [_computeDeclaredVariablesSignature].
static const int _declaredVariablesSignatureLength = 4;
diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart
index 0e1f047..da21735 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast.dart
@@ -4245,9 +4245,7 @@
}
}
-class ForElementImpl extends CollectionElementImpl
- with ForMixin
- implements ForElement {
+class ForElementImpl extends CollectionElementImpl implements ForElement {
@override
Token? awaitKeyword;
@@ -4273,6 +4271,9 @@
}
@override
+ Token get beginToken => awaitKeyword ?? forKeyword;
+
+ @override
CollectionElement get body => _body;
set body(CollectionElement statement) {
@@ -4281,7 +4282,11 @@
@override
Iterable<SyntacticEntity> get childEntities => ChildEntities()
- ..addAll(super.childEntities)
+ ..add(awaitKeyword)
+ ..add(forKeyword)
+ ..add(leftParenthesis)
+ ..add(_forLoopParts)
+ ..add(rightParenthesis)
..add(_body);
@override
@@ -4474,29 +4479,6 @@
}
}
-mixin ForMixin on AstNodeImpl {
- Token? get awaitKeyword;
-
- @override
- Token get beginToken => awaitKeyword ?? forKeyword;
-
- @override
- Iterable<SyntacticEntity> get childEntities => ChildEntities()
- ..add(awaitKeyword)
- ..add(forKeyword)
- ..add(leftParenthesis)
- ..add(forLoopParts)
- ..add(rightParenthesis);
-
- Token get forKeyword;
-
- ForLoopParts get forLoopParts;
-
- Token get leftParenthesis;
-
- Token get rightParenthesis;
-}
-
abstract class ForPartsImpl extends ForLoopPartsImpl implements ForParts {
@override
Token leftSeparator;
@@ -4644,9 +4626,7 @@
}
}
-class ForStatementImpl extends StatementImpl
- with ForMixin
- implements ForStatement {
+class ForStatementImpl extends StatementImpl implements ForStatement {
@override
Token? awaitKeyword;
@@ -4672,6 +4652,9 @@
}
@override
+ Token get beginToken => awaitKeyword ?? forKeyword;
+
+ @override
Statement get body => _body;
set body(Statement statement) {
@@ -4680,7 +4663,11 @@
@override
Iterable<SyntacticEntity> get childEntities => ChildEntities()
- ..addAll(super.childEntities)
+ ..add(awaitKeyword)
+ ..add(forKeyword)
+ ..add(leftParenthesis)
+ ..add(_forLoopParts)
+ ..add(rightParenthesis)
..add(_body);
@override
@@ -5525,9 +5512,7 @@
bool get isAssignable => true;
}
-class IfElementImpl extends CollectionElementImpl
- with IfMixin
- implements IfElement {
+class IfElementImpl extends CollectionElementImpl implements IfElement {
@override
Token ifKeyword;
@@ -5565,8 +5550,14 @@
}
@override
+ Token get beginToken => ifKeyword;
+
+ @override
Iterable<SyntacticEntity> get childEntities => ChildEntities()
- ..addAll(super.childEntities)
+ ..add(ifKeyword)
+ ..add(leftParenthesis)
+ ..add(_condition)
+ ..add(rightParenthesis)
..add(_thenElement)
..add(elseKeyword)
..add(_elseElement);
@@ -5600,47 +5591,17 @@
@override
void visitChildren(AstVisitor visitor) {
- super.visitChildren(visitor);
+ _condition.accept(visitor);
_thenElement.accept(visitor);
_elseElement?.accept(visitor);
}
}
-mixin IfMixin on AstNodeImpl {
- Token? elseKeyword;
-
- @override
- Token get beginToken => ifKeyword;
-
- @override
- Iterable<SyntacticEntity> get childEntities => ChildEntities()
- ..add(ifKeyword)
- ..add(leftParenthesis)
- ..add(condition)
- ..add(rightParenthesis);
-
- /// The condition used to determine which of the branches is executed next.
- Expression get condition;
-
- Token get ifKeyword;
-
- Token get leftParenthesis;
-
- Token get rightParenthesis;
-
- @override
- void visitChildren(AstVisitor visitor) {
- condition.accept(visitor);
- }
-}
-
/// An if statement.
///
/// ifStatement ::=
/// 'if' '(' [Expression] ')' [Statement] ('else' [Statement])?
-class IfStatementImpl extends StatementImpl
- with IfMixin
- implements IfStatement {
+class IfStatementImpl extends StatementImpl implements IfStatement {
@override
Token ifKeyword;
@@ -5683,7 +5644,10 @@
@override
Iterable<SyntacticEntity> get childEntities => ChildEntities()
- ..addAll(super.childEntities)
+ ..add(ifKeyword)
+ ..add(leftParenthesis)
+ ..add(_condition)
+ ..add(rightParenthesis)
..add(_thenStatement)
..add(elseKeyword)
..add(_elseStatement);
diff --git a/pkg/analyzer/lib/src/summary2/apply_resolution.dart b/pkg/analyzer/lib/src/summary2/apply_resolution.dart
index 027dba1..abe0727 100644
--- a/pkg/analyzer/lib/src/summary2/apply_resolution.dart
+++ b/pkg/analyzer/lib/src/summary2/apply_resolution.dart
@@ -508,10 +508,10 @@
@override
void visitForElement(ForElement node) {
+ _expectMarker(MarkerTag.ForElement_forLoopParts);
+ node.forLoopParts.accept(this);
_expectMarker(MarkerTag.ForElement_body);
node.body.accept(this);
- _expectMarker(MarkerTag.ForElement_forMixin);
- _forMixin(node as ForElementImpl);
_expectMarker(MarkerTag.ForElement_end);
}
@@ -1432,11 +1432,6 @@
(node.declaredElement as ParameterElementImpl).type = _nextType()!;
}
- void _forMixin(ForMixin node) {
- _expectMarker(MarkerTag.ForMixin_forLoopParts);
- node.forLoopParts.accept(this);
- }
-
void _forParts(ForParts node) {
_expectMarker(MarkerTag.ForParts_condition);
node.condition?.accept(this);
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
index 56f70a9..ae7d510 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
@@ -816,9 +816,9 @@
}
ForElement _readForElement() {
- var body = readNode() as CollectionElement;
var flags = _readByte();
var forLoopParts = readNode() as ForLoopParts;
+ var body = readNode() as CollectionElement;
return astFactory.forElement(
awaitKeyword: AstBinaryFlags.hasAwait(flags) ? Tokens.AWAIT : null,
body: body,
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_tag.dart b/pkg/analyzer/lib/src/summary2/ast_binary_tag.dart
index 43eee8a..7fd7486 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_tag.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_tag.dart
@@ -120,11 +120,10 @@
ForEachPartsWithDeclaration_loopVariable,
ForEachPartsWithDeclaration_forEachParts,
ForEachPartsWithDeclaration_end,
+ ForElement_forLoopParts,
ForElement_body,
- ForElement_forMixin,
ForElement_end,
FormalParameter_type,
- ForMixin_forLoopParts,
ForParts_condition,
ForParts_updaters,
ForParts_forLoopParts,
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
index ff0a516..d2cc77b 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
@@ -729,10 +729,15 @@
@override
void visitForElement(ForElement node) {
_writeByte(Tag.ForElement);
+ _writeByte(
+ AstBinaryFlags.encode(
+ hasAwait: node.awaitKeyword != null,
+ ),
+ );
+ _writeMarker(MarkerTag.ForElement_forLoopParts);
+ _writeNode(node.forLoopParts);
_writeMarker(MarkerTag.ForElement_body);
_writeNode(node.body);
- _writeMarker(MarkerTag.ForElement_forMixin);
- _storeForMixin(node as ForElementImpl);
_writeMarker(MarkerTag.ForElement_end);
}
@@ -1924,16 +1929,6 @@
}
}
- void _storeForMixin(ForMixin node) {
- _writeByte(
- AstBinaryFlags.encode(
- hasAwait: node.awaitKeyword != null,
- ),
- );
- _writeMarker(MarkerTag.ForMixin_forLoopParts);
- _writeNode(node.forLoopParts);
- }
-
void _storeForParts(ForParts node) {
_writeMarker(MarkerTag.ForParts_condition);
_writeOptionalNode(node.condition);
diff --git a/tools/VERSION b/tools/VERSION
index 7e4525b..44d5aa6 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 13
PATCH 0
-PRERELEASE 10
+PRERELEASE 11
PRERELEASE_PATCH 0
\ No newline at end of file