Call becomeMap/becomeSet() in AstCloner.
So, that we have a decided kind for constants.
R=brianwilkerson@google.com, paulberry@google.com
Change-Id: Iee2937e8d525c16e57c8efb4807806edeb19e125
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96662
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 9588569..cb913fe 100644
--- a/pkg/analyzer/lib/src/dart/ast/utilities.dart
+++ b/pkg/analyzer/lib/src/dart/ast/utilities.dart
@@ -903,13 +903,20 @@
}
@override
- SetOrMapLiteral visitSetOrMapLiteral(SetOrMapLiteral node) =>
- astFactory.setOrMapLiteral(
- constKeyword: cloneToken(node.constKeyword),
- typeArguments: cloneNode(node.typeArguments),
- leftBracket: cloneToken(node.leftBracket),
- elements: cloneNodeList(node.elements2),
- rightBracket: cloneToken(node.rightBracket));
+ SetOrMapLiteral visitSetOrMapLiteral(SetOrMapLiteral node) {
+ var result = astFactory.setOrMapLiteral(
+ constKeyword: cloneToken(node.constKeyword),
+ typeArguments: cloneNode(node.typeArguments),
+ leftBracket: cloneToken(node.leftBracket),
+ elements: cloneNodeList(node.elements2),
+ rightBracket: cloneToken(node.rightBracket));
+ if (node.isMap) {
+ (result as SetOrMapLiteralImpl).becomeMap();
+ } else if (node.isSet) {
+ (result as SetOrMapLiteralImpl).becomeSet();
+ }
+ return result;
+ }
@override
ShowCombinator visitShowCombinator(ShowCombinator node) => astFactory