Version 2.14.0-49.0.dev
Merge commit '6a7aaf5bc3e2bfd9da9be17962c75914c8bdaf75' into 'dev'
diff --git a/DEPS b/DEPS
index a7cc76e..da99e64 100644
--- a/DEPS
+++ b/DEPS
@@ -39,12 +39,12 @@
# Checked-in SDK version. The checked-in SDK is a Dart SDK distribution in a
# cipd package used to run Dart scripts in the build and test infrastructure.
- "sdk_tag": "version:2.12.0",
+ "sdk_tag": "version:2.13.0-211.13.beta",
# co19 is a cipd package. Use update.sh in tests/co19[_2] to update these
# hashes. It requires access to the dart-build-access group, which EngProd
# has.
- "co19_rev": "8c5fea8a51cf8c35724ddf136248350bb307d344",
+ "co19_rev": "13f010c4047c4c7d52afe67ecc57ebc415ea4ea8",
"co19_2_rev": "f7f583366396cb1457e58c9bfb6d6e53dc21d741",
# The internal benchmarks to use. See go/dart-benchmarks-internal
diff --git a/build/config/mac/mac_sdk.gni b/build/config/mac/mac_sdk.gni
index e93ede0..ae8cd00 100644
--- a/build/config/mac/mac_sdk.gni
+++ b/build/config/mac/mac_sdk.gni
@@ -6,9 +6,9 @@
declare_args() {
# Minimum supported version of the Mac SDK.
- mac_sdk_min = "10.8"
+ mac_sdk_min = "10.13"
- # Path to a specific version of the Mac SDKJ, not including a backslash at
+ # Path to a specific version of the Mac SDK, not including a backslash at
# the end. If empty, the path to the lowest version greater than or equal to
# mac_sdk_min is used.
mac_sdk_path = ""
diff --git a/pkg/compiler/lib/src/ir/scope_visitor.dart b/pkg/compiler/lib/src/ir/scope_visitor.dart
index abaff07..2a6ddc4 100644
--- a/pkg/compiler/lib/src/ir/scope_visitor.dart
+++ b/pkg/compiler/lib/src/ir/scope_visitor.dart
@@ -879,7 +879,7 @@
}
@override
- EvaluationComplexity visitMapEntry(ir.MapEntry node) {
+ EvaluationComplexity visitMapLiteralEntry(ir.MapLiteralEntry node) {
node.key = _handleExpression(node.key);
EvaluationComplexity keyComplexity = _lastExpressionComplexity;
diff --git a/pkg/compiler/lib/src/ir/static_type.dart b/pkg/compiler/lib/src/ir/static_type.dart
index 224a793..0ea8c89 100644
--- a/pkg/compiler/lib/src/ir/static_type.dart
+++ b/pkg/compiler/lib/src/ir/static_type.dart
@@ -1572,7 +1572,7 @@
}
@override
- Null visitMapEntry(ir.MapEntry entry) {
+ Null visitMapLiteralEntry(ir.MapLiteralEntry entry) {
visitNode(entry.key);
visitNode(entry.value);
}
diff --git a/pkg/compiler/lib/src/kernel/dart2js_target.dart b/pkg/compiler/lib/src/kernel/dart2js_target.dart
index 96cd1ad..c10c0e9 100644
--- a/pkg/compiler/lib/src/kernel/dart2js_target.dart
+++ b/pkg/compiler/lib/src/kernel/dart2js_target.dart
@@ -185,9 +185,9 @@
new ir.ListLiteral(
arguments.types.map((t) => new ir.TypeLiteral(t)).toList()),
new ir.ListLiteral(arguments.positional)..fileOffset = offset,
- new ir.MapLiteral(new List<ir.MapEntry>.from(
+ new ir.MapLiteral(new List<ir.MapLiteralEntry>.from(
arguments.named.map((ir.NamedExpression arg) {
- return new ir.MapEntry(
+ return new ir.MapLiteralEntry(
new ir.StringLiteral(arg.name)..fileOffset = arg.fileOffset,
arg.value)
..fileOffset = arg.fileOffset;
diff --git a/pkg/compiler/lib/src/ssa/builder_kernel.dart b/pkg/compiler/lib/src/ssa/builder_kernel.dart
index c9a40cd..498c686 100644
--- a/pkg/compiler/lib/src/ssa/builder_kernel.dart
+++ b/pkg/compiler/lib/src/ssa/builder_kernel.dart
@@ -3214,7 +3214,7 @@
// The map literal constructors take the key-value pairs as a List
List<HInstruction> constructorArgs = <HInstruction>[];
- for (ir.MapEntry mapEntry in node.entries) {
+ for (ir.MapLiteralEntry mapEntry in node.entries) {
mapEntry.key.accept(this);
constructorArgs.add(pop());
mapEntry.value.accept(this);
@@ -3287,7 +3287,7 @@
}
@override
- void visitMapEntry(ir.MapEntry node) {
+ void visitMapLiteralEntry(ir.MapLiteralEntry node) {
failedAt(CURRENT_ELEMENT_SPANNABLE,
'ir.MapEntry should be handled in visitMapLiteral');
}
@@ -4269,7 +4269,7 @@
selector = new Selector.indexSet();
} else {
if (namedArgumentsLiteral is ir.MapLiteral) {
- namedArgumentsLiteral.entries.forEach((ir.MapEntry entry) {
+ namedArgumentsLiteral.entries.forEach((ir.MapLiteralEntry entry) {
String key = _readStringLiteral(entry.key);
namedArguments[key] = entry.value;
});
diff --git a/pkg/dev_compiler/lib/src/kernel/compiler.dart b/pkg/dev_compiler/lib/src/kernel/compiler.dart
index cba549e..791ada2 100644
--- a/pkg/dev_compiler/lib/src/kernel/compiler.dart
+++ b/pkg/dev_compiler/lib/src/kernel/compiler.dart
@@ -10,7 +10,7 @@
import 'package:kernel/class_hierarchy.dart';
import 'package:kernel/core_types.dart';
-import 'package:kernel/kernel.dart' hide MapEntry;
+import 'package:kernel/kernel.dart';
import 'package:kernel/library_index.dart';
import 'package:kernel/src/dart_type_equivalence.dart';
import 'package:kernel/type_algebra.dart';
diff --git a/pkg/dev_compiler/lib/src/kernel/target.dart b/pkg/dev_compiler/lib/src/kernel/target.dart
index c585aa4..473b404 100644
--- a/pkg/dev_compiler/lib/src/kernel/target.dart
+++ b/pkg/dev_compiler/lib/src/kernel/target.dart
@@ -217,7 +217,7 @@
if (arguments.named.isNotEmpty)
MapLiteral([
for (var n in arguments.named)
- MapEntry(SymbolLiteral(n.name), n.value)
+ MapLiteralEntry(SymbolLiteral(n.name), n.value)
], keyType: coreTypes.symbolLegacyRawType),
];
return createInvocation('method', ctorArgs);
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index e7d9500..2164ae6 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -2919,7 +2919,7 @@
} else {
assert(conditionStatement is EmptyStatement);
}
- if (entry is MapEntry) {
+ if (entry is MapLiteralEntry) {
ForMapEntry result = forest.createForMapEntry(
offsetForToken(forToken), variables, condition, updates, entry);
typeInferrer?.assignedVariables?.endNode(result);
@@ -3115,7 +3115,7 @@
List<Expression> expressions = <Expression>[];
if (setOrMapEntries != null) {
for (dynamic entry in setOrMapEntries) {
- if (entry is MapEntry) {
+ if (entry is MapLiteralEntry) {
// TODO(danrubel): report the error on the colon
addProblem(fasta.templateExpectedButGot.withArguments(','),
entry.fileOffset, 1);
@@ -3163,7 +3163,7 @@
// TODO(danrubel): Revise this to handle control flow and spread
if (elem == invalidCollectionElement) {
setOrMapEntries.removeAt(i);
- } else if (elem is MapEntry) {
+ } else if (elem is MapLiteralEntry) {
setOrMapEntries[i] = elem;
} else {
setOrMapEntries[i] = toValue(elem);
@@ -3186,7 +3186,7 @@
: null;
for (int i = 0; i < setOrMapEntries.length; ++i) {
- if (setOrMapEntries[i] is! MapEntry &&
+ if (setOrMapEntries[i] is! MapLiteralEntry &&
!isConvertibleToMapEntry(setOrMapEntries[i])) {
hasSetEntry = true;
}
@@ -3201,10 +3201,10 @@
if (isSet) {
buildLiteralSet(typeArguments, constKeyword, leftBrace, setOrMapEntries);
} else {
- List<MapEntry> mapEntries =
- new List<MapEntry>.filled(setOrMapEntries.length, null);
+ List<MapLiteralEntry> mapEntries =
+ new List<MapLiteralEntry>.filled(setOrMapEntries.length, null);
for (int i = 0; i < setOrMapEntries.length; ++i) {
- if (setOrMapEntries[i] is MapEntry) {
+ if (setOrMapEntries[i] is MapLiteralEntry) {
mapEntries[i] = setOrMapEntries[i];
} else {
mapEntries[i] = convertToMapEntry(setOrMapEntries[i], this,
@@ -3237,7 +3237,7 @@
}
void buildLiteralMap(List<UnresolvedType> typeArguments, Token constKeyword,
- Token leftBrace, List<MapEntry> entries) {
+ Token leftBrace, List<MapLiteralEntry> entries) {
DartType keyType;
DartType valueType;
if (typeArguments != null) {
@@ -4780,7 +4780,7 @@
// Resolve the top of the stack so that if it's a delayed assignment it
// happens before we go into the else block.
Object node = pop();
- if (node is! MapEntry) node = toValue(node);
+ if (node is! MapLiteralEntry) node = toValue(node);
// This is matched by the call to [beginNode] in
// [handleThenControlFlow] and by the call to [storeInfo] in
// [endIfElseControlFlow].
@@ -4797,7 +4797,7 @@
transformCollections = true;
TreeNode node;
- if (entry is MapEntry) {
+ if (entry is MapLiteralEntry) {
node = forest.createIfMapEntry(
offsetForToken(ifToken), toValue(condition), entry);
} else {
@@ -4822,13 +4822,13 @@
transformCollections = true;
TreeNode node;
- if (thenEntry is MapEntry) {
- if (elseEntry is MapEntry) {
+ if (thenEntry is MapLiteralEntry) {
+ if (elseEntry is MapLiteralEntry) {
node = forest.createIfMapEntry(
offsetForToken(ifToken), toValue(condition), thenEntry, elseEntry);
} else if (elseEntry is ControlFlowElement) {
- MapEntry elseMapEntry =
- elseEntry.toMapEntry(typeInferrer?.assignedVariables?.reassignInfo);
+ MapLiteralEntry elseMapEntry = elseEntry
+ .toMapLiteralEntry(typeInferrer?.assignedVariables?.reassignInfo);
if (elseMapEntry != null) {
node = forest.createIfMapEntry(offsetForToken(ifToken),
toValue(condition), thenEntry, elseMapEntry);
@@ -4836,7 +4836,7 @@
int offset = elseEntry is Expression
? elseEntry.fileOffset
: offsetForToken(ifToken);
- node = new MapEntry(
+ node = new MapLiteralEntry(
buildProblem(
fasta.messageCantDisambiguateAmbiguousInformation, offset, 1),
new NullLiteral())
@@ -4846,16 +4846,16 @@
int offset = elseEntry is Expression
? elseEntry.fileOffset
: offsetForToken(ifToken);
- node = new MapEntry(
+ node = new MapLiteralEntry(
buildProblem(fasta.templateExpectedAfterButGot.withArguments(':'),
offset, 1),
new NullLiteral())
..fileOffset = offsetForToken(ifToken);
}
- } else if (elseEntry is MapEntry) {
+ } else if (elseEntry is MapLiteralEntry) {
if (thenEntry is ControlFlowElement) {
- MapEntry thenMapEntry =
- thenEntry.toMapEntry(typeInferrer?.assignedVariables?.reassignInfo);
+ MapLiteralEntry thenMapEntry = thenEntry
+ .toMapLiteralEntry(typeInferrer?.assignedVariables?.reassignInfo);
if (thenMapEntry != null) {
node = forest.createIfMapEntry(offsetForToken(ifToken),
toValue(condition), thenMapEntry, elseEntry);
@@ -4863,7 +4863,7 @@
int offset = thenEntry is Expression
? thenEntry.fileOffset
: offsetForToken(ifToken);
- node = new MapEntry(
+ node = new MapLiteralEntry(
buildProblem(
fasta.messageCantDisambiguateAmbiguousInformation, offset, 1),
new NullLiteral())
@@ -4873,7 +4873,7 @@
int offset = thenEntry is Expression
? thenEntry.fileOffset
: offsetForToken(ifToken);
- node = new MapEntry(
+ node = new MapLiteralEntry(
buildProblem(fasta.templateExpectedAfterButGot.withArguments(':'),
offset, 1),
new NullLiteral())
@@ -5257,7 +5257,7 @@
typeInferrer?.assignedVariables?.pushNode(assignedVariablesNodeInfo);
VariableDeclaration variable = elements.variable;
Expression problem = elements.expressionProblem;
- if (entry is MapEntry) {
+ if (entry is MapLiteralEntry) {
ForInMapEntry result = forest.createForInMapEntry(
offsetForToken(forToken),
variable,
diff --git a/pkg/front_end/lib/src/fasta/kernel/collections.dart b/pkg/front_end/lib/src/fasta/kernel/collections.dart
index b29d126..c4b3d01 100644
--- a/pkg/front_end/lib/src/fasta/kernel/collections.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/collections.dart
@@ -45,14 +45,15 @@
R accept1<R, A>(ExpressionVisitor1<R, A> v, A arg) =>
v.defaultExpression(this, arg);
- /// Returns this control flow element as a [MapEntry], or `null` if this
- /// control flow element cannot be converted into a [MapEntry].
+ /// Returns this control flow element as a [MapLiteralEntry], or `null` if
+ /// this control flow element cannot be converted into a [MapLiteralEntry].
///
/// [onConvertElement] is called when a [ForElement], [ForInElement], or
/// [IfElement] is converted to a [ForMapEntry], [ForInMapEntry], or
/// [IfMapEntry], respectively.
// TODO(johnniwinther): Merge this with [convertToMapEntry].
- MapEntry toMapEntry(void onConvertElement(TreeNode from, TreeNode to));
+ MapLiteralEntry toMapLiteralEntry(
+ void onConvertElement(TreeNode from, TreeNode to));
}
/// A spread element in a list or set literal.
@@ -92,7 +93,8 @@
}
@override
- SpreadMapEntry toMapEntry(void onConvertElement(TreeNode from, TreeNode to)) {
+ SpreadMapEntry toMapLiteralEntry(
+ void onConvertElement(TreeNode from, TreeNode to)) {
return new SpreadMapEntry(expression, isNullAware)..fileOffset = fileOffset;
}
@@ -163,18 +165,19 @@
}
@override
- MapEntry toMapEntry(void onConvertElement(TreeNode from, TreeNode to)) {
- MapEntry thenEntry;
+ MapLiteralEntry toMapLiteralEntry(
+ void onConvertElement(TreeNode from, TreeNode to)) {
+ MapLiteralEntry thenEntry;
if (then is ControlFlowElement) {
ControlFlowElement thenElement = then;
- thenEntry = thenElement.toMapEntry(onConvertElement);
+ thenEntry = thenElement.toMapLiteralEntry(onConvertElement);
}
if (thenEntry == null) return null;
- MapEntry otherwiseEntry;
+ MapLiteralEntry otherwiseEntry;
if (otherwise != null) {
if (otherwise is ControlFlowElement) {
ControlFlowElement otherwiseElement = otherwise;
- otherwiseEntry = otherwiseElement.toMapEntry(onConvertElement);
+ otherwiseEntry = otherwiseElement.toMapLiteralEntry(onConvertElement);
}
if (otherwiseEntry == null) return null;
}
@@ -253,11 +256,12 @@
}
@override
- MapEntry toMapEntry(void onConvertElement(TreeNode from, TreeNode to)) {
- MapEntry bodyEntry;
+ MapLiteralEntry toMapLiteralEntry(
+ void onConvertElement(TreeNode from, TreeNode to)) {
+ MapLiteralEntry bodyEntry;
if (body is ControlFlowElement) {
ControlFlowElement bodyElement = body;
- bodyEntry = bodyElement.toMapEntry(onConvertElement);
+ bodyEntry = bodyElement.toMapLiteralEntry(onConvertElement);
}
if (bodyEntry == null) return null;
ForMapEntry result =
@@ -369,11 +373,12 @@
}
@override
- MapEntry toMapEntry(void onConvertElement(TreeNode from, TreeNode to)) {
- MapEntry bodyEntry;
+ MapLiteralEntry toMapLiteralEntry(
+ void onConvertElement(TreeNode from, TreeNode to)) {
+ MapLiteralEntry bodyEntry;
if (body is ControlFlowElement) {
ControlFlowElement bodyElement = body;
- bodyEntry = bodyElement.toMapEntry(onConvertElement);
+ bodyEntry = bodyElement.toMapLiteralEntry(onConvertElement);
}
if (bodyEntry == null) return null;
ForInMapEntry result = new ForInMapEntry(variable, iterable,
@@ -395,7 +400,7 @@
}
}
-mixin ControlFlowMapEntry implements MapEntry {
+mixin ControlFlowMapEntry implements MapLiteralEntry {
@override
Expression get key {
throw new UnsupportedError('ControlFlowMapEntry.key getter');
@@ -483,8 +488,8 @@
/// An 'if' element in a map literal.
class IfMapEntry extends TreeNode with ControlFlowMapEntry {
Expression condition;
- MapEntry then;
- MapEntry otherwise;
+ MapLiteralEntry then;
+ MapLiteralEntry otherwise;
IfMapEntry(this.condition, this.then, this.otherwise) {
condition?.parent = this;
@@ -522,11 +527,11 @@
condition?.parent = this;
}
if (then != null) {
- then = v.transformOrRemove(then, dummyMapEntry);
+ then = v.transformOrRemove(then, dummyMapLiteralEntry);
then?.parent = this;
}
if (otherwise != null) {
- otherwise = v.transformOrRemove(otherwise, dummyMapEntry);
+ otherwise = v.transformOrRemove(otherwise, dummyMapLiteralEntry);
otherwise?.parent = this;
}
}
@@ -547,7 +552,7 @@
final List<VariableDeclaration> variables; // May be empty, but not null.
Expression condition; // May be null.
final List<Expression> updates; // May be empty, but not null.
- MapEntry body;
+ MapLiteralEntry body;
ForMapEntry(this.variables, this.condition, this.updates, this.body) {
setParents(variables, this);
@@ -587,7 +592,7 @@
}
v.transformExpressionList(updates, this);
if (body != null) {
- body = v.transformOrRemove(body, dummyMapEntry);
+ body = v.transformOrRemove(body, dummyMapLiteralEntry);
body?.parent = this;
}
}
@@ -609,7 +614,7 @@
Expression iterable;
Expression syntheticAssignment; // May be null.
Statement expressionEffects; // May be null.
- MapEntry body;
+ MapLiteralEntry body;
Expression problem; // May be null.
bool isAsync; // True if this is an 'await for' loop.
@@ -685,7 +690,7 @@
expressionEffects?.parent = this;
}
if (body != null) {
- body = v.transformOrRemove(body, dummyMapEntry);
+ body = v.transformOrRemove(body, dummyMapLiteralEntry);
body?.parent = this;
}
if (problem != null) {
@@ -712,7 +717,7 @@
/// [onConvertMapEntry] is called when a [ForMapEntry], [ForInMapEntry], or
/// [IfMapEntry] is converted to a [ForElement], [ForInElement], or [IfElement],
/// respectively.
-Expression convertToElement(MapEntry entry, InferenceHelper helper,
+Expression convertToElement(MapLiteralEntry entry, InferenceHelper helper,
void onConvertMapEntry(TreeNode from, TreeNode to)) {
if (entry is SpreadMapEntry) {
return new SpreadElement(entry.expression, entry.isNullAware)
@@ -780,14 +785,14 @@
return false;
}
-/// Convert [element] to a [MapEntry], if possible. If [element] cannot be
-/// converted an error reported through [helper] and a map entry holding an
+/// Convert [element] to a [MapLiteralEntry], if possible. If [element] cannot
+/// be converted an error reported through [helper] and a map entry holding an
/// invalid expression is returned.
///
/// [onConvertElement] is called when a [ForElement], [ForInElement], or
/// [IfElement] is converted to a [ForMapEntry], [ForInMapEntry], or
/// [IfMapEntry], respectively.
-MapEntry convertToMapEntry(Expression element, InferenceHelper helper,
+MapLiteralEntry convertToMapEntry(Expression element, InferenceHelper helper,
void onConvertElement(TreeNode from, TreeNode to)) {
if (element is SpreadElement) {
return new SpreadMapEntry(element.expression, element.isNullAware)
@@ -827,7 +832,7 @@
onConvertElement(element, result);
return result;
}
- return new MapEntry(
+ return new MapLiteralEntry(
helper.buildProblem(
templateExpectedAfterButGot.withArguments(':'),
element.fileOffset,
diff --git a/pkg/front_end/lib/src/fasta/kernel/constant_collection_builders.dart b/pkg/front_end/lib/src/fasta/kernel/constant_collection_builders.dart
index 6d95ecf..a11857d 100644
--- a/pkg/front_end/lib/src/fasta/kernel/constant_collection_builders.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/constant_collection_builders.dart
@@ -228,7 +228,7 @@
///
/// Returns [null] on success and an error-"constant" on failure, as such the
/// return value should be checked.
- AbortConstant add(MapEntry element) {
+ AbortConstant add(MapLiteralEntry element) {
Constant key = evaluator._evaluateSubexpression(element.key);
if (key is AbortConstant) return key;
Constant value = evaluator._evaluateSubexpression(element.value);
@@ -236,9 +236,10 @@
if (evaluator.shouldBeUnevaluated) {
parts.add(evaluator.unevaluated(
element.key,
- new MapLiteral(
- [new MapEntry(evaluator.extract(key), evaluator.extract(value))],
- isConst: true)));
+ new MapLiteral([
+ new MapLiteralEntry(
+ evaluator.extract(key), evaluator.extract(value))
+ ], isConst: true)));
return null;
} else {
return addConstant(key, value, element.key, element.value);
diff --git a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
index 35a2f67..ea72f96 100644
--- a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
@@ -1413,7 +1413,7 @@
// We therefore reset it before each call, combine it and set it correctly
// at the end.
bool wasOrBecameUnevaluated = seenUnevaluatedChild;
- for (MapEntry element in node.entries) {
+ for (MapLiteralEntry element in node.entries) {
seenUnevaluatedChild = false;
AbortConstant error = builder.add(element);
wasOrBecameUnevaluated |= seenUnevaluatedChild;
diff --git a/pkg/front_end/lib/src/fasta/kernel/forest.dart b/pkg/front_end/lib/src/fasta/kernel/forest.dart
index 9be6294..9839741 100644
--- a/pkg/front_end/lib/src/fasta/kernel/forest.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/forest.dart
@@ -154,7 +154,7 @@
/// if the second type argument cannot be resolved. The list of [entries] is a
/// list of the representations of the map entries.
MapLiteral createMapLiteral(int fileOffset, DartType keyType,
- DartType valueType, List<MapEntry> entries,
+ DartType valueType, List<MapLiteralEntry> entries,
{bool isConst}) {
assert(fileOffset != null);
assert(isConst != null);
@@ -193,9 +193,10 @@
/// [fileOffset]. The [key] is the representation of the expression used to
/// compute the key. The [value] is the representation of the expression used
/// to compute the value.
- MapEntry createMapEntry(int fileOffset, Expression key, Expression value) {
+ MapLiteralEntry createMapEntry(
+ int fileOffset, Expression key, Expression value) {
assert(fileOffset != null);
- return new MapEntry(key, value)..fileOffset = fileOffset;
+ return new MapLiteralEntry(key, value)..fileOffset = fileOffset;
}
Expression createLoadLibrary(
@@ -234,8 +235,9 @@
return new IfElement(condition, then, otherwise)..fileOffset = fileOffset;
}
- MapEntry createIfMapEntry(int fileOffset, Expression condition, MapEntry then,
- [MapEntry otherwise]) {
+ MapLiteralEntry createIfMapEntry(
+ int fileOffset, Expression condition, MapLiteralEntry then,
+ [MapLiteralEntry otherwise]) {
assert(fileOffset != null);
return new IfMapEntry(condition, then, otherwise)..fileOffset = fileOffset;
}
@@ -251,12 +253,12 @@
..fileOffset = fileOffset;
}
- MapEntry createForMapEntry(
+ MapLiteralEntry createForMapEntry(
int fileOffset,
List<VariableDeclaration> variables,
Expression condition,
List<Expression> updates,
- MapEntry body) {
+ MapLiteralEntry body) {
assert(fileOffset != null);
return new ForMapEntry(variables, condition, updates, body)
..fileOffset = fileOffset;
@@ -278,13 +280,13 @@
..fileOffset = fileOffset;
}
- MapEntry createForInMapEntry(
+ MapLiteralEntry createForInMapEntry(
int fileOffset,
VariableDeclaration variable,
Expression iterable,
Expression synthesizedAssignment,
Statement expressionEffects,
- MapEntry body,
+ MapLiteralEntry body,
Expression problem,
{bool isAsync: false}) {
assert(fileOffset != null);
diff --git a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
index 38e815c..8324530 100644
--- a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
@@ -1934,8 +1934,8 @@
// actualTypesForSet, only inferMapEntry adds exactly one element to that
// list: the actual type of the iterable spread elements in case the map
// literal will be disambiguated as a set literal later.
- MapEntry inferMapEntry(
- MapEntry entry,
+ MapLiteralEntry inferMapEntry(
+ MapLiteralEntry entry,
TreeNode parent,
DartType inferredKeyType,
DartType inferredValueType,
@@ -1968,12 +1968,12 @@
DartType actualElementType =
getSpreadElementType(spreadType, spreadTypeBound, entry.isNullAware);
- MapEntry replacement = entry;
+ MapLiteralEntry replacement = entry;
if (typeChecksNeeded) {
if (actualKeyType == null) {
if (inferrer.coreTypes.isNull(spreadTypeBound) &&
!entry.isNullAware) {
- replacement = new MapEntry(
+ replacement = new MapLiteralEntry(
inferrer.helper.buildProblem(
templateNonNullAwareSpreadIsNull.withArguments(
spreadType, inferrer.isNonNullableByDefault),
@@ -2014,7 +2014,7 @@
entry,
(type) => !type.isPotentiallyNullable));
_copyNonPromotionReasonToReplacement(entry, problem);
- replacement = new MapEntry(problem, new NullLiteral())
+ replacement = new MapLiteralEntry(problem, new NullLiteral())
..fileOffset = entry.fileOffset;
}
} else if (spreadTypeBound is InterfaceType) {
@@ -2128,7 +2128,7 @@
if (keyError != null || valueError != null) {
keyError ??= new NullLiteral();
valueError ??= new NullLiteral();
- replacement = new MapEntry(keyError, valueError)
+ replacement = new MapLiteralEntry(keyError, valueError)
..fileOffset = entry.fileOffset;
}
}
@@ -2181,7 +2181,7 @@
// Note that this recursive invocation of inferMapEntry will add two types
// to actualTypes; they are the actual types of the current invocation if
// the 'else' branch is empty.
- MapEntry then = inferMapEntry(
+ MapLiteralEntry then = inferMapEntry(
entry.then,
entry,
inferredKeyType,
@@ -2194,7 +2194,7 @@
inferenceNeeded,
typeChecksNeeded);
entry.then = then..parent = entry;
- MapEntry otherwise;
+ MapLiteralEntry otherwise;
if (entry.otherwise != null) {
inferrer.flowAnalysis.ifStatement_elseBegin();
// We need to modify the actual types added in the recursive call to
@@ -2282,7 +2282,7 @@
}
inferrer.flowAnalysis.for_bodyBegin(null, entry.condition);
// Actual types are added by the recursive call.
- MapEntry body = inferMapEntry(
+ MapLiteralEntry body = inferMapEntry(
entry.body,
entry,
inferredKeyType,
@@ -2334,7 +2334,7 @@
entry.problem = problemResult.expression..parent = entry;
}
// Actual types are added by the recursive call.
- MapEntry body = inferMapEntry(
+ MapLiteralEntry body = inferMapEntry(
entry.body,
entry,
inferredKeyType,
@@ -2375,16 +2375,16 @@
}
}
- MapEntry checkMapEntry(
- MapEntry entry,
+ MapLiteralEntry checkMapEntry(
+ MapLiteralEntry entry,
DartType keyType,
DartType valueType,
Map<TreeNode, DartType> inferredSpreadTypes,
Map<Expression, DartType> inferredConditionTypes) {
// It's disambiguated as a map literal.
- MapEntry replacement = entry;
+ MapLiteralEntry replacement = entry;
if (iterableSpreadOffset != null) {
- replacement = new MapEntry(
+ replacement = new MapLiteralEntry(
inferrer.helper.buildProblem(
templateSpreadMapEntryTypeMismatch.withArguments(
iterableSpreadType, inferrer.isNonNullableByDefault),
@@ -2404,12 +2404,12 @@
entry.expression = expression..parent = entry;
}
} else if (entry is IfMapEntry) {
- MapEntry then = checkMapEntry(entry.then, keyType, valueType,
+ MapLiteralEntry then = checkMapEntry(entry.then, keyType, valueType,
inferredSpreadTypes, inferredConditionTypes);
entry.then = then..parent = entry;
if (entry.otherwise != null) {
- MapEntry otherwise = checkMapEntry(entry.otherwise, keyType, valueType,
- inferredSpreadTypes, inferredConditionTypes);
+ MapLiteralEntry otherwise = checkMapEntry(entry.otherwise, keyType,
+ valueType, inferredSpreadTypes, inferredConditionTypes);
entry.otherwise = otherwise..parent = entry;
}
} else if (entry is ForMapEntry) {
@@ -2421,11 +2421,11 @@
entry.condition);
entry.condition = condition..parent = entry;
}
- MapEntry body = checkMapEntry(entry.body, keyType, valueType,
+ MapLiteralEntry body = checkMapEntry(entry.body, keyType, valueType,
inferredSpreadTypes, inferredConditionTypes);
entry.body = body..parent = entry;
} else if (entry is ForInMapEntry) {
- MapEntry body = checkMapEntry(entry.body, keyType, valueType,
+ MapLiteralEntry body = checkMapEntry(entry.body, keyType, valueType,
inferredSpreadTypes, inferredConditionTypes);
entry.body = body..parent = entry;
} else {
@@ -2526,7 +2526,7 @@
<DartType>[inferredKeyType, inferredValueType]);
}
for (int index = 0; index < node.entries.length; ++index) {
- MapEntry entry = node.entries[index];
+ MapLiteralEntry entry = node.entries[index];
entry = inferMapEntry(
entry,
node,
@@ -2648,7 +2648,7 @@
}
if (typeChecksNeeded) {
for (int index = 0; index < node.entries.length; ++index) {
- MapEntry entry = checkMapEntry(node.entries[index], node.keyType,
+ MapLiteralEntry entry = checkMapEntry(node.entries[index], node.keyType,
node.valueType, inferredSpreadTypes, inferredConditionTypes);
node.entries[index] = entry..parent = node;
}
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
index 3282aea..06d76b7 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
@@ -47,7 +47,7 @@
ListLiteral,
LocalInitializer,
Location,
- MapEntry,
+ MapLiteralEntry,
MapLiteral,
Member,
MethodInvocation,
diff --git a/pkg/front_end/lib/src/fasta/kernel/transform_collections.dart b/pkg/front_end/lib/src/fasta/kernel/transform_collections.dart
index d017229..60ea42b 100644
--- a/pkg/front_end/lib/src/fasta/kernel/transform_collections.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/transform_collections.dart
@@ -459,7 +459,7 @@
}
void _translateEntry(
- MapEntry entry,
+ MapLiteralEntry entry,
InterfaceType receiverType,
DartType keyType,
DartType valueType,
@@ -480,7 +480,7 @@
}
}
- void _addNormalEntry(MapEntry entry, InterfaceType receiverType,
+ void _addNormalEntry(MapLiteralEntry entry, InterfaceType receiverType,
VariableDeclaration result, List<Statement> body) {
body.add(_createExpressionStatement(_createIndexSet(entry.fileOffset,
_createVariableGet(result), receiverType, entry.key, entry.value)));
@@ -741,7 +741,7 @@
// If there were no control-flow entries we are done.
if (i == node.entries.length) return node;
- MapLiteral makeLiteral(int fileOffset, List<MapEntry> entries) {
+ MapLiteral makeLiteral(int fileOffset, List<MapLiteralEntry> entries) {
return _createMapLiteral(
fileOffset, node.keyType, node.valueType, entries,
isConst: true);
@@ -749,13 +749,14 @@
// Build a concatenation node.
List<Expression> parts = [];
- List<MapEntry> currentPart = i > 0 ? node.entries.sublist(0, i) : null;
+ List<MapLiteralEntry> currentPart =
+ i > 0 ? node.entries.sublist(0, i) : null;
DartType collectionType = _typeEnvironment.mapType(
node.keyType, node.valueType, _currentLibrary.nonNullable);
for (; i < node.entries.length; ++i) {
- MapEntry entry = node.entries[i];
+ MapLiteralEntry entry = node.entries[i];
if (entry is SpreadMapEntry) {
if (currentPart != null) {
parts.add(makeLiteral(node.fileOffset, currentPart));
@@ -789,7 +790,7 @@
unhandled("${entry.runtimeType}", "_translateConstMap",
entry.fileOffset, getFileUri(entry));
} else {
- currentPart ??= <MapEntry>[];
+ currentPart ??= <MapLiteralEntry>[];
currentPart.add(entry.accept<TreeNode>(this));
}
}
@@ -846,7 +847,7 @@
}
MapLiteral _createMapLiteral(int fileOffset, DartType keyType,
- DartType valueType, List<MapEntry> entries,
+ DartType valueType, List<MapLiteralEntry> entries,
{bool isConst: false}) {
assert(fileOffset != null);
assert(fileOffset != TreeNode.noOffset);
diff --git a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
index 3276b83..0a1c8bb 100644
--- a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
@@ -16,7 +16,7 @@
import 'package:front_end/src/fasta/dill/dill_library_builder.dart'
show DillLibraryBuilder;
-import 'package:kernel/ast.dart' hide Combinator, MapEntry;
+import 'package:kernel/ast.dart' hide Combinator, MapLiteralEntry;
import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
index 8111748..ad072b3 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
@@ -4,14 +4,12 @@
// @dart = 2.9
-import 'dart:core' hide MapEntry;
-import 'dart:core' as core;
+import 'dart:core';
import 'package:_fe_analyzer_shared/src/flow_analysis/flow_analysis.dart';
import 'package:_fe_analyzer_shared/src/testing/id.dart';
import 'package:_fe_analyzer_shared/src/util/link.dart';
-import 'package:front_end/src/fasta/kernel/class_hierarchy_builder.dart';
import 'package:kernel/ast.dart';
import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
@@ -286,7 +284,7 @@
if (whyNotPromoted != null && whyNotPromoted.isNotEmpty) {
_WhyNotPromotedVisitor whyNotPromotedVisitor =
new _WhyNotPromotedVisitor(this);
- for (core.MapEntry<DartType, NonPromotionReason> entry
+ for (MapEntry<DartType, NonPromotionReason> entry
in whyNotPromoted.entries) {
if (!typeFilter(entry.key)) continue;
LocatedMessage message = entry.value.accept(whyNotPromotedVisitor);
diff --git a/pkg/front_end/test/id_tests/why_not_promoted_test.dart b/pkg/front_end/test/id_tests/why_not_promoted_test.dart
index 0b0b6ee..d339adc 100644
--- a/pkg/front_end/test/id_tests/why_not_promoted_test.dart
+++ b/pkg/front_end/test/id_tests/why_not_promoted_test.dart
@@ -14,7 +14,7 @@
import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart';
import 'package:front_end/src/testing/id_testing_helper.dart';
import 'package:front_end/src/testing/id_testing_utils.dart';
-import 'package:kernel/ast.dart' hide Variance, MapEntry;
+import 'package:kernel/ast.dart' hide Variance, MapLiteralEntry;
main(List<String> args) async {
Directory dataDir = new Directory.fromUri(
diff --git a/pkg/front_end/test/lint_test.status b/pkg/front_end/test/lint_test.status
index 4b2a34a..14ac1b5 100644
--- a/pkg/front_end/test/lint_test.status
+++ b/pkg/front_end/test/lint_test.status
@@ -36,10 +36,7 @@
front_end/lib/src/fasta/source/scope_listener/Exports: Fail
front_end/lib/src/fasta/source/source_class_builder/ImportsTwice: Fail
front_end/lib/src/fasta/source/value_kinds/ImportsTwice: Fail
-front_end/lib/src/fasta/type_inference/type_inferrer/ImportsTwice: Fail
front_end/lib/src/testing/id_testing_helper/Exports: Fail
-kernel/lib/ast/ImportsTwice: Fail
kernel/lib/ast/Exports: Fail
kernel/lib/kernel/Exports: Fail
kernel/lib/testing/type_parser_environment/ImportsTwice: Fail
-kernel/lib/text/ast_to_text/ImportsTwice: Fail
diff --git a/pkg/front_end/testcases/general/issue45700.dart b/pkg/front_end/testcases/general/issue45700.crash_dart
similarity index 100%
rename from pkg/front_end/testcases/general/issue45700.dart
rename to pkg/front_end/testcases/general/issue45700.crash_dart
diff --git a/pkg/front_end/testcases/general/issue45700.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue45700.crash_dart.textual_outline.expect
similarity index 100%
rename from pkg/front_end/testcases/general/issue45700.dart.textual_outline.expect
rename to pkg/front_end/testcases/general/issue45700.crash_dart.textual_outline.expect
diff --git a/pkg/front_end/testcases/general/issue45700.dart.weak.expect b/pkg/front_end/testcases/general/issue45700.crash_dart.weak.expect
similarity index 70%
rename from pkg/front_end/testcases/general/issue45700.dart.weak.expect
rename to pkg/front_end/testcases/general/issue45700.crash_dart.weak.expect
index e33f323..a03c56f 100644
--- a/pkg/front_end/testcases/general/issue45700.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue45700.crash_dart.weak.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/general/issue45700.dart:5:7: Error: Can't use a function type as supertype.
+// pkg/front_end/testcases/general/issue45700.crash_dart:5:7: Error: Can't use a function type as supertype.
// mixin M on Function() {}
// ^
//
diff --git a/pkg/front_end/testcases/general/issue45700.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue45700.crash_dart.weak.outline.expect
similarity index 70%
rename from pkg/front_end/testcases/general/issue45700.dart.weak.outline.expect
rename to pkg/front_end/testcases/general/issue45700.crash_dart.weak.outline.expect
index bca7ff6..2c993ea 100644
--- a/pkg/front_end/testcases/general/issue45700.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/issue45700.crash_dart.weak.outline.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/general/issue45700.dart:5:7: Error: Can't use a function type as supertype.
+// pkg/front_end/testcases/general/issue45700.crash_dart:5:7: Error: Can't use a function type as supertype.
// mixin M on Function() {}
// ^
//
diff --git a/pkg/front_end/testcases/general/issue45700.dart.weak.expect b/pkg/front_end/testcases/general/issue45700.crash_dart.weak.transformed.expect
similarity index 70%
copy from pkg/front_end/testcases/general/issue45700.dart.weak.expect
copy to pkg/front_end/testcases/general/issue45700.crash_dart.weak.transformed.expect
index e33f323..a03c56f 100644
--- a/pkg/front_end/testcases/general/issue45700.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue45700.crash_dart.weak.transformed.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/general/issue45700.dart:5:7: Error: Can't use a function type as supertype.
+// pkg/front_end/testcases/general/issue45700.crash_dart:5:7: Error: Can't use a function type as supertype.
// mixin M on Function() {}
// ^
//
diff --git a/pkg/front_end/testcases/general/issue45700.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue45700.dart.weak.transformed.expect
deleted file mode 100644
index e33f323..0000000
--- a/pkg/front_end/testcases/general/issue45700.dart.weak.transformed.expect
+++ /dev/null
@@ -1,14 +0,0 @@
-library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/general/issue45700.dart:5:7: Error: Can't use a function type as supertype.
-// mixin M on Function() {}
-// ^
-//
-import self as self;
-import "dart:core" as core;
-
-abstract class M extends core::Object /*isMixinDeclaration*/ {
-}
-static method main() → void {}
diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status
index ef59299..da0c0e1 100644
--- a/pkg/front_end/testcases/textual_outline.status
+++ b/pkg/front_end/testcases/textual_outline.status
@@ -65,7 +65,7 @@
general/issue42997: FormatterCrash
general/issue43363: FormatterCrash
general/issue45490: FormatterCrash
-general/issue45700: FormatterCrash
+general/issue45700.crash: FormatterCrash
general/many_errors: FormatterCrash
general/null_safety_invalid_experiment: FormatterCrash
general/null_safety_invalid_experiment_and_language_version: FormatterCrash
diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
index 029f7b9..9f0dc34 100644
--- a/pkg/kernel/lib/ast.dart
+++ b/pkg/kernel/lib/ast.dart
@@ -65,7 +65,6 @@
library kernel.ast;
import 'dart:core';
-import 'dart:core' as core show MapEntry;
import 'dart:collection' show ListBase;
import 'dart:convert' show utf8;
@@ -7892,7 +7891,7 @@
bool isConst;
DartType keyType; // Not null, defaults to DynamicType.
DartType valueType; // Not null, defaults to DynamicType.
- final List<MapEntry> entries;
+ final List<MapLiteralEntry> entries;
MapLiteral(this.entries,
{this.keyType: const DynamicType(),
@@ -7968,20 +7967,21 @@
}
}
-class MapEntry extends TreeNode {
+class MapLiteralEntry extends TreeNode {
Expression key;
Expression value;
- MapEntry(this.key, this.value) {
+ MapLiteralEntry(this.key, this.value) {
key.parent = this;
value.parent = this;
}
@override
- R accept<R>(TreeVisitor<R> v) => v.visitMapEntry(this);
+ R accept<R>(TreeVisitor<R> v) => v.visitMapLiteralEntry(this);
@override
- R accept1<R, A>(TreeVisitor1<R, A> v, A arg) => v.visitMapEntry(this, arg);
+ R accept1<R, A>(TreeVisitor1<R, A> v, A arg) =>
+ v.visitMapLiteralEntry(this, arg);
@override
void visitChildren(Visitor v) {
@@ -12954,7 +12954,7 @@
/// can't have metadata attached to them. Also, metadata is not saved on
/// Block nodes inside BlockExpressions.
static bool isSupported(Node node) {
- return !(node is MapEntry ||
+ return !(node is MapLiteralEntry ||
node is Catch ||
(node is Block && node.parent is BlockExpression));
}
@@ -13324,7 +13324,7 @@
// `-1` is used as a dummy default value.
-1);
int i = 0;
- for (core.MapEntry entry in map.entries) {
+ for (MapEntry entry in map.entries) {
entryHashes[i++] = combine(entry.key.hashCode, entry.value.hashCode);
}
entryHashes.sort();
@@ -13733,12 +13733,13 @@
/// constructor.
final TypeParameter dummyTypeParameter = new TypeParameter();
-/// Non-nullable [MapEntry] dummy value.
+/// Non-nullable [MapLiteralEntry] dummy value.
///
/// This is used as the removal sentinel in [RemovingTransformer] and can be
/// used for instance as a dummy initial value for the `List.filled`
/// constructor.
-final MapEntry dummyMapEntry = new MapEntry(dummyExpression, dummyExpression);
+final MapLiteralEntry dummyMapLiteralEntry =
+ new MapLiteralEntry(dummyExpression, dummyExpression);
/// Non-nullable [Arguments] dummy value.
///
diff --git a/pkg/kernel/lib/binary/ast_from_binary.dart b/pkg/kernel/lib/binary/ast_from_binary.dart
index adc7012..2f49538 100644
--- a/pkg/kernel/lib/binary/ast_from_binary.dart
+++ b/pkg/kernel/lib/binary/ast_from_binary.dart
@@ -2496,14 +2496,14 @@
return new ConstantExpression(constant, type)..fileOffset = offset;
}
- List<MapEntry> readMapEntryList() {
+ List<MapLiteralEntry> readMapEntryList() {
int length = readUInt30();
- return new List<MapEntry>.generate(length, (_) => readMapEntry(),
+ return new List<MapLiteralEntry>.generate(length, (_) => readMapEntry(),
growable: useGrowableLists);
}
- MapEntry readMapEntry() {
- return new MapEntry(readExpression(), readExpression());
+ MapLiteralEntry readMapEntry() {
+ return new MapLiteralEntry(readExpression(), readExpression());
}
List<Statement> readStatementList() {
diff --git a/pkg/kernel/lib/binary/ast_to_binary.dart b/pkg/kernel/lib/binary/ast_to_binary.dart
index c2c35282..7252dcc 100644
--- a/pkg/kernel/lib/binary/ast_to_binary.dart
+++ b/pkg/kernel/lib/binary/ast_to_binary.dart
@@ -1932,7 +1932,7 @@
}
@override
- void visitMapEntry(MapEntry node) {
+ void visitMapLiteralEntry(MapLiteralEntry node) {
// Note: there is no tag on MapEntry
writeNode(node.key);
writeNode(node.value);
diff --git a/pkg/kernel/lib/class_hierarchy.dart b/pkg/kernel/lib/class_hierarchy.dart
index 09d259d..e1a99a8 100644
--- a/pkg/kernel/lib/class_hierarchy.dart
+++ b/pkg/kernel/lib/class_hierarchy.dart
@@ -8,7 +8,7 @@
import 'dart:math';
import 'dart:typed_data';
-import 'ast.dart' hide MapEntry;
+import 'ast.dart';
import 'core_types.dart';
import 'type_algebra.dart';
import 'src/heap.dart';
diff --git a/pkg/kernel/lib/clone.dart b/pkg/kernel/lib/clone.dart
index 62b04d9..da80fd1 100644
--- a/pkg/kernel/lib/clone.dart
+++ b/pkg/kernel/lib/clone.dart
@@ -317,8 +317,8 @@
isConst: node.isConst);
}
- visitMapEntry(MapEntry node) {
- return new MapEntry(clone(node.key), clone(node.value));
+ visitMapLiteralEntry(MapLiteralEntry node) {
+ return new MapLiteralEntry(clone(node.key), clone(node.value));
}
visitAwaitExpression(AwaitExpression node) {
diff --git a/pkg/kernel/lib/src/bounds_checks.dart b/pkg/kernel/lib/src/bounds_checks.dart
index d1cdd54..b3e9a44 100644
--- a/pkg/kernel/lib/src/bounds_checks.dart
+++ b/pkg/kernel/lib/src/bounds_checks.dart
@@ -4,7 +4,7 @@
import 'package:kernel/src/replacement_visitor.dart';
-import '../ast.dart' hide MapEntry;
+import '../ast.dart';
import '../type_algebra.dart' show Substitution, substitute;
diff --git a/pkg/kernel/lib/src/printer.dart b/pkg/kernel/lib/src/printer.dart
index b184440..3d28d32 100644
--- a/pkg/kernel/lib/src/printer.dart
+++ b/pkg/kernel/lib/src/printer.dart
@@ -223,7 +223,7 @@
node.toTextInternal(this);
}
- void writeMapEntry(MapEntry node) {
+ void writeMapEntry(MapLiteralEntry node) {
node.toTextInternal(this);
}
diff --git a/pkg/kernel/lib/text/ast_to_text.dart b/pkg/kernel/lib/text/ast_to_text.dart
index 5066b0a..dc1c1d6 100644
--- a/pkg/kernel/lib/text/ast_to_text.dart
+++ b/pkg/kernel/lib/text/ast_to_text.dart
@@ -4,9 +4,7 @@
library kernel.ast_to_text;
-import 'dart:core' hide MapEntry;
-import 'dart:core' as core show MapEntry;
-
+import 'dart:core';
import 'dart:convert' show json;
import '../ast.dart';
@@ -1787,7 +1785,7 @@
writeSymbol('}');
}
- visitMapEntry(MapEntry node) {
+ visitMapLiteralEntry(MapLiteralEntry node) {
writeExpression(node.key);
writeComma(':');
writeExpression(node.value);
@@ -2636,8 +2634,7 @@
}
writeSymbol(' {');
- writeList(node.fieldValues.entries,
- (core.MapEntry<Reference, Constant> entry) {
+ writeList(node.fieldValues.entries, (MapEntry<Reference, Constant> entry) {
if (entry.key.node != null) {
writeWord('${entry.key.asField.name.text}');
} else {
diff --git a/pkg/kernel/lib/text/text_serializer.dart b/pkg/kernel/lib/text/text_serializer.dart
index ac705f2..a9ddadc 100644
--- a/pkg/kernel/lib/text/text_serializer.dart
+++ b/pkg/kernel/lib/text/text_serializer.dart
@@ -372,7 +372,7 @@
List<Expression> entries =
new List.filled(2 * expression.entries.length, dummyExpression);
for (int from = 0, to = 0; from < expression.entries.length; ++from) {
- MapEntry entry = expression.entries[from];
+ MapLiteralEntry entry = expression.entries[from];
entries[to++] = entry.key;
entries[to++] = entry.value;
}
@@ -380,10 +380,10 @@
}
MapLiteral wrapMapLiteral(Tuple3<DartType, DartType, List<Expression>> tuple) {
- List<MapEntry> entries =
- new List.filled(tuple.third.length ~/ 2, dummyMapEntry);
+ List<MapLiteralEntry> entries =
+ new List.filled(tuple.third.length ~/ 2, dummyMapLiteralEntry);
for (int from = 0, to = 0; to < entries.length; ++to) {
- entries[to] = new MapEntry(tuple.third[from++], tuple.third[from++]);
+ entries[to] = new MapLiteralEntry(tuple.third[from++], tuple.third[from++]);
}
return new MapLiteral(entries,
keyType: tuple.first, valueType: tuple.second, isConst: false);
@@ -397,10 +397,10 @@
MapLiteral wrapConstMapLiteral(
Tuple3<DartType, DartType, List<Expression>> tuple) {
- List<MapEntry> entries =
- new List.filled(tuple.third.length ~/ 2, dummyMapEntry);
+ List<MapLiteralEntry> entries =
+ new List.filled(tuple.third.length ~/ 2, dummyMapLiteralEntry);
for (int from = 0, to = 0; to < entries.length; ++to) {
- entries[to] = new MapEntry(tuple.third[from++], tuple.third[from++]);
+ entries[to] = new MapLiteralEntry(tuple.third[from++], tuple.third[from++]);
}
return new MapLiteral(entries,
keyType: tuple.first, valueType: tuple.second, isConst: true);
diff --git a/pkg/kernel/lib/type_checker.dart b/pkg/kernel/lib/type_checker.dart
index d078850..e8fa6a3 100644
--- a/pkg/kernel/lib/type_checker.dart
+++ b/pkg/kernel/lib/type_checker.dart
@@ -550,7 +550,7 @@
@override
DartType visitMapLiteral(MapLiteral node) {
- for (MapEntry entry in node.entries) {
+ for (MapLiteralEntry entry in node.entries) {
entry.key = checkAndDowncastExpression(entry.key, node.keyType);
entry.value = checkAndDowncastExpression(entry.value, node.valueType);
}
diff --git a/pkg/kernel/lib/visitor.dart b/pkg/kernel/lib/visitor.dart
index c40fde0..b9ca9ac 100644
--- a/pkg/kernel/lib/visitor.dart
+++ b/pkg/kernel/lib/visitor.dart
@@ -319,7 +319,7 @@
R visitNamedExpression(NamedExpression node) => defaultTreeNode(node);
R visitSwitchCase(SwitchCase node) => defaultTreeNode(node);
R visitCatch(Catch node) => defaultTreeNode(node);
- R visitMapEntry(MapEntry node) => defaultTreeNode(node);
+ R visitMapLiteralEntry(MapLiteralEntry node) => defaultTreeNode(node);
R visitComponent(Component node) => defaultTreeNode(node);
}
@@ -510,7 +510,8 @@
defaultTreeNode(node, arg);
R visitSwitchCase(SwitchCase node, A arg) => defaultTreeNode(node, arg);
R visitCatch(Catch node, A arg) => defaultTreeNode(node, arg);
- R visitMapEntry(MapEntry node, A arg) => defaultTreeNode(node, arg);
+ R visitMapLiteralEntry(MapLiteralEntry node, A arg) =>
+ defaultTreeNode(node, arg);
R visitComponent(Component node, A arg) => defaultTreeNode(node, arg);
}
@@ -1354,12 +1355,13 @@
transformList(nodes, parent, dummyNamedExpression);
}
- /// Transforms or removes [MapEntry] nodes in [nodes] as children of [parent].
+ /// Transforms or removes [MapLiteralEntry] nodes in [nodes] as children of
+ /// [parent].
///
/// This is convenience method for calling [transformList] with removal
- /// sentinel for [MapEntry] nodes.
- void transformMapEntryList(List<MapEntry> nodes, TreeNode parent) {
- transformList(nodes, parent, dummyMapEntry);
+ /// sentinel for [MapLiteralEntry] nodes.
+ void transformMapEntryList(List<MapLiteralEntry> nodes, TreeNode parent) {
+ transformList(nodes, parent, dummyMapLiteralEntry);
}
/// Transforms or removes [Statement] nodes in [nodes] as children of
diff --git a/pkg/vm/lib/target/vm.dart b/pkg/vm/lib/target/vm.dart
index d80ff52..815f38d 100644
--- a/pkg/vm/lib/target/vm.dart
+++ b/pkg/vm/lib/target/vm.dart
@@ -234,9 +234,9 @@
new StaticInvocation(
coreTypes.mapUnmodifiable,
new Arguments([
- new MapLiteral(new List<MapEntry>.from(
+ new MapLiteral(new List<MapLiteralEntry>.from(
arguments.named.map((NamedExpression arg) {
- return new MapEntry(
+ return new MapLiteralEntry(
new SymbolLiteral(arg.name)..fileOffset = arg.fileOffset,
arg.value)
..fileOffset = arg.fileOffset;
diff --git a/pkg/vm/lib/transformations/ffi.dart b/pkg/vm/lib/transformations/ffi.dart
index b6c00a8..3012c7a 100644
--- a/pkg/vm/lib/transformations/ffi.dart
+++ b/pkg/vm/lib/transformations/ffi.dart
@@ -7,7 +7,7 @@
library vm.transformations.ffi;
-import 'package:kernel/ast.dart' hide MapEntry;
+import 'package:kernel/ast.dart';
import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
import 'package:kernel/core_types.dart';
import 'package:kernel/library_index.dart' show LibraryIndex;
diff --git a/pkg/vm/lib/transformations/ffi_definitions.dart b/pkg/vm/lib/transformations/ffi_definitions.dart
index beed450..9225204 100644
--- a/pkg/vm/lib/transformations/ffi_definitions.dart
+++ b/pkg/vm/lib/transformations/ffi_definitions.dart
@@ -23,7 +23,7 @@
templateFfiSizeAnnotationDimensions,
templateFfiStructGeneric;
-import 'package:kernel/ast.dart' hide MapEntry;
+import 'package:kernel/ast.dart';
import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
import 'package:kernel/core_types.dart';
import 'package:kernel/library_index.dart' show LibraryIndex;
diff --git a/pkg/vm/lib/transformations/type_flow/summary.dart b/pkg/vm/lib/transformations/type_flow/summary.dart
index 20ad897..b8033f9 100644
--- a/pkg/vm/lib/transformations/type_flow/summary.dart
+++ b/pkg/vm/lib/transformations/type_flow/summary.dart
@@ -7,7 +7,8 @@
import 'dart:core' hide Type;
-import 'package:kernel/ast.dart' hide Statement, StatementVisitor, MapEntry;
+import 'package:kernel/ast.dart'
+ hide Statement, StatementVisitor, MapLiteralEntry;
import 'calls.dart';
import 'types.dart';
diff --git a/tools/VERSION b/tools/VERSION
index c93e31d..968abde 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 14
PATCH 0
-PRERELEASE 48
+PRERELEASE 49
PRERELEASE_PATCH 0
\ No newline at end of file