[analyzer] Fix utility classes ignoring await in for statement/element
Change-Id: I141f13a6a0be1661cb97c5ed9c87729cf257907c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97521
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/dart/ast/utilities.dart b/pkg/analyzer/lib/src/dart/ast/utilities.dart
index 8646cbd..f9db9f8 100644
--- a/pkg/analyzer/lib/src/dart/ast/utilities.dart
+++ b/pkg/analyzer/lib/src/dart/ast/utilities.dart
@@ -490,6 +490,7 @@
@override
ForElement visitForElement(ForElement node) => astFactory.forElement(
+ awaitKeyword: cloneToken(node.awaitKeyword),
forKeyword: cloneToken(node.forKeyword),
leftParenthesis: cloneToken(node.leftParenthesis),
forLoopParts: cloneNode(node.forLoopParts),
@@ -1617,7 +1618,8 @@
@override
bool visitForElement(ForElement node) {
ForElement other = _other as ForElement;
- return isEqualTokens(node.forKeyword, other.forKeyword) &&
+ return isEqualTokens(node.awaitKeyword, other.awaitKeyword) &&
+ isEqualTokens(node.forKeyword, other.forKeyword) &&
isEqualTokens(node.leftParenthesis, other.leftParenthesis) &&
isEqualNodes(node.forLoopParts, other.forLoopParts) &&
isEqualTokens(node.rightParenthesis, other.rightParenthesis) &&
@@ -1658,6 +1660,7 @@
bool visitForStatement(ForStatement node) {
ForStatement other = _other as ForStatement;
return isEqualTokens(node.forKeyword, other.forKeyword) &&
+ isEqualTokens(node.awaitKeyword, other.awaitKeyword) &&
isEqualTokens(node.leftParenthesis, other.leftParenthesis) &&
isEqualNodes(node.forLoopParts, other.forLoopParts) &&
isEqualTokens(node.rightParenthesis, other.rightParenthesis) &&
@@ -2853,6 +2856,7 @@
@override
ForElement visitForElement(ForElement node) => astFactory.forElement(
+ awaitKeyword: _mapToken(node.awaitKeyword),
forKeyword: _mapToken(node.forKeyword),
leftParenthesis: _mapToken(node.leftParenthesis),
forLoopParts: _cloneNode(node.forLoopParts),
@@ -2890,6 +2894,7 @@
@override
ForStatement visitForStatement(ForStatement node) => astFactory.forStatement(
+ awaitKeyword: _mapToken(node.awaitKeyword),
forKeyword: _mapToken(node.forKeyword),
leftParenthesis: _mapToken(node.leftParenthesis),
forLoopParts: _cloneNode(node.forLoopParts),
@@ -5625,6 +5630,7 @@
bool visitForElement(ForElement node) {
ForElement toNode = this._toNode as ForElement;
return _and(
+ _isEqualTokens(node.awaitKeyword, toNode.awaitKeyword),
_isEqualTokens(node.forKeyword, toNode.forKeyword),
_isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
_isEqualNodes(node.forLoopParts, toNode.forLoopParts),
@@ -5669,6 +5675,7 @@
bool visitForStatement(ForStatement node) {
ForStatement toNode = this._toNode as ForStatement;
return _and(
+ _isEqualTokens(node.awaitKeyword, toNode.awaitKeyword),
_isEqualTokens(node.forKeyword, toNode.forKeyword),
_isEqualTokens(node.leftParenthesis, toNode.leftParenthesis),
_isEqualNodes(node.forLoopParts, toNode.forLoopParts),