Version 2.14.0-239.0.dev
Merge commit 'f81bf604a94d84594c090c7604f4a6e09210d226' into 'dev'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7d5d4ba3..5119c30 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -103,7 +103,7 @@
underscore.
- fix false negative in `prefer_final_parameters` where first parameter
is final.
-- improve `directives_ordering` sorting of directives with dot paths and
+- improve `directives_ordering` sorting of directives with dot paths and
dot-separated package names.
- (internal) migrate to `SecurityLintCode` instead of deprecated
`SecurityLintCodeWithUniqueName`.
@@ -208,6 +208,16 @@
}
```
+## 2.13.4 - 2021-06-28
+
+This is a patch release that fixes:
+
+* a Dart VM compiler crash (issue [flutter/flutter#84212][]).
+* a DDC compiler crash (issue [flutter/flutter#82838][]).
+
+[flutter/flutter#84212]: https://github.com/flutter/flutter/issues/84212
+[flutter/flutter#82838]: https://github.com/flutter/flutter/issues/82838
+
## 2.13.3 - 2021-06-10
This is a patch release that fixes:
diff --git a/build/fuchsia/config/clang/BUILD.gn b/build/fuchsia/config/clang/BUILD.gn
index be74d08..6a1ebe9 100644
--- a/build/fuchsia/config/clang/BUILD.gn
+++ b/build/fuchsia/config/clang/BUILD.gn
@@ -21,9 +21,9 @@
sys = target_os
sources = [
- "${clang_base_path}/lib/${arch}-${vendor}-${sys}/c++/libc++.so.2.0",
- "${clang_base_path}/lib/${arch}-${vendor}-${sys}/c++/libc++abi.so.1.0",
- "${clang_base_path}/lib/${arch}-${vendor}-${sys}/c++/libunwind.so.1.0",
+ "${clang_base_path}/lib/${arch}-${vendor}-${sys}/libc++.so.2.0",
+ "${clang_base_path}/lib/${arch}-${vendor}-${sys}/libc++abi.so.1.0",
+ "${clang_base_path}/lib/${arch}-${vendor}-${sys}/libunwind.so.1.0",
]
outputs = [
"${root_out_dir}/lib/{{source_name_part}}",
diff --git a/pkg/compiler/lib/src/kernel/transformations/list_factory_specializer.dart b/pkg/compiler/lib/src/kernel/transformations/list_factory_specializer.dart
index b14d9e2..c315199 100644
--- a/pkg/compiler/lib/src/kernel/transformations/list_factory_specializer.dart
+++ b/pkg/compiler/lib/src/kernel/transformations/list_factory_specializer.dart
@@ -6,6 +6,7 @@
import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
import 'package:kernel/clone.dart' show CloneVisitorNotMembers;
import 'package:kernel/core_types.dart' show CoreTypes;
+import 'package:kernel/type_algebra.dart';
import 'factory_specializer.dart';
/// Replaces invocation of List factory constructors.
@@ -41,16 +42,16 @@
});
}
- Member _intPlus;
- Member get intPlus =>
+ Procedure _intPlus;
+ Procedure get intPlus =>
_intPlus ??= hierarchy.getInterfaceMember(_intClass, Name('+'));
- Member _intLess;
- Member get intLess =>
+ Procedure _intLess;
+ Procedure get intLess =>
_intLess ??= hierarchy.getInterfaceMember(_intClass, Name('<'));
- Member _jsArrayIndexSet;
- Member get jsArrayIndexSet => _jsArrayIndexSet ??=
+ Procedure _jsArrayIndexSet;
+ Procedure get jsArrayIndexSet => _jsArrayIndexSet ??=
hierarchy.getInterfaceMember(_jsArrayClass, Name('[]='));
/// Replace calls to `List.generate(length, (i) => e)` with an expansion
@@ -131,20 +132,30 @@
// initializers: _i = 0
[indexVariable],
// condition: _i < _length
- MethodInvocation(
+ InstanceInvocation(
+ InstanceAccessKind.Instance,
VariableGet(indexVariable)..fileOffset = node.fileOffset,
Name('<'),
Arguments([getLength()]),
- )..interfaceTarget = intLess,
+ interfaceTarget: intLess,
+ functionType: intLess.getterType,
+ ),
// updates: _i++
[
VariableSet(
indexVariable,
- MethodInvocation(
- VariableGet(indexVariable)..fileOffset = node.fileOffset,
- Name('+'),
- Arguments([IntLiteral(1)]),
- )..interfaceTarget = intPlus,
+ InstanceInvocation(
+ InstanceAccessKind.Instance,
+ VariableGet(indexVariable)..fileOffset = node.fileOffset,
+ Name('+'),
+ Arguments([IntLiteral(1)]),
+ interfaceTarget: intPlus,
+ functionType: FunctionType(
+ [intType],
+ intType,
+ contextMember.isNonNullableByDefault
+ ? Nullability.nonNullable
+ : Nullability.legacy)),
)..fileOffset = node.fileOffset,
],
// body, e.g. _list[_i] = expression;
@@ -315,15 +326,18 @@
final value = expression == null ? NullLiteral() : clone(expression);
// TODO(sra): Indicate that this indexed setter is safe.
return ExpressionStatement(
- MethodInvocation(
- VariableGet(listVariable)..fileOffset = constructorFileOffset,
- Name('[]='),
- Arguments([
- VariableGet(argument)..fileOffset = node.fileOffset,
- value,
- ]),
- )
- ..interfaceTarget = listFactorySpecializer.jsArrayIndexSet
+ InstanceInvocation(
+ InstanceAccessKind.Instance,
+ VariableGet(listVariable)..fileOffset = constructorFileOffset,
+ Name('[]='),
+ Arguments([
+ VariableGet(argument)..fileOffset = node.fileOffset,
+ value,
+ ]),
+ interfaceTarget: listFactorySpecializer.jsArrayIndexSet,
+ functionType: Substitution.fromInterfaceType(listVariable.type)
+ .substituteType(
+ listFactorySpecializer.jsArrayIndexSet.getterType))
..isInvariant = true
..isBoundsSafe = true
..fileOffset = constructorFileOffset,
diff --git a/pkg/compiler/test/kernel/data/list_generate_1.dart.expect b/pkg/compiler/test/kernel/data/list_generate_1.dart.expect
index be2484b..62d51f9 100644
--- a/pkg/compiler/test/kernel/data/list_generate_1.dart.expect
+++ b/pkg/compiler/test/kernel/data/list_generate_1.dart.expect
@@ -5,23 +5,23 @@
static field core::List<core::int*>* list1 = block {
final _in::JSArray<core::int*> _list = _in::JSArray::allocateGrowable<core::int*>(10);
- for (core::int i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1)) {
+ for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::int) →* core::int}) {
core::int* i = i;
- _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i);
+ _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i){(core::int, core::int*) → void};
}
} =>_list;
static field core::List<core::int*>* list2 = block {
final _in::JSArray<core::int*> _list = _in::JSArray::allocateGrowable<core::int*>(10);
- for (core::int i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1)) {
+ for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::int) →* core::int}) {
core::int* i = i;
- _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i);
+ _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i){(core::int, core::int*) → void};
}
} =>_list;
static field core::List<core::int*>* list3 = block {
final _in::JSArray<core::int*> _list = _in::JSArray::allocateFixed<core::int*>(10);
- for (core::int i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1)) {
+ for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::int) →* core::int}) {
core::int* i = i;
- _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i);
+ _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i){(core::int, core::int*) → void};
}
} =>_list;
static field core::List<core::int*>* list4 = core::List::generate<core::int*>(10, (core::int* i) → core::int* => i, growable: self::someGrowable);
diff --git a/pkg/compiler/test/kernel/data/list_generate_2.dart.expect b/pkg/compiler/test/kernel/data/list_generate_2.dart.expect
index 51e385e..b58c1b6 100644
--- a/pkg/compiler/test/kernel/data/list_generate_2.dart.expect
+++ b/pkg/compiler/test/kernel/data/list_generate_2.dart.expect
@@ -6,16 +6,16 @@
static method main() → void {
core::print( block {
final _in::JSArray<core::List<core::int*>*> _list = _in::JSArray::allocateGrowable<core::List<core::int*>*>(10);
- for (core::int i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1)) {
+ for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::int) →* core::int}) {
core::int* i = i;
_list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, block {
final core::int _length = i;
final _in::JSArray<core::int*> _list = _in::JSArray::allocateGrowable<core::int*>(_length);
- for (core::int i = 0; i.{core::num::<}(_length); i = i.{core::num::+}(1)) {
+ for (core::int i = 0; i.{core::num::<}(_length){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::int) →* core::int}) {
core::int* i = i;
- _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i.{core::num::+}(1){(core::num*) →* core::int*});
+ _list.{_in::JSArray::[]=}(i, i.{core::num::+}(1){(core::num*) →* core::int*}){(core::int, core::int*) → void};
}
- } =>_list);
+ } =>_list){(core::int, core::List<core::int*>*) → void};
}
} =>_list);
}
diff --git a/pkg/compiler/test/kernel/data/list_generate_3.dart.expect b/pkg/compiler/test/kernel/data/list_generate_3.dart.expect
index 9a50e1e..c8614fa 100644
--- a/pkg/compiler/test/kernel/data/list_generate_3.dart.expect
+++ b/pkg/compiler/test/kernel/data/list_generate_3.dart.expect
@@ -5,28 +5,28 @@
static field core::List<core::int*>* list1 = block {
final _in::JSArray<core::int*> _list = _in::JSArray::allocateGrowable<core::int*>(10);
- for (core::int i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1)) {
+ for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::int) →* core::int}) {
core::int* i = i;
{
- _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i);
+ _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i){(core::int, core::int*) → void};
}
}
} =>_list;
static field core::List<core::int*>* list2 = block {
final _in::JSArray<core::int*> _list = _in::JSArray::allocateGrowable<core::int*>(10);
- for (core::int i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1)) {
+ for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::int) →* core::int}) {
core::int* i = i;
{
- _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i);
+ _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i){(core::int, core::int*) → void};
}
}
} =>_list;
static field core::List<core::int*>* list3 = block {
final _in::JSArray<core::int*> _list = _in::JSArray::allocateFixed<core::int*>(10);
- for (core::int i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1)) {
+ for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::int) →* core::int}) {
core::int* i = i;
{
- _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i);
+ _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i){(core::int, core::int*) → void};
}
}
} =>_list;
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 953a360..fa29641 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -6304,12 +6304,20 @@
void handleTypeArgumentApplication(Token openAngleBracket) {
/// TODO(johnniwinther, paulberry): add support for this construct when the
/// "constructor-tearoffs" feature is enabled.
- pop(); // typeArguments
- addProblem(
- templateExperimentNotEnabled.withArguments('constructor-tearoffs',
- libraryBuilder.enableConstructorTearoffsVersionInLibrary.toText()),
- openAngleBracket.charOffset,
- noLength);
+ List<UnresolvedType> typeArguments = pop(); // typeArguments
+ if (libraryBuilder.enableConstructorTearOffsInLibrary) {
+ Generator generator = pop();
+ push(generator.applyTypeArguments(
+ openAngleBracket.charOffset, typeArguments));
+ } else {
+ addProblem(
+ templateExperimentNotEnabled.withArguments(
+ 'constructor-tearoffs',
+ libraryBuilder.enableConstructorTearOffsVersionInLibrary
+ .toText()),
+ openAngleBracket.charOffset,
+ noLength);
+ }
}
@override
@@ -6597,7 +6605,7 @@
// "constructor-tearoffs" feature is enabled.
addProblem(
templateExperimentNotEnabled.withArguments('constructor-tearoffs',
- libraryBuilder.enableConstructorTearoffsVersionInLibrary.toText()),
+ libraryBuilder.enableConstructorTearOffsVersionInLibrary.toText()),
token.charOffset,
token.length);
}
diff --git a/pkg/front_end/lib/src/fasta/kernel/expression_generator.dart b/pkg/front_end/lib/src/fasta/kernel/expression_generator.dart
index 3069d7d..1efc687 100644
--- a/pkg/front_end/lib/src/fasta/kernel/expression_generator.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/expression_generator.dart
@@ -253,6 +253,13 @@
offsetForToken(token), unaryName, buildSimpleRead());
}
+ /*Expression|Generator*/ applyTypeArguments(
+ int fileOffset, List<UnresolvedType> typeArguments) {
+ return new Instantiation(
+ buildSimpleRead(), _helper.buildDartTypeArguments(typeArguments))
+ ..fileOffset = fileOffset;
+ }
+
/// Returns a [TypeBuilder] for this subexpression instantiated with the
/// type [arguments]. If no type arguments are provided [arguments] is `null`.
///
@@ -2940,6 +2947,7 @@
///
class TypeUseGenerator extends ReadOnlyAccessGenerator {
final TypeDeclarationBuilder declaration;
+ List<UnresolvedType> typeArguments;
TypeUseGenerator(ExpressionGeneratorHelper helper, Token token,
this.declaration, String targetName)
@@ -3038,7 +3046,8 @@
_helper.buildDartType(
new UnresolvedType(
buildTypeWithResolvedArguments(
- _helper.libraryBuilder.nonNullableBuilder, null),
+ _helper.libraryBuilder.nonNullableBuilder,
+ typeArguments),
fileOffset,
_uri),
nonInstanceAccessIsError: true));
@@ -3160,6 +3169,12 @@
isTypeArgumentsInForest: isTypeArgumentsInForest);
}
}
+
+ @override
+ applyTypeArguments(int fileOffset, List<UnresolvedType> typeArguments) {
+ return new TypeUseGenerator(_helper, token, declaration, targetName)
+ ..typeArguments = typeArguments;
+ }
}
enum ReadOnlyAccessKind {
diff --git a/pkg/front_end/lib/src/fasta/kernel/implicit_field_type.dart b/pkg/front_end/lib/src/fasta/kernel/implicit_field_type.dart
index f9c2d18..ff56187 100644
--- a/pkg/front_end/lib/src/fasta/kernel/implicit_field_type.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/implicit_field_type.dart
@@ -153,6 +153,9 @@
bodyBuilder.parseFieldInitializer(initializerToken);
initializerToken = null;
+ // The type is needed in the inference below, so the helper should be set.
+ typeInferrer.helper = bodyBuilder;
+
ExpressionInferenceResult result = typeInferrer.inferExpression(
initializer, const UnknownType(), true,
isVoidAllowed: true);
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 4d5889c..a78e798 100644
--- a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
@@ -1370,9 +1370,11 @@
}
void visitShadowInvalidInitializer(ShadowInvalidInitializer node) {
- inferrer.inferExpression(
+ ExpressionInferenceResult initializerResult = inferrer.inferExpression(
node.variable.initializer, const UnknownType(), !inferrer.isTopLevel,
isVoidAllowed: false);
+ node.variable.initializer = initializerResult.expression
+ ..parent = node.variable;
}
void visitShadowInvalidFieldInitializer(ShadowInvalidFieldInitializer node) {
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
index 3e30a03..eb47f3f 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
@@ -1229,7 +1229,9 @@
if (loader.target.context.options
.isExperimentEnabledGlobally(ExperimentalFlag.valueClass)) {
valueClass.transformComponent(
- component, loader.coreTypes, loader.hierarchy, environment);
+ component, loader.coreTypes, loader.hierarchy, environment,
+ useNewMethodInvocationEncoding:
+ backendTarget.supportsNewMethodInvocationEncoding);
ticker.logMs("Lowered value classes");
}
@@ -1301,7 +1303,7 @@
void verify() {
// TODO(ahe): How to handle errors.
- verifyComponent(component,
+ verifyComponent(component, context.options.target,
skipPlatform: context.options.skipPlatformVerification);
ClassHierarchy hierarchy =
new ClassHierarchy(component, new CoreTypes(component),
diff --git a/pkg/front_end/lib/src/fasta/kernel/verifier.dart b/pkg/front_end/lib/src/fasta/kernel/verifier.dart
index 9a23516..d9b6147 100644
--- a/pkg/front_end/lib/src/fasta/kernel/verifier.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/verifier.dart
@@ -9,6 +9,7 @@
import 'package:_fe_analyzer_shared/src/messages/severity.dart' show Severity;
import 'package:kernel/ast.dart';
+import 'package:kernel/target/targets.dart';
import 'package:kernel/transformations/flags.dart' show TransformerFlag;
@@ -34,22 +35,24 @@
getRedirectingFactoryBody,
isRedirectingFactory;
-List<LocatedMessage> verifyComponent(Component component,
+List<LocatedMessage> verifyComponent(Component component, Target target,
{bool isOutline, bool afterConst, bool skipPlatform: false}) {
FastaVerifyingVisitor verifier =
- new FastaVerifyingVisitor(isOutline, afterConst, skipPlatform);
+ new FastaVerifyingVisitor(target, isOutline, afterConst, skipPlatform);
component.accept(verifier);
return verifier.errors;
}
class FastaVerifyingVisitor extends VerifyingVisitor {
+ final Target target;
final List<LocatedMessage> errors = <LocatedMessage>[];
Uri fileUri;
final List<TreeNode> treeNodeStack = <TreeNode>[];
final bool skipPlatform;
- FastaVerifyingVisitor(bool isOutline, bool afterConst, this.skipPlatform)
+ FastaVerifyingVisitor(
+ this.target, bool isOutline, bool afterConst, this.skipPlatform)
: super(isOutline: isOutline, afterConst: afterConst);
/// Invoked by all visit methods if the visited node is a [TreeNode].
@@ -426,6 +429,39 @@
}
@override
+ void visitMethodInvocation(MethodInvocation node) {
+ if (target.supportsNewMethodInvocationEncoding) {
+ problem(
+ node,
+ "New method invocation encoding is supported, "
+ "but found a MethodInvocation.");
+ }
+ super.visitMethodInvocation(node);
+ }
+
+ @override
+ void visitPropertyGet(PropertyGet node) {
+ if (target.supportsNewMethodInvocationEncoding) {
+ problem(
+ node,
+ "New method invocation encoding is supported, "
+ "but found a PropertyGet.");
+ }
+ super.visitPropertyGet(node);
+ }
+
+ @override
+ void visitPropertySet(PropertySet node) {
+ if (target.supportsNewMethodInvocationEncoding) {
+ problem(
+ node,
+ "New method invocation encoding is supported, "
+ "but found a PropertySet.");
+ }
+ super.visitPropertySet(node);
+ }
+
+ @override
void defaultTreeNode(TreeNode node) {
enterTreeNode(node);
super.defaultTreeNode(node);
diff --git a/pkg/front_end/lib/src/fasta/source/outline_builder.dart b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
index f857afd..1b40d03 100644
--- a/pkg/front_end/lib/src/fasta/source/outline_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
@@ -2186,7 +2186,7 @@
// "constructor-tearoffs" feature is enabled.
addProblem(
templateExperimentNotEnabled.withArguments('constructor-tearoffs',
- libraryBuilder.enableConstructorTearoffsVersionInLibrary.toText()),
+ libraryBuilder.enableConstructorTearOffsVersionInLibrary.toText()),
token.charOffset,
token.length);
}
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 5c72e58..317a63f 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
@@ -319,6 +319,7 @@
bool _enableExtensionMethodsInLibrary;
bool _enableGenericMetadataInLibrary;
bool _enableExtensionTypesInLibrary;
+ bool _enableConstructorTearOffsInLibrary;
bool get enableConstFunctionsInLibrary => _enableConstFunctionsInLibrary ??=
loader.target.isExperimentEnabledInLibraryByVersion(
@@ -352,7 +353,14 @@
.getExperimentEnabledVersionInLibrary(
ExperimentalFlag.nonNullable, _packageUri ?? importUri);
- Version get enableConstructorTearoffsVersionInLibrary =>
+ bool get enableConstructorTearOffsInLibrary =>
+ _enableConstructorTearOffsInLibrary ??= loader.target
+ .isExperimentEnabledInLibraryByVersion(
+ ExperimentalFlag.constructorTearoffs,
+ _packageUri ?? importUri,
+ languageVersion.version);
+
+ Version get enableConstructorTearOffsVersionInLibrary =>
_enableConstructorTearoffsVersionInLibrary ??= loader.target
.getExperimentEnabledVersionInLibrary(
ExperimentalFlag.constructorTearoffs, _packageUri ?? importUri);
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 6bb19ed..a02f453 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
@@ -737,12 +737,19 @@
<Expression>[new NullLiteral()..fileOffset = fileOffset]))
..fileOffset = fileOffset;
}
- PropertyGet tearOff =
- new PropertyGet(new VariableGet(t), callName, callMember)
- ..fileOffset = fileOffset;
+ Expression tearOff;
DartType tearoffType =
getGetterTypeForMemberTarget(callMember, expressionType)
.withDeclaredNullability(expressionType.nullability);
+ if (useNewMethodInvocationEncoding) {
+ tearOff = new InstanceTearOff(
+ InstanceAccessKind.Instance, new VariableGet(t), callName,
+ interfaceTarget: callMember, resultType: tearoffType)
+ ..fileOffset = fileOffset;
+ } else {
+ tearOff = new PropertyGet(new VariableGet(t), callName, callMember)
+ ..fileOffset = fileOffset;
+ }
ConditionalExpression conditional = new ConditionalExpression(nullCheck,
new NullLiteral()..fileOffset = fileOffset, tearOff, tearoffType);
return new TypedTearoff(
@@ -3543,24 +3550,38 @@
..fileOffset = nullAwareAction.fileOffset);
} else if (nullAwareAction is InstanceInvocation &&
nullAwareAction.receiver == originalPropertyGet) {
+ // TODO(johnniwinther): Remove this when [MethodInvocation] is no longer
+ // used and [originalPropertyGet] can be an [InstanceGet].
+ InstanceGet instanceGet = originalPropertyGet;
invocationResult = new ExpressionInferenceResult(
invocationResult.inferredType,
- new MethodInvocation(originalReceiver, originalName,
- nullAwareAction.arguments, originalTarget)
+ new InstanceGetterInvocation(instanceGet.kind, originalReceiver,
+ originalName, nullAwareAction.arguments,
+ interfaceTarget: originalTarget,
+ functionType: nullAwareAction.functionType)
..fileOffset = nullAwareAction.fileOffset);
} else if (nullAwareAction is DynamicInvocation &&
nullAwareAction.receiver == originalPropertyGet) {
+ // TODO(johnniwinther): Remove this when [MethodInvocation] is no longer
+ // used and [originalPropertyGet] can be an [InstanceGet].
+ InstanceGet instanceGet = originalPropertyGet;
invocationResult = new ExpressionInferenceResult(
invocationResult.inferredType,
- new MethodInvocation(originalReceiver, originalName,
- nullAwareAction.arguments, originalTarget)
+ new InstanceGetterInvocation(instanceGet.kind, originalReceiver,
+ originalName, nullAwareAction.arguments,
+ interfaceTarget: originalTarget, functionType: null)
..fileOffset = nullAwareAction.fileOffset);
} else if (nullAwareAction is FunctionInvocation &&
nullAwareAction.receiver == originalPropertyGet) {
+ // TODO(johnniwinther): Remove this when [MethodInvocation] is no longer
+ // used and [originalPropertyGet] can be an [InstanceGet].
+ InstanceGet instanceGet = originalPropertyGet;
invocationResult = new ExpressionInferenceResult(
invocationResult.inferredType,
- new MethodInvocation(originalReceiver, originalName,
- nullAwareAction.arguments, originalTarget)
+ new InstanceGetterInvocation(instanceGet.kind, originalReceiver,
+ originalName, nullAwareAction.arguments,
+ interfaceTarget: originalTarget,
+ functionType: nullAwareAction.functionType)
..fileOffset = nullAwareAction.fileOffset);
}
}
diff --git a/pkg/front_end/lib/src/kernel_generator_impl.dart b/pkg/front_end/lib/src/kernel_generator_impl.dart
index b9737cc..f7c635b 100644
--- a/pkg/front_end/lib/src/kernel_generator_impl.dart
+++ b/pkg/front_end/lib/src/kernel_generator_impl.dart
@@ -104,7 +104,8 @@
List<int> summary = null;
if (buildSummary) {
if (options.verify) {
- for (LocatedMessage error in verifyComponent(summaryComponent)) {
+ for (LocatedMessage error
+ in verifyComponent(summaryComponent, options.target)) {
options.report(error, Severity.error);
}
}
diff --git a/pkg/front_end/test/fasta/testing/suite.dart b/pkg/front_end/test/fasta/testing/suite.dart
index 198db8a..04c1037 100644
--- a/pkg/front_end/test/fasta/testing/suite.dart
+++ b/pkg/front_end/test/fasta/testing/suite.dart
@@ -1979,7 +1979,8 @@
return await CompilerContext.runWithOptions(options,
(compilerContext) async {
compilerContext.uriToSource.addAll(component.uriToSource);
- List<LocatedMessage> verificationErrors = verifyComponent(component,
+ List<LocatedMessage> verificationErrors = verifyComponent(
+ component, options.target,
isOutline: !fullCompile, skipPlatform: true);
assert(verificationErrors.isEmpty || messages.isNotEmpty);
if (messages.isEmpty) {
diff --git a/pkg/front_end/test/issue_34856_test.dart b/pkg/front_end/test/issue_34856_test.dart
index 8d41b6f..396a0bb 100644
--- a/pkg/front_end/test/issue_34856_test.dart
+++ b/pkg/front_end/test/issue_34856_test.dart
@@ -97,7 +97,7 @@
List<Object> errors = await CompilerContext.runWithOptions(
new ProcessedOptions(options: options, inputs: inputs),
(_) => new Future<List<Object>>.value(
- verifyComponent(component, skipPlatform: true)));
+ verifyComponent(component, options.target, skipPlatform: true)));
serializeComponent(component);
diff --git a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.strong.expect
index 31c797b..b9e60e0 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.strong.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.strong.expect
@@ -14,56 +14,26 @@
// A<X> Function<X>(X) test3() => A.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:14:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test4() => A<int>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:14:39: Error: Getter not found: 'new'.
// A<X> Function<X>(X) test4() => A<int>.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:15:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test5() => A<int, String>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:15:47: Error: Getter not found: 'new'.
// A<X> Function<X>(X) test5() => A<int, String>.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:16:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test6() => A<int>.foo1; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:16:39: Error: Getter not found: 'foo1'.
// A<X> Function<X>(X) test6() => A<int>.foo1; // Error.
// ^^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:17:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test7() => A<int, String>.foo1; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:17:47: Error: Getter not found: 'foo1'.
// A<X> Function<X>(X) test7() => A<int, String>.foo1; // Error.
// ^^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:18:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test8() => A<int>.foo2; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:18:39: Error: Getter not found: 'foo2'.
// A<X> Function<X>(X) test8() => A<int>.foo2; // Error.
// ^^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:19:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test9() => A<int, String>.foo2; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:19:47: Error: Getter not found: 'foo2'.
// A<X> Function<X>(X) test9() => A<int, String>.foo2; // Error.
// ^^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.strong.transformed.expect
index 5b92215..216d862 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.strong.transformed.expect
@@ -14,56 +14,26 @@
// A<X> Function<X>(X) test3() => A.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:14:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test4() => A<int>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:14:39: Error: Getter not found: 'new'.
// A<X> Function<X>(X) test4() => A<int>.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:15:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test5() => A<int, String>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:15:47: Error: Getter not found: 'new'.
// A<X> Function<X>(X) test5() => A<int, String>.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:16:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test6() => A<int>.foo1; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:16:39: Error: Getter not found: 'foo1'.
// A<X> Function<X>(X) test6() => A<int>.foo1; // Error.
// ^^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:17:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test7() => A<int, String>.foo1; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:17:47: Error: Getter not found: 'foo1'.
// A<X> Function<X>(X) test7() => A<int, String>.foo1; // Error.
// ^^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:18:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test8() => A<int>.foo2; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:18:39: Error: Getter not found: 'foo2'.
// A<X> Function<X>(X) test8() => A<int>.foo2; // Error.
// ^^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:19:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test9() => A<int, String>.foo2; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:19:47: Error: Getter not found: 'foo2'.
// A<X> Function<X>(X) test9() => A<int, String>.foo2; // Error.
// ^^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.weak.expect
index 31c797b..b9e60e0 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.weak.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.weak.expect
@@ -14,56 +14,26 @@
// A<X> Function<X>(X) test3() => A.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:14:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test4() => A<int>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:14:39: Error: Getter not found: 'new'.
// A<X> Function<X>(X) test4() => A<int>.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:15:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test5() => A<int, String>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:15:47: Error: Getter not found: 'new'.
// A<X> Function<X>(X) test5() => A<int, String>.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:16:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test6() => A<int>.foo1; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:16:39: Error: Getter not found: 'foo1'.
// A<X> Function<X>(X) test6() => A<int>.foo1; // Error.
// ^^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:17:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test7() => A<int, String>.foo1; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:17:47: Error: Getter not found: 'foo1'.
// A<X> Function<X>(X) test7() => A<int, String>.foo1; // Error.
// ^^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:18:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test8() => A<int>.foo2; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:18:39: Error: Getter not found: 'foo2'.
// A<X> Function<X>(X) test8() => A<int>.foo2; // Error.
// ^^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:19:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test9() => A<int, String>.foo2; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:19:47: Error: Getter not found: 'foo2'.
// A<X> Function<X>(X) test9() => A<int, String>.foo2; // Error.
// ^^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.weak.transformed.expect
index 5b92215..216d862 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart.weak.transformed.expect
@@ -14,56 +14,26 @@
// A<X> Function<X>(X) test3() => A.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:14:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test4() => A<int>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:14:39: Error: Getter not found: 'new'.
// A<X> Function<X>(X) test4() => A<int>.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:15:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test5() => A<int, String>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:15:47: Error: Getter not found: 'new'.
// A<X> Function<X>(X) test5() => A<int, String>.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:16:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test6() => A<int>.foo1; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:16:39: Error: Getter not found: 'foo1'.
// A<X> Function<X>(X) test6() => A<int>.foo1; // Error.
// ^^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:17:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test7() => A<int, String>.foo1; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:17:47: Error: Getter not found: 'foo1'.
// A<X> Function<X>(X) test7() => A<int, String>.foo1; // Error.
// ^^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:18:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test8() => A<int>.foo2; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:18:39: Error: Getter not found: 'foo2'.
// A<X> Function<X>(X) test8() => A<int>.foo2; // Error.
// ^^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:19:33: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<X> Function<X>(X) test9() => A<int, String>.foo2; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:19:47: Error: Getter not found: 'foo2'.
// A<X> Function<X>(X) test9() => A<int, String>.foo2; // Error.
// ^^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.strong.expect
index 264979c..bc6e6db 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.strong.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.strong.expect
@@ -6,11 +6,6 @@
// testFoo() => A.foo; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:11:19: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testFooArgs() => A<int>.foo; // Ok.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:11:25: Error: Getter not found: 'foo'.
// testFooArgs() => A<int>.foo; // Ok.
// ^^^
@@ -19,29 +14,14 @@
// testNew() => A.new; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:13:19: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testNewArgs() => A<int>.new; // Ok.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:13:25: Error: Getter not found: 'new'.
// testNewArgs() => A<int>.new; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:15:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testFooExtraArgs() => A<int, String>.foo; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:15:38: Error: Getter not found: 'foo'.
// testFooExtraArgs() => A<int, String>.foo; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:16:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testNewExtraArgs() => A<int, String>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:16:38: Error: Getter not found: 'new'.
// testNewExtraArgs() => A<int, String>.new; // Error.
// ^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.strong.transformed.expect
index 264979c..bc6e6db 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.strong.transformed.expect
@@ -6,11 +6,6 @@
// testFoo() => A.foo; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:11:19: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testFooArgs() => A<int>.foo; // Ok.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:11:25: Error: Getter not found: 'foo'.
// testFooArgs() => A<int>.foo; // Ok.
// ^^^
@@ -19,29 +14,14 @@
// testNew() => A.new; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:13:19: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testNewArgs() => A<int>.new; // Ok.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:13:25: Error: Getter not found: 'new'.
// testNewArgs() => A<int>.new; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:15:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testFooExtraArgs() => A<int, String>.foo; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:15:38: Error: Getter not found: 'foo'.
// testFooExtraArgs() => A<int, String>.foo; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:16:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testNewExtraArgs() => A<int, String>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:16:38: Error: Getter not found: 'new'.
// testNewExtraArgs() => A<int, String>.new; // Error.
// ^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.weak.expect
index 264979c..bc6e6db 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.weak.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.weak.expect
@@ -6,11 +6,6 @@
// testFoo() => A.foo; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:11:19: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testFooArgs() => A<int>.foo; // Ok.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:11:25: Error: Getter not found: 'foo'.
// testFooArgs() => A<int>.foo; // Ok.
// ^^^
@@ -19,29 +14,14 @@
// testNew() => A.new; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:13:19: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testNewArgs() => A<int>.new; // Ok.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:13:25: Error: Getter not found: 'new'.
// testNewArgs() => A<int>.new; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:15:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testFooExtraArgs() => A<int, String>.foo; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:15:38: Error: Getter not found: 'foo'.
// testFooExtraArgs() => A<int, String>.foo; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:16:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testNewExtraArgs() => A<int, String>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:16:38: Error: Getter not found: 'new'.
// testNewExtraArgs() => A<int, String>.new; // Error.
// ^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.weak.transformed.expect
index 264979c..bc6e6db 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart.weak.transformed.expect
@@ -6,11 +6,6 @@
// testFoo() => A.foo; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:11:19: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testFooArgs() => A<int>.foo; // Ok.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:11:25: Error: Getter not found: 'foo'.
// testFooArgs() => A<int>.foo; // Ok.
// ^^^
@@ -19,29 +14,14 @@
// testNew() => A.new; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:13:19: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testNewArgs() => A<int>.new; // Ok.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:13:25: Error: Getter not found: 'new'.
// testNewArgs() => A<int>.new; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:15:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testFooExtraArgs() => A<int, String>.foo; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:15:38: Error: Getter not found: 'foo'.
// testFooExtraArgs() => A<int, String>.foo; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:16:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testNewExtraArgs() => A<int, String>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_without_context.dart:16:38: Error: Getter not found: 'new'.
// testNewExtraArgs() => A<int, String>.new; // Error.
// ^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.strong.expect
index 7444b68..fac585b 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.strong.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.strong.expect
@@ -26,20 +26,10 @@
// A<dynamic> Function(String) test6() => A.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:17:38: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<dynamic> Function(num) test7() => A<num>.foo; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:17:44: Error: Getter not found: 'foo'.
// A<dynamic> Function(num) test7() => A<num>.foo; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:18:38: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<dynamic> Function(num) test8() => A<num>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:18:44: Error: Getter not found: 'new'.
// A<dynamic> Function(num) test8() => A<num>.new; // Error.
// ^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.strong.transformed.expect
index 3a5a5ad..3bcaa2b 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.strong.transformed.expect
@@ -26,20 +26,10 @@
// A<dynamic> Function(String) test6() => A.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:17:38: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<dynamic> Function(num) test7() => A<num>.foo; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:17:44: Error: Getter not found: 'foo'.
// A<dynamic> Function(num) test7() => A<num>.foo; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:18:38: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<dynamic> Function(num) test8() => A<num>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:18:44: Error: Getter not found: 'new'.
// A<dynamic> Function(num) test8() => A<num>.new; // Error.
// ^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.weak.expect
index 7444b68..fac585b 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.weak.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.weak.expect
@@ -26,20 +26,10 @@
// A<dynamic> Function(String) test6() => A.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:17:38: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<dynamic> Function(num) test7() => A<num>.foo; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:17:44: Error: Getter not found: 'foo'.
// A<dynamic> Function(num) test7() => A<num>.foo; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:18:38: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<dynamic> Function(num) test8() => A<num>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:18:44: Error: Getter not found: 'new'.
// A<dynamic> Function(num) test8() => A<num>.new; // Error.
// ^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.weak.transformed.expect
index 3a5a5ad..3bcaa2b 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/instantiation.dart.weak.transformed.expect
@@ -26,20 +26,10 @@
// A<dynamic> Function(String) test6() => A.new; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:17:38: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<dynamic> Function(num) test7() => A<num>.foo; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:17:44: Error: Getter not found: 'foo'.
// A<dynamic> Function(num) test7() => A<num>.foo; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:18:38: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// A<dynamic> Function(num) test8() => A<num>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/instantiation.dart:18:44: Error: Getter not found: 'new'.
// A<dynamic> Function(num) test8() => A<num>.new; // Error.
// ^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.strong.expect
index 4374264..a888351 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.strong.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.strong.expect
@@ -10,20 +10,10 @@
// testNew() => A.new; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:13:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testFooExtraArgs() => A<int>.foo; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:13:30: Error: Getter not found: 'foo'.
// testFooExtraArgs() => A<int>.foo; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:14:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testNewExtraArgs() => A<int>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:14:30: Error: Getter not found: 'new'.
// testNewExtraArgs() => A<int>.new; // Error.
// ^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.strong.transformed.expect
index 4374264..a888351 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.strong.transformed.expect
@@ -10,20 +10,10 @@
// testNew() => A.new; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:13:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testFooExtraArgs() => A<int>.foo; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:13:30: Error: Getter not found: 'foo'.
// testFooExtraArgs() => A<int>.foo; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:14:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testNewExtraArgs() => A<int>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:14:30: Error: Getter not found: 'new'.
// testNewExtraArgs() => A<int>.new; // Error.
// ^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.weak.expect
index 4374264..a888351 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.weak.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.weak.expect
@@ -10,20 +10,10 @@
// testNew() => A.new; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:13:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testFooExtraArgs() => A<int>.foo; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:13:30: Error: Getter not found: 'foo'.
// testFooExtraArgs() => A<int>.foo; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:14:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testNewExtraArgs() => A<int>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:14:30: Error: Getter not found: 'new'.
// testNewExtraArgs() => A<int>.new; // Error.
// ^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.weak.transformed.expect
index 4374264..a888351 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart.weak.transformed.expect
@@ -10,20 +10,10 @@
// testNew() => A.new; // Ok.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:13:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testFooExtraArgs() => A<int>.foo; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:13:30: Error: Getter not found: 'foo'.
// testFooExtraArgs() => A<int>.foo; // Error.
// ^^^
//
-// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:14:24: Error: This requires the 'constructor-tearoffs' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.14 or higher, and running 'pub get'.
-// testNewExtraArgs() => A<int>.new; // Error.
-// ^
-//
// pkg/front_end/testcases/constructor_tearoffs/nongeneric_tearoff_without_context.dart:14:30: Error: Getter not found: 'new'.
// testNewExtraArgs() => A<int>.new; // Error.
// ^^^
diff --git a/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart
new file mode 100644
index 0000000..74e7330
--- /dev/null
+++ b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart
@@ -0,0 +1,12 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+foo() => List<int>;
+
+bar() {
+ Type listString = List<String>;
+ return listString;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.strong.expect
new file mode 100644
index 0000000..1b3499a
--- /dev/null
+++ b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.strong.expect
@@ -0,0 +1,16 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method foo() → dynamic
+ return #C1;
+static method bar() → dynamic {
+ core::Type listString = #C2;
+ return listString;
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = TypeLiteralConstant(core::List<core::int>)
+ #C2 = TypeLiteralConstant(core::List<core::String>)
+}
diff --git a/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.strong.transformed.expect
new file mode 100644
index 0000000..1b3499a
--- /dev/null
+++ b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.strong.transformed.expect
@@ -0,0 +1,16 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method foo() → dynamic
+ return #C1;
+static method bar() → dynamic {
+ core::Type listString = #C2;
+ return listString;
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = TypeLiteralConstant(core::List<core::int>)
+ #C2 = TypeLiteralConstant(core::List<core::String>)
+}
diff --git a/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.textual_outline.expect b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.textual_outline.expect
new file mode 100644
index 0000000..aef55ff
--- /dev/null
+++ b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.textual_outline.expect
@@ -0,0 +1,3 @@
+foo() => List<int>;
+bar() {}
+main() {}
diff --git a/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.weak.expect
new file mode 100644
index 0000000..1e0382a
--- /dev/null
+++ b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.weak.expect
@@ -0,0 +1,16 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method foo() → dynamic
+ return #C1;
+static method bar() → dynamic {
+ core::Type listString = #C2;
+ return listString;
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = TypeLiteralConstant(core::List<core::int*>*)
+ #C2 = TypeLiteralConstant(core::List<core::String*>*)
+}
diff --git a/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.weak.outline.expect
new file mode 100644
index 0000000..0409188
--- /dev/null
+++ b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.weak.outline.expect
@@ -0,0 +1,9 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+
+static method foo() → dynamic
+ ;
+static method bar() → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.weak.transformed.expect
new file mode 100644
index 0000000..1e0382a
--- /dev/null
+++ b/pkg/front_end/testcases/constructor_tearoffs/simple_instantiated_type_literals.dart.weak.transformed.expect
@@ -0,0 +1,16 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method foo() → dynamic
+ return #C1;
+static method bar() → dynamic {
+ core::Type listString = #C2;
+ return listString;
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = TypeLiteralConstant(core::List<core::int*>*)
+ #C2 = TypeLiteralConstant(core::List<core::String*>*)
+}
diff --git a/pkg/front_end/testcases/dart2js/list_generate.dart.strong.transformed.expect b/pkg/front_end/testcases/dart2js/list_generate.dart.strong.transformed.expect
index c99286d..13f5e0e 100644
--- a/pkg/front_end/testcases/dart2js/list_generate.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/dart2js/list_generate.dart.strong.transformed.expect
@@ -6,9 +6,9 @@
static method main() → dynamic {
block {
final _in::JSArray<core::int> _list = _in::JSArray::allocateGrowable<core::int>(10);
- for (core::int* i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1)) {
+ for (core::int* i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::int*) → core::int*}) {
core::int i = i;
- _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i.{core::num::*}(2){(core::num) → core::int});
+ _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i.{core::num::*}(2){(core::num) → core::int}){(core::int, core::int) → void};
}
} =>_list;
}
diff --git a/pkg/front_end/testcases/dart2js/list_generate.dart.weak.transformed.expect b/pkg/front_end/testcases/dart2js/list_generate.dart.weak.transformed.expect
index c99286d..13f5e0e 100644
--- a/pkg/front_end/testcases/dart2js/list_generate.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/dart2js/list_generate.dart.weak.transformed.expect
@@ -6,9 +6,9 @@
static method main() → dynamic {
block {
final _in::JSArray<core::int> _list = _in::JSArray::allocateGrowable<core::int>(10);
- for (core::int* i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1)) {
+ for (core::int* i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::int*) → core::int*}) {
core::int i = i;
- _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i.{core::num::*}(2){(core::num) → core::int});
+ _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, i.{core::num::*}(2){(core::num) → core::int}){(core::int, core::int) → void};
}
} =>_list;
}
diff --git a/pkg/front_end/testcases/dart2js/list_generate_local_function_invocation.dart.strong.transformed.expect b/pkg/front_end/testcases/dart2js/list_generate_local_function_invocation.dart.strong.transformed.expect
index e8cb15b..286ab36 100644
--- a/pkg/front_end/testcases/dart2js/list_generate_local_function_invocation.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/dart2js/list_generate_local_function_invocation.dart.strong.transformed.expect
@@ -8,9 +8,9 @@
return i.{core::num::*}(2){(core::num) → core::int};
block {
final _in::JSArray<core::int> _list = _in::JSArray::allocateGrowable<core::int>(10);
- for (core::int* i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1)) {
+ for (core::int* i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::int*) → core::int*}) {
core::int i = i;
- _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, localFunction(i){(core::int) → core::int});
+ _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, localFunction(i){(core::int) → core::int}){(core::int, core::int) → void};
}
} =>_list;
}
diff --git a/pkg/front_end/testcases/dart2js/list_generate_local_function_invocation.dart.weak.transformed.expect b/pkg/front_end/testcases/dart2js/list_generate_local_function_invocation.dart.weak.transformed.expect
index e8cb15b..286ab36 100644
--- a/pkg/front_end/testcases/dart2js/list_generate_local_function_invocation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/dart2js/list_generate_local_function_invocation.dart.weak.transformed.expect
@@ -8,9 +8,9 @@
return i.{core::num::*}(2){(core::num) → core::int};
block {
final _in::JSArray<core::int> _list = _in::JSArray::allocateGrowable<core::int>(10);
- for (core::int* i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1)) {
+ for (core::int* i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::int*) → core::int*}) {
core::int i = i;
- _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, localFunction(i){(core::int) → core::int});
+ _list.{_in::JSArray::[]=}{Invariant,BoundsSafe}(i, localFunction(i){(core::int) → core::int}){(core::int, core::int) → void};
}
} =>_list;
}
diff --git a/pkg/front_end/testcases/expression/set_literal.expression.yaml.expect b/pkg/front_end/testcases/expression/set_literal.expression.yaml.expect
index 59ee272..175aec2 100644
--- a/pkg/front_end/testcases/expression/set_literal.expression.yaml.expect
+++ b/pkg/front_end/testcases/expression/set_literal.expression.yaml.expect
@@ -3,5 +3,5 @@
method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr() → dynamic
return block {
final dart.core::Set<dart.core::String*>* #t1 = new dart.collection::_CompactLinkedHashSet::•<dart.core::String*>();
- #t1.{dart.core::Set::add}("a"){(dart.core::String*) →* dart.core::bool*};
+ #t1.{dart.core::Set::add}{Invariant}("a"){(dart.core::String*) →* dart.core::bool*};
} =>#t1;
diff --git a/pkg/front_end/testcases/general/bug32426.dart.weak.expect b/pkg/front_end/testcases/general/bug32426.dart.weak.expect
index 5a79b65..3e48d58 100644
--- a/pkg/front_end/testcases/general/bug32426.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug32426.dart.weak.expect
@@ -36,7 +36,7 @@
}
static method main() → dynamic {
self::I* i = new self::C::•();
- ([core::int*]) →* void f = (let final self::I* #t1 = i in #t1 == null ?{() →* void} null : #t1.{self::I::call}) as{TypeError} ([core::int*]) →* void;
+ ([core::int*]) →* void f = (let final self::I* #t1 = i in #t1 == null ?{() →* void} null : #t1.{self::I::call}{() →* void}) as{TypeError} ([core::int*]) →* void;
}
constants {
diff --git a/pkg/front_end/testcases/general/bug32426.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug32426.dart.weak.transformed.expect
index 5a79b65..3e48d58 100644
--- a/pkg/front_end/testcases/general/bug32426.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug32426.dart.weak.transformed.expect
@@ -36,7 +36,7 @@
}
static method main() → dynamic {
self::I* i = new self::C::•();
- ([core::int*]) →* void f = (let final self::I* #t1 = i in #t1 == null ?{() →* void} null : #t1.{self::I::call}) as{TypeError} ([core::int*]) →* void;
+ ([core::int*]) →* void f = (let final self::I* #t1 = i in #t1 == null ?{() →* void} null : #t1.{self::I::call}{() →* void}) as{TypeError} ([core::int*]) →* void;
}
constants {
diff --git a/pkg/front_end/testcases/general/bug32629.dart.weak.expect b/pkg/front_end/testcases/general/bug32629.dart.weak.expect
index 4965806..7b0256f 100644
--- a/pkg/front_end/testcases/general/bug32629.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug32629.dart.weak.expect
@@ -32,6 +32,6 @@
static method test() → void {
self::foo<core::String*>(let final Never* #t1 = invalid-expression "pkg/front_end/testcases/general/bug32629.dart:16:19: Error: The argument type 'dynamic Function(dynamic, dynamic)' can't be assigned to the parameter type 'String Function(String, dynamic)'.
foo<String>(new A());
- ^" in (let final self::A* #t2 = new self::A::•() in #t2 == null ?{(dynamic, dynamic) →* dynamic} null : #t2.{self::A::call}) as{TypeError} (core::String*, dynamic) →* core::String*);
+ ^" in (let final self::A* #t2 = new self::A::•() in #t2 == null ?{(dynamic, dynamic) →* dynamic} null : #t2.{self::A::call}{(dynamic, dynamic) →* dynamic}) as{TypeError} (core::String*, dynamic) →* core::String*);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/bug32629.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug32629.dart.weak.transformed.expect
index 4965806..7b0256f 100644
--- a/pkg/front_end/testcases/general/bug32629.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug32629.dart.weak.transformed.expect
@@ -32,6 +32,6 @@
static method test() → void {
self::foo<core::String*>(let final Never* #t1 = invalid-expression "pkg/front_end/testcases/general/bug32629.dart:16:19: Error: The argument type 'dynamic Function(dynamic, dynamic)' can't be assigned to the parameter type 'String Function(String, dynamic)'.
foo<String>(new A());
- ^" in (let final self::A* #t2 = new self::A::•() in #t2 == null ?{(dynamic, dynamic) →* dynamic} null : #t2.{self::A::call}) as{TypeError} (core::String*, dynamic) →* core::String*);
+ ^" in (let final self::A* #t2 = new self::A::•() in #t2 == null ?{(dynamic, dynamic) →* dynamic} null : #t2.{self::A::call}{(dynamic, dynamic) →* dynamic}) as{TypeError} (core::String*, dynamic) →* core::String*);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/bug33298.dart.weak.expect b/pkg/front_end/testcases/general/bug33298.dart.weak.expect
index aec468a..06e4055 100644
--- a/pkg/front_end/testcases/general/bug33298.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug33298.dart.weak.expect
@@ -63,14 +63,14 @@
static method test() → dynamic {
self::A* a = new self::A::•();
core::List<core::String*>* list1 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(a.{self::A::call}{(core::String*) →* core::String*}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
- core::List<core::String*>* list2 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(let final self::A* #t1 = a in #t1 == null ?{(core::String*) →* core::String*} null : #t1.{self::A::call}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
+ core::List<core::String*>* list2 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(let final self::A* #t1 = a in #t1 == null ?{(core::String*) →* core::String*} null : #t1.{self::A::call}{(core::String*) →* core::String*}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
self::B<core::String*>* b = new self::B::•<core::String*>();
core::List<core::String*>* list3 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(b.{self::B::call}{(core::String*) →* core::String*}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
- core::List<core::String*>* list4 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(let final self::B<core::String*>* #t2 = b in #t2 == null ?{(core::String*) →* core::String*} null : #t2.{self::B::call}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
+ core::List<core::String*>* list4 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(let final self::B<core::String*>* #t2 = b in #t2 == null ?{(core::String*) →* core::String*} null : #t2.{self::B::call}{(core::String*) →* core::String*}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
self::C* c = new self::C::•();
core::List<core::String*>* list5 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(c.{self::C::call}{<T extends core::Object* = dynamic>(T*) →* T*}<core::String*>){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
core::List<core::String*>* list6 = <core::String*>["a", "b", "c"].{core::Iterable::map}<dynamic>(let final Never* #t3 = invalid-expression "pkg/front_end/testcases/general/bug33298.dart:28:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
List<String> list6 = ['a', 'b', 'c'].map(c).toList();
- ^" in (let final self::C* #t4 = c in #t4 == null ?{<T extends core::Object* = dynamic>(T*) →* T*} null : #t4.{self::C::call}) as{TypeError} (core::String*) →* dynamic){((core::String*) →* dynamic) →* core::Iterable<dynamic>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<dynamic>*} as{TypeError} core::List<core::String*>*;
+ ^" in (let final self::C* #t4 = c in #t4 == null ?{<T extends core::Object* = dynamic>(T*) →* T*} null : #t4.{self::C::call}{<T extends core::Object* = dynamic>(T*) →* T*}) as{TypeError} (core::String*) →* dynamic){((core::String*) →* dynamic) →* core::Iterable<dynamic>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<dynamic>*} as{TypeError} core::List<core::String*>*;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/bug33298.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug33298.dart.weak.transformed.expect
index 842cb5d..8558dba 100644
--- a/pkg/front_end/testcases/general/bug33298.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug33298.dart.weak.transformed.expect
@@ -63,14 +63,14 @@
static method test() → dynamic {
self::A* a = new self::A::•();
core::List<core::String*>* list1 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(a.{self::A::call}{(core::String*) →* core::String*}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
- core::List<core::String*>* list2 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(let final self::A* #t1 = a in #t1 == null ?{(core::String*) →* core::String*} null : #t1.{self::A::call}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
+ core::List<core::String*>* list2 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(let final self::A* #t1 = a in #t1 == null ?{(core::String*) →* core::String*} null : #t1.{self::A::call}{(core::String*) →* core::String*}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
self::B<core::String*>* b = new self::B::•<core::String*>();
core::List<core::String*>* list3 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(b.{self::B::call}{(core::String*) →* core::String*}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
- core::List<core::String*>* list4 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(let final self::B<core::String*>* #t2 = b in #t2 == null ?{(core::String*) →* core::String*} null : #t2.{self::B::call}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
+ core::List<core::String*>* list4 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(let final self::B<core::String*>* #t2 = b in #t2 == null ?{(core::String*) →* core::String*} null : #t2.{self::B::call}{(core::String*) →* core::String*}){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
self::C* c = new self::C::•();
core::List<core::String*>* list5 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(c.{self::C::call}{<T extends core::Object* = dynamic>(T*) →* T*}<core::String*>){((core::String*) →* core::String*) →* core::Iterable<core::String*>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
core::List<core::String*>* list6 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<dynamic>(let final Never* #t3 = invalid-expression "pkg/front_end/testcases/general/bug33298.dart:28:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
List<String> list6 = ['a', 'b', 'c'].map(c).toList();
- ^" in (let final self::C* #t4 = c in #t4 == null ?{<T extends core::Object* = dynamic>(T*) →* T*} null : #t4.{self::C::call}) as{TypeError} (core::String*) →* dynamic){((core::String*) →* dynamic) →* core::Iterable<dynamic>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<dynamic>*} as{TypeError} core::List<core::String*>*;
+ ^" in (let final self::C* #t4 = c in #t4 == null ?{<T extends core::Object* = dynamic>(T*) →* T*} null : #t4.{self::C::call}{<T extends core::Object* = dynamic>(T*) →* T*}) as{TypeError} (core::String*) →* dynamic){((core::String*) →* dynamic) →* core::Iterable<dynamic>*}.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<dynamic>*} as{TypeError} core::List<core::String*>*;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/constants/const_collections.dart.weak.expect b/pkg/front_end/testcases/general/constants/const_collections.dart.weak.expect
index 17e5cd7..12996fd 100644
--- a/pkg/front_end/testcases/general/constants/const_collections.dart.weak.expect
+++ b/pkg/front_end/testcases/general/constants/const_collections.dart.weak.expect
@@ -402,7 +402,7 @@
static const field core::List<core::String*>* bar = #C10;
static field core::List<core::String*>* barAsVar = block {
final core::List<core::String*>* #t1 = core::List::of<core::String*>(#C8);
- #t1.{core::List::add}("!"){(core::String*) →* void};
+ #t1.{core::List::add}{Invariant}("!"){(core::String*) →* void};
} =>#t1;
static const field core::List<core::String*>* barWithNullSpread = invalid-expression "Null value during constant evaluation.";
static const field core::List<core::String*>* barWithIntSpread = invalid-expression "pkg/front_end/testcases/general/constants/const_collections.dart:23:51: Error: Unexpected type 'int' of a spread. Expected 'dynamic' or an Iterable.
@@ -476,7 +476,7 @@
core::print(#C22);
core::print( block {
final core::Set<core::String*>* #t2 = col::LinkedHashSet::•<core::String*>();
- #t2.{core::Set::add}("hello"){(core::String*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}("hello"){(core::String*) →* core::bool*};
} =>#t2);
core::print(#C26);
}
diff --git a/pkg/front_end/testcases/general/constants/const_collections.dart.weak.transformed.expect b/pkg/front_end/testcases/general/constants/const_collections.dart.weak.transformed.expect
index 7255d4a..dd0ac62 100644
--- a/pkg/front_end/testcases/general/constants/const_collections.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/const_collections.dart.weak.transformed.expect
@@ -402,7 +402,7 @@
static const field core::List<core::String*>* bar = #C10;
static field core::List<core::String*>* barAsVar = block {
final core::List<core::String*>* #t1 = core::List::of<core::String*>(#C8);
- #t1.{core::List::add}("!"){(core::String*) →* void};
+ #t1.{core::List::add}{Invariant}("!"){(core::String*) →* void};
} =>#t1;
static const field core::List<core::String*>* barWithNullSpread = invalid-expression "Null value during constant evaluation.";
static const field core::List<core::String*>* barWithIntSpread = invalid-expression "pkg/front_end/testcases/general/constants/const_collections.dart:23:51: Error: Unexpected type 'int' of a spread. Expected 'dynamic' or an Iterable.
@@ -476,7 +476,7 @@
core::print(#C22);
core::print( block {
final core::Set<core::String*>* #t2 = new col::_CompactLinkedHashSet::•<core::String*>();
- #t2.{core::Set::add}("hello"){(core::String*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}("hello"){(core::String*) →* core::bool*};
} =>#t2);
core::print(#C26);
}
diff --git a/pkg/front_end/testcases/general/control_flow_collection.dart.weak.expect b/pkg/front_end/testcases/general/control_flow_collection.dart.weak.expect
index 4d5fd14..ca02ce0 100644
--- a/pkg/front_end/testcases/general/control_flow_collection.dart.weak.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection.dart.weak.expect
@@ -7,61 +7,61 @@
final core::List<core::int*>* aList = block {
final core::List<core::int*>* #t1 = <core::int*>[1];
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t1.{core::List::add}(2){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(2){(core::int*) →* void};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t1.{core::List::add}(3){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(3){(core::int*) →* void};
else
- #t1.{core::List::add}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* void};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t1.{core::List::add}(4){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(4){(core::int*) →* void};
for (core::int* i in <core::int*>[5, 6, 7])
- #t1.{core::List::add}(i){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
for (core::int* i in <core::int*>[8, 9, 10])
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t1.{core::List::add}(i){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t1.{core::List::add}(i){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
} =>#t1;
final core::Set<core::int*>* aSet = block {
final core::Set<core::int*>* #t2 = col::LinkedHashSet::•<core::int*>();
- #t2.{core::Set::add}(1){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(1){(core::int*) →* core::bool*};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t2.{core::Set::add}(2){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(2){(core::int*) →* core::bool*};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t2.{core::Set::add}(3){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
else
- #t2.{core::Set::add}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* core::bool*};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t2.{core::Set::add}(4){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
for (core::int* i in <core::int*>[5, 6, 7])
- #t2.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
for (core::int* i in <core::int*>[8, 9, 10])
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t2.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t2.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
} =>#t2;
final core::Map<core::int*, core::int*>* aMap = block {
final core::Map<core::int*, core::int*>* #t3 = <core::int*, core::int*>{};
- #t3.{core::Map::[]=}(1, 1){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(1, 1){(core::int*, core::int*) →* void};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t3.{core::Map::[]=}(2, 2){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(2, 2){(core::int*, core::int*) →* void};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t3.{core::Map::[]=}(3, 3){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(3, 3){(core::int*, core::int*) →* void};
else
- #t3.{core::Map::[]=}(1.{core::int::unary-}(){() →* core::int*}, 1.{core::int::unary-}(){() →* core::int*}){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(1.{core::int::unary-}(){() →* core::int*}, 1.{core::int::unary-}(){() →* core::int*}){(core::int*, core::int*) →* void};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t3.{core::Map::[]=}(4, 4){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(4, 4){(core::int*, core::int*) →* void};
for (core::int* i in <core::int*>[5, 6, 7])
- #t3.{core::Map::[]=}(i, i){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
for (core::int* i in <core::int*>[8, 9, 10])
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t3.{core::Map::[]=}(i, i){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t3.{core::Map::[]=}(i, i){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
} =>#t3;
core::print(aList);
core::print(aSet);
diff --git a/pkg/front_end/testcases/general/control_flow_collection.dart.weak.transformed.expect b/pkg/front_end/testcases/general/control_flow_collection.dart.weak.transformed.expect
index f427951..a7fe03f 100644
--- a/pkg/front_end/testcases/general/control_flow_collection.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection.dart.weak.transformed.expect
@@ -7,19 +7,19 @@
final core::List<core::int*>* aList = block {
final core::List<core::int*>* #t1 = core::_GrowableList::_literal1<core::int*>(1);
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t1.{core::List::add}(2){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(2){(core::int*) →* void};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t1.{core::List::add}(3){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(3){(core::int*) →* void};
else
- #t1.{core::List::add}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* void};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t1.{core::List::add}(4){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(4){(core::int*) →* void};
{
core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(5, 6, 7).{core::Iterable::iterator}{core::Iterator<core::int*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
- #t1.{core::List::add}(i){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
}
}
{
@@ -27,29 +27,29 @@
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t1.{core::List::add}(i){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
}
}
for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t1.{core::List::add}(i){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(i){(core::int*) →* void};
} =>#t1;
final core::Set<core::int*>* aSet = block {
final core::Set<core::int*>* #t2 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t2.{core::Set::add}(1){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(1){(core::int*) →* core::bool*};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t2.{core::Set::add}(2){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(2){(core::int*) →* core::bool*};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t2.{core::Set::add}(3){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
else
- #t2.{core::Set::add}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(1.{core::int::unary-}(){() →* core::int*}){(core::int*) →* core::bool*};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t2.{core::Set::add}(4){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
{
core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(5, 6, 7).{core::Iterable::iterator}{core::Iterator<core::int*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
- #t2.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
}
}
{
@@ -57,29 +57,29 @@
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t2.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
}
}
for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t2.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
} =>#t2;
final core::Map<core::int*, core::int*>* aMap = block {
final core::Map<core::int*, core::int*>* #t3 = <core::int*, core::int*>{};
- #t3.{core::Map::[]=}(1, 1){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(1, 1){(core::int*, core::int*) →* void};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t3.{core::Map::[]=}(2, 2){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(2, 2){(core::int*, core::int*) →* void};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t3.{core::Map::[]=}(3, 3){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(3, 3){(core::int*, core::int*) →* void};
else
- #t3.{core::Map::[]=}(1.{core::int::unary-}(){() →* core::int*}, 1.{core::int::unary-}(){() →* core::int*}){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(1.{core::int::unary-}(){() →* core::int*}, 1.{core::int::unary-}(){() →* core::int*}){(core::int*, core::int*) →* void};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t3.{core::Map::[]=}(4, 4){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(4, 4){(core::int*, core::int*) →* void};
{
core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(5, 6, 7).{core::Iterable::iterator}{core::Iterator<core::int*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
- #t3.{core::Map::[]=}(i, i){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
}
}
{
@@ -87,11 +87,11 @@
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
if(self::oracle() as{TypeError,ForDynamic} core::bool*)
- #t3.{core::Map::[]=}(i, i){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
}
}
for (core::int* i = 11; i.{core::num::<=}(14){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t3.{core::Map::[]=}(i, i){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
} =>#t3;
core::print(aList);
core::print(aSet);
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.expect b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.expect
index 6c11dcc..2a12c98 100644
--- a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.expect
@@ -454,181 +454,181 @@
core::List<core::int*>* list10 = block {
final core::List<core::int*>* #t1 = <core::int*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t1.{core::List::add}(42){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t1;
core::Set<core::int*>* set10 = block {
final core::Set<core::int*>* #t2 = col::LinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t2.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t2.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t2;
core::Map<core::String*, core::int*>* map10 = block {
final core::Map<core::String*, core::int*>* #t3 = <core::String*, core::int*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t3.{core::Map::[]=}("bar", 42){(core::String*, core::int*) →* void};
- #t3.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t3;
core::List<dynamic>* list11 = block {
final core::List<dynamic>* #t4 = <dynamic>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t4.{core::List::add}(dynVar){(dynamic) →* void};
+ #t4.{core::List::add}{Invariant}(dynVar){(dynamic) →* void};
} =>#t4;
core::Set<dynamic>* set11 = block {
final core::Set<dynamic>* #t5 = col::LinkedHashSet::•<dynamic>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t5.{core::Set::add}(dynVar){(dynamic) →* core::bool*};
- #t5.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(dynVar){(dynamic) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t5;
core::Map<core::String*, dynamic>* map11 = block {
final core::Map<core::String*, dynamic>* #t6 = <core::String*, dynamic>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t6.{core::Map::[]=}("bar", dynVar){(core::String*, dynamic) →* void};
- #t6.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t6.{core::Map::[]=}{Invariant}("bar", dynVar){(core::String*, dynamic) →* void};
+ #t6.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t6;
core::List<core::List<core::int*>*>* list12 = block {
final core::List<core::List<core::int*>*>* #t7 = <core::List<core::int*>*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t7.{core::List::add}(<core::int*>[42]){(core::List<core::int*>*) →* void};
+ #t7.{core::List::add}{Invariant}(<core::int*>[42]){(core::List<core::int*>*) →* void};
} =>#t7;
core::Set<core::List<core::int*>*>* set12 = block {
final core::Set<core::List<core::int*>*>* #t8 = col::LinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t8.{core::Set::add}(<core::int*>[42]){(core::List<core::int*>*) →* core::bool*};
- #t8.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(<core::int*>[42]){(core::List<core::int*>*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t8;
core::Map<core::String*, core::List<core::int*>*>* map12 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t9 = <core::String*, core::List<core::int*>*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t9.{core::Map::[]=}("bar", <core::int*>[42]){(core::String*, core::List<core::int*>*) →* void};
- #t9.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t9.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]){(core::String*, core::List<core::int*>*) →* void};
+ #t9.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t9;
core::List<core::int*>* list20 = block {
final core::List<core::int*>* #t10 = <core::int*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t10.{core::List::addAll}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
+ #t10.{core::List::addAll}{Invariant}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
} =>#t10;
core::Set<core::int*>* set20 = block {
final core::Set<core::int*>* #t11 = col::LinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t11.{core::Set::addAll}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
- #t11.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t11.{core::Set::addAll}{Invariant}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
+ #t11.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t11;
core::Map<core::String*, core::int*>* map20 = block {
final core::Map<core::String*, core::int*>* #t12 = <core::String*, core::int*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::int*>* #t13 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t12.{core::Map::[]=}(#t13.{core::MapEntry::key}{core::String*}, #t13.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
- #t12.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{core::String*}, #t13.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t12.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t12;
core::List<dynamic>* list21 = block {
final core::List<dynamic>* #t14 = <dynamic>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t14.{core::List::addAll}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
} =>#t14;
core::Set<dynamic>* set21 = block {
final core::Set<dynamic>* #t15 = col::LinkedHashSet::•<dynamic>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t15.{core::Set::addAll}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
- #t15.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t15.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
+ #t15.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t15;
core::Map<core::String*, dynamic>* map21 = block {
final core::Map<core::String*, dynamic>* #t16 = <core::String*, dynamic>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, dynamic>* #t17 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, dynamic>>})
- #t16.{core::Map::[]=}(#t17.{core::MapEntry::key}{core::String*}, #t17.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
- #t16.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}{core::String*}, #t17.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
+ #t16.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t16;
core::List<core::List<core::int*>*>* list22 = block {
final core::List<core::List<core::int*>*>* #t18 = <core::List<core::int*>*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t18.{core::List::addAll}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t18.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t18;
core::Set<core::List<core::int*>*>* set22 = block {
final core::Set<core::List<core::int*>*>* #t19 = col::LinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t19.{core::Set::addAll}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t19.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t19.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t19.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t19;
core::Map<core::String*, core::List<core::int*>*>* map22 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t20 = <core::String*, core::List<core::int*>*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t21 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>})
- #t20.{core::Map::[]=}(#t21.{core::MapEntry::key}{core::String*}, #t21.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
- #t20.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{core::String*}, #t21.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t20.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t20;
core::List<core::int*>* list30 = block {
final core::List<core::int*>* #t22 = <core::int*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t22.{core::List::addAll}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
+ #t22.{core::List::addAll}{Invariant}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
} =>#t22;
core::Set<core::int*>* set30 = block {
final core::Set<core::int*>* #t23 = col::LinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t23.{core::Set::addAll}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
- #t23.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t23.{core::Set::addAll}{Invariant}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
+ #t23.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t23;
core::Map<core::String*, core::int*>* map30 = block {
final core::Map<core::String*, core::int*>* #t24 = <core::String*, core::int*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::int*>* #t25 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t24.{core::Map::[]=}(#t25.{core::MapEntry::key}{core::String*}, #t25.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
- #t24.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t24.{core::Map::[]=}{Invariant}(#t25.{core::MapEntry::key}{core::String*}, #t25.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t24.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t24;
core::List<dynamic>* list31 = block {
final core::List<dynamic>* #t26 = <dynamic>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t26.{core::List::addAll}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
+ #t26.{core::List::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
} =>#t26;
core::Set<dynamic>* set31 = block {
final core::Set<dynamic>* #t27 = col::LinkedHashSet::•<dynamic>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t27.{core::Set::addAll}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
- #t27.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t27.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
+ #t27.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t27;
core::Map<core::String*, dynamic>* map31 = block {
final core::Map<core::String*, dynamic>* #t28 = <core::String*, dynamic>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, dynamic>* #t29 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, dynamic>>})
- #t28.{core::Map::[]=}(#t29.{core::MapEntry::key}{core::String*}, #t29.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
- #t28.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t28.{core::Map::[]=}{Invariant}(#t29.{core::MapEntry::key}{core::String*}, #t29.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
+ #t28.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t28;
core::List<core::List<core::int*>*>* list33 = block {
final core::List<core::List<core::int*>*>* #t30 = <core::List<core::int*>*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t30.{core::List::addAll}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t30.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t30;
core::Set<core::List<core::int*>*>* set33 = block {
final core::Set<core::List<core::int*>*>* #t31 = col::LinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t31.{core::Set::addAll}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t31.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t31.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t31.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t31;
core::Map<core::String*, core::List<core::int*>*>* map33 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t32 = <core::String*, core::List<core::int*>*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>})
- #t32.{core::Map::[]=}(#t33.{core::MapEntry::key}{core::String*}, #t33.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
- #t32.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}{core::String*}, #t33.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t32.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t32;
core::List<core::List<core::int*>*>* list40 = block {
final core::List<core::List<core::int*>*>* #t34 = <core::List<core::int*>*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t34.{core::List::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t34.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t34;
core::Set<core::List<core::int*>*>* set40 = block {
final core::Set<core::List<core::int*>*>* #t35 = col::LinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t35.{core::Set::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t35.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t35.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t35.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t35;
core::Map<core::String*, core::List<core::int*>*>* map40 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:39:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
Map<String, List<int>> map40 = {if (oracle(\"foo\")) ...{\"bar\", []}, \"baz\": null};
@@ -636,279 +636,279 @@
core::List<core::List<core::int*>*>* list41 = block {
final core::List<core::List<core::int*>*>* #t36 = <core::List<core::int*>*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t36.{core::List::addAll}( block {
+ #t36.{core::List::addAll}{Invariant}( block {
final core::Set<core::List<core::int*>*>* #t37 = col::LinkedHashSet::•<core::List<core::int*>*>();
- #t37.{core::Set::add}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
+ #t37.{core::Set::add}{Invariant}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
} =>#t37){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t36;
core::Set<core::List<core::int*>*>* set41 = block {
final core::Set<core::List<core::int*>*>* #t38 = col::LinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t38.{core::Set::addAll}( block {
+ #t38.{core::Set::addAll}{Invariant}( block {
final core::Set<core::List<core::int*>*>* #t39 = col::LinkedHashSet::•<core::List<core::int*>*>();
- #t39.{core::Set::add}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
+ #t39.{core::Set::add}{Invariant}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
} =>#t39){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t38.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t38.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t38;
core::List<core::List<core::int*>*>* list42 = block {
final core::List<core::List<core::int*>*>* #t40 = <core::List<core::int*>*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t40.{core::List::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t40;
core::Set<core::List<core::int*>*>* set42 = block {
final core::Set<core::List<core::int*>*>* #t41 = col::LinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t41.{core::Set::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t41.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t41.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t41.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t41;
core::Map<core::String*, core::List<core::int*>*>* map42 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t42 = <core::String*, core::List<core::int*>*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t43 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>})
- #t42.{core::Map::[]=}(#t43.{core::MapEntry::key}{core::String*}, #t43.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
- #t42.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}{core::String*}, #t43.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t42.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t42;
core::List<core::int*>* list50 = block {
final core::List<core::int*>* #t44 = <core::int*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t44.{core::List::addAll}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
+ #t44.{core::List::addAll}{Invariant}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
} =>#t44;
core::Set<core::int*>* set50 = block {
final core::Set<core::int*>* #t45 = col::LinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t45.{core::Set::addAll}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
- #t45.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t45.{core::Set::addAll}{Invariant}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
+ #t45.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t45;
core::Map<core::String*, core::int*>* map50 = block {
final core::Map<core::String*, core::int*>* #t46 = <core::String*, core::int*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::int*>* #t47 in <core::String*, core::int*>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t46.{core::Map::[]=}(#t47.{core::MapEntry::key}{core::String*}, #t47.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
- #t46.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}{core::String*}, #t47.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t46.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t46;
core::List<core::int*>* list51 = block {
final core::List<core::int*>* #t48 = <core::int*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t48.{core::List::addAll}( block {
+ #t48.{core::List::addAll}{Invariant}( block {
final core::Set<core::int*>* #t49 = col::LinkedHashSet::•<core::int*>();
} =>#t49){(core::Iterable<core::int*>*) →* void};
} =>#t48;
core::Set<core::int*>* set51 = block {
final core::Set<core::int*>* #t50 = col::LinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t50.{core::Set::addAll}( block {
+ #t50.{core::Set::addAll}{Invariant}( block {
final core::Set<core::int*>* #t51 = col::LinkedHashSet::•<core::int*>();
} =>#t51){(core::Iterable<core::int*>*) →* void};
- #t50.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t50.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t50;
core::List<core::int*>* list52 = block {
final core::List<core::int*>* #t52 = <core::int*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t52.{core::List::addAll}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
+ #t52.{core::List::addAll}{Invariant}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
} =>#t52;
core::Set<core::int*>* set52 = block {
final core::Set<core::int*>* #t53 = col::LinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t53.{core::Set::addAll}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
- #t53.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t53.{core::Set::addAll}{Invariant}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
+ #t53.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t53;
core::Map<core::String*, core::int*>* map52 = block {
final core::Map<core::String*, core::int*>* #t54 = <core::String*, core::int*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::int*>* #t55 in <core::String*, core::int*>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t54.{core::Map::[]=}(#t55.{core::MapEntry::key}{core::String*}, #t55.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
- #t54.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t54.{core::Map::[]=}{Invariant}(#t55.{core::MapEntry::key}{core::String*}, #t55.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t54.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t54;
core::List<core::List<core::int*>*>* list60 = block {
final core::List<core::List<core::int*>*>* #t56 = <core::List<core::int*>*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t56.{core::List::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t56.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t56;
core::Set<core::List<core::int*>*>* set60 = block {
final core::Set<core::List<core::int*>*>* #t57 = col::LinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t57.{core::Set::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t57.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t57.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t57.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t57;
core::Map<core::String*, core::List<core::int*>*>* map60 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t58 = <core::String*, core::List<core::int*>*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t59 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>})
- #t58.{core::Map::[]=}(#t59.{core::MapEntry::key}{core::String*}, #t59.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
- #t58.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}{core::String*}, #t59.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t58.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t58;
core::List<core::List<core::int*>*>* list61 = block {
final core::List<core::List<core::int*>*>* #t60 = <core::List<core::int*>*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t60.{core::List::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t60.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t60;
core::Set<core::List<core::int*>*>* set61 = block {
final core::Set<core::List<core::int*>*>* #t61 = col::LinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t61.{core::Set::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t61.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t61.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t61.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t61;
core::Map<core::String*, core::List<core::int*>*>* map61 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t62 = <core::String*, core::List<core::int*>*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t63 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>})
- #t62.{core::Map::[]=}(#t63.{core::MapEntry::key}{core::String*}, #t63.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
- #t62.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t62.{core::Map::[]=}{Invariant}(#t63.{core::MapEntry::key}{core::String*}, #t63.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t62.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t62;
core::List<core::List<core::int*>*>* list70 = block {
final core::List<core::List<core::int*>*>* #t64 = <core::List<core::int*>*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t64.{core::List::add}(<core::int*>[]){(core::List<core::int*>*) →* void};
+ #t64.{core::List::add}{Invariant}(<core::int*>[]){(core::List<core::int*>*) →* void};
} =>#t64;
core::Set<core::List<core::int*>*>* set70 = block {
final core::Set<core::List<core::int*>*>* #t65 = col::LinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t65.{core::Set::add}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
- #t65.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t65.{core::Set::add}{Invariant}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
+ #t65.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t65;
core::List<core::List<core::int*>*>* list71 = block {
final core::List<core::List<core::int*>*>* #t66 = <core::List<core::int*>*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t66.{core::List::add}(<core::int*>[]){(core::List<core::int*>*) →* void};
+ #t66.{core::List::add}{Invariant}(<core::int*>[]){(core::List<core::int*>*) →* void};
} =>#t66;
core::Set<core::List<core::int*>*>* set71 = block {
final core::Set<core::List<core::int*>*>* #t67 = col::LinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t67.{core::Set::add}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
- #t67.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t67.{core::Set::add}{Invariant}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
+ #t67.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t67;
core::List<core::num*>* list80 = block {
final core::List<core::num*>* #t68 = <core::num*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t68.{core::List::add}(42){(core::num*) →* void};
+ #t68.{core::List::add}{Invariant}(42){(core::num*) →* void};
else
- #t68.{core::List::add}(3.14){(core::num*) →* void};
+ #t68.{core::List::add}{Invariant}(3.14){(core::num*) →* void};
} =>#t68;
core::Set<core::num*>* set80 = block {
final core::Set<core::num*>* #t69 = col::LinkedHashSet::•<core::num*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t69.{core::Set::add}(42){(core::num*) →* core::bool*};
+ #t69.{core::Set::add}{Invariant}(42){(core::num*) →* core::bool*};
else
- #t69.{core::Set::add}(3.14){(core::num*) →* core::bool*};
- #t69.{core::Set::add}(null){(core::num*) →* core::bool*};
+ #t69.{core::Set::add}{Invariant}(3.14){(core::num*) →* core::bool*};
+ #t69.{core::Set::add}{Invariant}(null){(core::num*) →* core::bool*};
} =>#t69;
core::Map<core::String*, core::num*>* map80 = block {
final core::Map<core::String*, core::num*>* #t70 = <core::String*, core::num*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t70.{core::Map::[]=}("bar", 42){(core::String*, core::num*) →* void};
+ #t70.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::num*) →* void};
else
- #t70.{core::Map::[]=}("bar", 3.14){(core::String*, core::num*) →* void};
- #t70.{core::Map::[]=}("baz", null){(core::String*, core::num*) →* void};
+ #t70.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String*, core::num*) →* void};
+ #t70.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::num*) →* void};
} =>#t70;
core::List<core::num*>* list81 = block {
final core::List<core::num*>* #t71 = <core::num*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t71.{core::List::addAll}(listInt){(core::Iterable<core::num*>*) →* void};
+ #t71.{core::List::addAll}{Invariant}(listInt){(core::Iterable<core::num*>*) →* void};
else
- #t71.{core::List::addAll}(listDouble){(core::Iterable<core::num*>*) →* void};
+ #t71.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num*>*) →* void};
} =>#t71;
core::Set<core::num*>* set81 = block {
final core::Set<core::num*>* #t72 = col::LinkedHashSet::•<core::num*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t72.{core::Set::addAll}(listInt){(core::Iterable<core::num*>*) →* void};
+ #t72.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num*>*) →* void};
else
- #t72.{core::Set::addAll}(listDouble){(core::Iterable<core::num*>*) →* void};
- #t72.{core::Set::add}(null){(core::num*) →* core::bool*};
+ #t72.{core::Set::addAll}{Invariant}(listDouble){(core::Iterable<core::num*>*) →* void};
+ #t72.{core::Set::add}{Invariant}(null){(core::num*) →* core::bool*};
} =>#t72;
core::Map<core::String*, core::num*>* map81 = block {
final core::Map<core::String*, core::num*>* #t73 = <core::String*, core::num*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::num*>* #t74 in mapToInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::num*>>})
- #t73.{core::Map::[]=}(#t74.{core::MapEntry::key}{core::String*}, #t74.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
+ #t73.{core::Map::[]=}{Invariant}(#t74.{core::MapEntry::key}{core::String*}, #t74.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
else
for (final core::MapEntry<core::String*, core::num*>* #t75 in mapToDouble.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::num*>>})
- #t73.{core::Map::[]=}(#t75.{core::MapEntry::key}{core::String*}, #t75.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
- #t73.{core::Map::[]=}("baz", null){(core::String*, core::num*) →* void};
+ #t73.{core::Map::[]=}{Invariant}(#t75.{core::MapEntry::key}{core::String*}, #t75.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
+ #t73.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::num*) →* void};
} =>#t73;
core::List<dynamic>* list82 = block {
final core::List<dynamic>* #t76 = <dynamic>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t76.{core::List::addAll}(listInt){(core::Iterable<dynamic>*) →* void};
+ #t76.{core::List::addAll}{Invariant}(listInt){(core::Iterable<dynamic>*) →* void};
else
- #t76.{core::List::addAll}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
+ #t76.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
} =>#t76;
core::Set<dynamic>* set82 = block {
final core::Set<dynamic>* #t77 = col::LinkedHashSet::•<dynamic>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t77.{core::Set::addAll}(listInt){(core::Iterable<dynamic>*) →* void};
+ #t77.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<dynamic>*) →* void};
else
- #t77.{core::Set::addAll}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
- #t77.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t77.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
+ #t77.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t77;
core::Set<dynamic>* map82 = block {
final core::Set<dynamic>* #t78 = col::LinkedHashSet::•<dynamic>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t78.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t78.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
var map82 = {if (oracle(\"foo\")) ...mapToInt else ...dynVar, null};
^"){(dynamic) →* core::bool*};
else
- #t78.{core::Set::addAll}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
- #t78.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t78.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
+ #t78.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t78;
core::List<core::num*>* list83 = block {
final core::List<core::num*>* #t79 = <core::num*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t79.{core::List::add}(42){(core::num*) →* void};
+ #t79.{core::List::add}{Invariant}(42){(core::num*) →* void};
else
- #t79.{core::List::addAll}(listDouble){(core::Iterable<core::num*>*) →* void};
+ #t79.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num*>*) →* void};
} =>#t79;
core::Set<core::num*>* set83 = block {
final core::Set<core::num*>* #t80 = col::LinkedHashSet::•<core::num*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t80.{core::Set::addAll}(listInt){(core::Iterable<core::num*>*) →* void};
+ #t80.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num*>*) →* void};
else
- #t80.{core::Set::add}(3.14){(core::num*) →* core::bool*};
- #t80.{core::Set::add}(null){(core::num*) →* core::bool*};
+ #t80.{core::Set::add}{Invariant}(3.14){(core::num*) →* core::bool*};
+ #t80.{core::Set::add}{Invariant}(null){(core::num*) →* core::bool*};
} =>#t80;
core::Map<core::String*, core::num*>* map83 = block {
final core::Map<core::String*, core::num*>* #t81 = <core::String*, core::num*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::num*>* #t82 in mapToInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::num*>>})
- #t81.{core::Map::[]=}(#t82.{core::MapEntry::key}{core::String*}, #t82.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
+ #t81.{core::Map::[]=}{Invariant}(#t82.{core::MapEntry::key}{core::String*}, #t82.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
else
- #t81.{core::Map::[]=}("bar", 3.14){(core::String*, core::num*) →* void};
- #t81.{core::Map::[]=}("baz", null){(core::String*, core::num*) →* void};
+ #t81.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String*, core::num*) →* void};
+ #t81.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::num*) →* void};
} =>#t81;
core::List<core::int*>* list90 = block {
final core::List<core::int*>* #t83 = <core::int*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t83.{core::List::add}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
+ #t83.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
} =>#t83;
core::Set<core::int*>* set90 = block {
final core::Set<core::int*>* #t84 = col::LinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t84.{core::Set::add}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
- #t84.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t84.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
+ #t84.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t84;
core::Map<core::String*, core::int*>* map90 = block {
final core::Map<core::String*, core::int*>* #t85 = <core::String*, core::int*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t85.{core::Map::[]=}("bar", dynVar as{TypeError,ForDynamic} core::int*){(core::String*, core::int*) →* void};
- #t85.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t85.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*){(core::String*, core::int*) →* void};
+ #t85.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t85;
core::List<core::int*>* list91 = block {
final core::List<core::int*>* #t86 = <core::int*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
for (final dynamic #t87 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t88 = #t87 as{TypeError} core::int*;
- #t86.{core::List::add}(#t88){(core::int*) →* void};
+ #t86.{core::List::add}{Invariant}(#t88){(core::int*) →* void};
}
} =>#t86;
core::Set<core::int*>* set91 = block {
@@ -916,9 +916,9 @@
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
for (final dynamic #t90 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t91 = #t90 as{TypeError} core::int*;
- #t89.{core::Set::add}(#t91){(core::int*) →* core::bool*};
+ #t89.{core::Set::add}{Invariant}(#t91){(core::int*) →* core::bool*};
}
- #t89.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t89.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t89;
core::Map<core::String*, core::int*>* map91 = block {
final core::Map<core::String*, core::int*>* #t92 = <core::String*, core::int*>{};
@@ -926,64 +926,64 @@
for (final core::MapEntry<dynamic, dynamic>* #t93 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}) {
final core::String* #t94 = #t93.{core::MapEntry::key}{dynamic} as{TypeError} core::String*;
final core::int* #t95 = #t93.{core::MapEntry::value}{dynamic} as{TypeError} core::int*;
- #t92.{core::Map::[]=}(#t94, #t95){(core::String*, core::int*) →* void};
+ #t92.{core::Map::[]=}{Invariant}(#t94, #t95){(core::String*, core::int*) →* void};
}
- #t92.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t92.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t92;
core::List<core::int*>* list100 = block {
final core::List<core::int*>* #t96 = <core::int*>[];
if(dynVar as{TypeError,ForDynamic} core::bool*)
- #t96.{core::List::add}(42){(core::int*) →* void};
+ #t96.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t96;
core::Set<core::int*>* set100 = block {
final core::Set<core::int*>* #t97 = col::LinkedHashSet::•<core::int*>();
if(dynVar as{TypeError,ForDynamic} core::bool*)
- #t97.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t97.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
} =>#t97;
core::Map<core::int*, core::int*>* map100 = block {
final core::Map<core::int*, core::int*>* #t98 = <core::int*, core::int*>{};
if(dynVar as{TypeError,ForDynamic} core::bool*)
- #t98.{core::Map::[]=}(42, 42){(core::int*, core::int*) →* void};
+ #t98.{core::Map::[]=}{Invariant}(42, 42){(core::int*, core::int*) →* void};
} =>#t98;
}
static method testIfElementErrors(core::Map<core::int*, core::int*>* map) → dynamic {
block {
final core::List<core::int*>* #t99 = <core::int*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t99.{core::List::add}(let final Never* #t100 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t99.{core::List::add}{Invariant}(let final Never* #t100 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>[if (oracle(\"foo\")) \"bar\"];
^" in "bar" as{TypeError} core::int*){(core::int*) →* void};
} =>#t99;
block {
final core::Set<core::int*>* #t101 = col::LinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t101.{core::Set::add}(let final Never* #t102 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:88:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t101.{core::Set::add}{Invariant}(let final Never* #t102 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:88:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>{if (oracle(\"foo\")) \"bar\", null};
^" in "bar" as{TypeError} core::int*){(core::int*) →* core::bool*};
- #t101.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t101.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t101;
block {
final core::Map<core::String*, core::int*>* #t103 = <core::String*, core::int*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t103.{core::Map::[]=}("bar", let final Never* #t104 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t103.{core::Map::[]=}{Invariant}("bar", let final Never* #t104 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<String, int>{if (oracle(\"foo\")) \"bar\": \"bar\", \"baz\": null};
^" in "bar" as{TypeError} core::int*){(core::String*, core::int*) →* void};
- #t103.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t103.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t103;
block {
final core::List<core::int*>* #t105 = <core::int*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t105.{core::List::addAll}(<core::int*>[let final Never* #t106 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t105.{core::List::addAll}{Invariant}(<core::int*>[let final Never* #t106 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>[if (oracle(\"foo\")) ...[\"bar\"]];
^" in "bar" as{TypeError} core::int*]){(core::Iterable<core::int*>*) →* void};
} =>#t105;
block {
final core::Set<core::int*>* #t107 = col::LinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t107.{core::Set::addAll}(<core::int*>[let final Never* #t108 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t107.{core::Set::addAll}{Invariant}(<core::int*>[let final Never* #t108 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>{if (oracle(\"foo\")) ...[\"bar\"], null};
^" in "bar" as{TypeError} core::int*]){(core::Iterable<core::int*>*) →* void};
- #t107.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t107.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t107;
block {
final core::Map<core::String*, core::int*>* #t109 = <core::String*, core::int*>{};
@@ -991,13 +991,13 @@
for (final core::MapEntry<core::String*, core::int*>* #t110 in <core::String*, core::int*>{"bar": let final Never* #t111 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:92:47: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<String, int>{if (oracle(\"foo\")) ...{\"bar\": \"bar\"}, \"baz\": null};
^" in "bar" as{TypeError} core::int*}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t109.{core::Map::[]=}(#t110.{core::MapEntry::key}{core::String*}, #t110.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
- #t109.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t109.{core::Map::[]=}{Invariant}(#t110.{core::MapEntry::key}{core::String*}, #t110.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t109.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t109;
block {
final core::List<core::int*>* #t112 = <core::int*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t112.{core::List::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t112.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>[if (oracle(\"foo\")) ...map];
^"){(core::int*) →* void};
@@ -1005,11 +1005,11 @@
block {
final core::Set<core::int*>* #t113 = col::LinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t113.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t113.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{if (oracle(\"foo\")) ...map, null};
^"){(core::int*) →* core::bool*};
- #t113.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t113.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t113;
<core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:39: Error: Unexpected type 'List<String>' of a map spread entry. Expected 'dynamic' or a Map.
- 'List' is from 'dart:core'.
@@ -1021,58 +1021,58 @@
block {
final core::List<core::String*>* #t114 = <core::String*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t114.{core::List::add}(let final Never* #t115 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t114.{core::List::add}{Invariant}(let final Never* #t115 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
<String>[if (oracle(\"foo\")) 42 else 3.14];
^" in 42 as{TypeError} core::String*){(core::String*) →* void};
else
- #t114.{core::List::add}(let final Never* #t116 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+ #t114.{core::List::add}{Invariant}(let final Never* #t116 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
<String>[if (oracle(\"foo\")) 42 else 3.14];
^" in 3.14 as{TypeError} core::String*){(core::String*) →* void};
} =>#t114;
block {
final core::Set<core::String*>* #t117 = col::LinkedHashSet::•<core::String*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t117.{core::Set::add}(let final Never* #t118 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t117.{core::Set::add}{Invariant}(let final Never* #t118 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
<String>{if (oracle(\"foo\")) 42 else 3.14, null};
^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
else
- #t117.{core::Set::add}(let final Never* #t119 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+ #t117.{core::Set::add}{Invariant}(let final Never* #t119 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
<String>{if (oracle(\"foo\")) 42 else 3.14, null};
^" in 3.14 as{TypeError} core::String*){(core::String*) →* core::bool*};
- #t117.{core::Set::add}(null){(core::String*) →* core::bool*};
+ #t117.{core::Set::add}{Invariant}(null){(core::String*) →* core::bool*};
} =>#t117;
block {
final core::Map<core::String*, core::String*>* #t120 = <core::String*, core::String*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t120.{core::Map::[]=}("bar", let final Never* #t121 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t120.{core::Map::[]=}{Invariant}("bar", let final Never* #t121 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
<String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
^" in 42 as{TypeError} core::String*){(core::String*, core::String*) →* void};
else
- #t120.{core::Map::[]=}("baz", let final Never* #t122 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+ #t120.{core::Map::[]=}{Invariant}("baz", let final Never* #t122 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
<String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
^" in 3.14 as{TypeError} core::String*){(core::String*, core::String*) →* void};
- #t120.{core::Map::[]=}("baz", null){(core::String*, core::String*) →* void};
+ #t120.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::String*) →* void};
} =>#t120;
block {
final core::List<core::int*>* #t123 = <core::int*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t123.{core::List::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t123.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>[if (oracle(\"foo\")) ...map else 42];
^"){(core::int*) →* void};
else
- #t123.{core::List::add}(42){(core::int*) →* void};
+ #t123.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t123;
block {
final core::Set<core::int*>* #t124 = col::LinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t124.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t124.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{if (oracle(\"foo\")) ...map else 42, null};
^"){(core::int*) →* core::bool*};
else
- #t124.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t124.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t124.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t124.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t124;
<core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:39: Error: Unexpected type 'List<int>' of a map spread entry. Expected 'dynamic' or a Map.
- 'List' is from 'dart:core'.
@@ -1084,9 +1084,9 @@
block {
final core::List<core::int*>* #t125 = <core::int*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t125.{core::List::add}(42){(core::int*) →* void};
+ #t125.{core::List::add}{Invariant}(42){(core::int*) →* void};
else
- #t125.{core::List::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t125.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>[if (oracle(\"foo\")) 42 else ...map];
^"){(core::int*) →* void};
@@ -1094,13 +1094,13 @@
block {
final core::Set<core::int*>* #t126 = col::LinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t126.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t126.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{if (oracle(\"foo\")) ...map else 42, null};
^"){(core::int*) →* core::bool*};
else
- #t126.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t126.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t126.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t126.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t126;
<core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:54: Error: Unexpected type 'List<int>' of a map spread entry. Expected 'dynamic' or a Map.
- 'List' is from 'dart:core'.
@@ -1132,63 +1132,63 @@
if(let final Never* #t128 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
List<int> list20 = [if (42) 42];
^" in 42 as{TypeError} core::bool*)
- #t127.{core::List::add}(42){(core::int*) →* void};
+ #t127.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t127;
core::Set<core::int*>* set20 = block {
final core::Set<core::int*>* #t129 = col::LinkedHashSet::•<core::int*>();
if(let final Never* #t130 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
Set<int> set20 = {if (42) 42};
^" in 42 as{TypeError} core::bool*)
- #t129.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t129.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
} =>#t129;
core::Map<core::int*, core::int*>* map30 = block {
final core::Map<core::int*, core::int*>* #t131 = <core::int*, core::int*>{};
if(let final Never* #t132 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
Map<int, int> map30 = {if (42) 42: 42};
^" in 42 as{TypeError} core::bool*)
- #t131.{core::Map::[]=}(42, 42){(core::int*, core::int*) →* void};
+ #t131.{core::Map::[]=}{Invariant}(42, 42){(core::int*, core::int*) →* void};
} =>#t131;
core::List<core::String*>* list40 = block {
final core::List<core::String*>* #t133 = <core::String*>[];
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t133.{core::List::add}(let final Never* #t134 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+ #t133.{core::List::add}{Invariant}(let final Never* #t134 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
^" in true as{TypeError} core::String*){(core::String*) →* void};
else
- #t133.{core::List::add}(let final Never* #t135 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t133.{core::List::add}{Invariant}(let final Never* #t135 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
^" in 42 as{TypeError} core::String*){(core::String*) →* void};
} =>#t133;
core::Set<core::String*>* set40 = block {
final core::Set<core::String*>* #t136 = col::LinkedHashSet::•<core::String*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t136.{core::Set::add}(let final Never* #t137 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+ #t136.{core::Set::add}{Invariant}(let final Never* #t137 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
^" in true as{TypeError} core::String*){(core::String*) →* core::bool*};
else
- #t136.{core::Set::add}(let final Never* #t138 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t136.{core::Set::add}{Invariant}(let final Never* #t138 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
} =>#t136;
core::Map<core::String*, core::int*>* map40 = block {
final core::Map<core::String*, core::int*>* #t139 = <core::String*, core::int*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t139.{core::Map::[]=}(let final Never* #t140 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+ #t139.{core::Map::[]=}{Invariant}(let final Never* #t140 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
^" in true as{TypeError} core::String*, 42){(core::String*, core::int*) →* void};
else
- #t139.{core::Map::[]=}(let final Never* #t141 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t139.{core::Map::[]=}{Invariant}(let final Never* #t141 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
^" in 42 as{TypeError} core::String*, 42){(core::String*, core::int*) →* void};
} =>#t139;
core::Map<core::int*, core::String*>* map41 = block {
final core::Map<core::int*, core::String*>* #t142 = <core::int*, core::String*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t142.{core::Map::[]=}(42, let final Never* #t143 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+ #t142.{core::Map::[]=}{Invariant}(42, let final Never* #t143 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
^" in true as{TypeError} core::String*){(core::int*, core::String*) →* void};
else
- #t142.{core::Map::[]=}(42, let final Never* #t144 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t142.{core::Map::[]=}{Invariant}(42, let final Never* #t144 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
^" in 42 as{TypeError} core::String*){(core::int*, core::String*) →* void};
} =>#t142;
@@ -1197,481 +1197,481 @@
core::List<core::int*>* list10 = block {
final core::List<core::int*>* #t145 = <core::int*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t145.{core::List::add}(42){(core::int*) →* void};
+ #t145.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t145;
core::Set<core::int*>* set10 = block {
final core::Set<core::int*>* #t146 = col::LinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t146.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t146.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t146.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t146.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t146;
core::Map<core::String*, core::int*>* map10 = block {
final core::Map<core::String*, core::int*>* #t147 = <core::String*, core::int*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t147.{core::Map::[]=}("bar", 42){(core::String*, core::int*) →* void};
- #t147.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t147.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::int*) →* void};
+ #t147.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t147;
core::List<dynamic>* list11 = block {
final core::List<dynamic>* #t148 = <dynamic>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t148.{core::List::add}(dynVar){(dynamic) →* void};
+ #t148.{core::List::add}{Invariant}(dynVar){(dynamic) →* void};
} =>#t148;
core::Set<dynamic>* set11 = block {
final core::Set<dynamic>* #t149 = col::LinkedHashSet::•<dynamic>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t149.{core::Set::add}(dynVar){(dynamic) →* core::bool*};
- #t149.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t149.{core::Set::add}{Invariant}(dynVar){(dynamic) →* core::bool*};
+ #t149.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t149;
core::Map<core::String*, dynamic>* map11 = block {
final core::Map<core::String*, dynamic>* #t150 = <core::String*, dynamic>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t150.{core::Map::[]=}("bar", dynVar){(core::String*, dynamic) →* void};
- #t150.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t150.{core::Map::[]=}{Invariant}("bar", dynVar){(core::String*, dynamic) →* void};
+ #t150.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t150;
core::List<core::List<core::int*>*>* list12 = block {
final core::List<core::List<core::int*>*>* #t151 = <core::List<core::int*>*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t151.{core::List::add}(<core::int*>[42]){(core::List<core::int*>*) →* void};
+ #t151.{core::List::add}{Invariant}(<core::int*>[42]){(core::List<core::int*>*) →* void};
} =>#t151;
core::Set<core::List<core::int*>*>* set12 = block {
final core::Set<core::List<core::int*>*>* #t152 = col::LinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t152.{core::Set::add}(<core::int*>[42]){(core::List<core::int*>*) →* core::bool*};
- #t152.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t152.{core::Set::add}{Invariant}(<core::int*>[42]){(core::List<core::int*>*) →* core::bool*};
+ #t152.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t152;
core::Map<core::String*, core::List<core::int*>*>* map12 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t153 = <core::String*, core::List<core::int*>*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t153.{core::Map::[]=}("bar", <core::int*>[42]){(core::String*, core::List<core::int*>*) →* void};
- #t153.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t153.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]){(core::String*, core::List<core::int*>*) →* void};
+ #t153.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t153;
core::List<core::int*>* list20 = block {
final core::List<core::int*>* #t154 = <core::int*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t154.{core::List::addAll}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
+ #t154.{core::List::addAll}{Invariant}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
} =>#t154;
core::Set<core::int*>* set20 = block {
final core::Set<core::int*>* #t155 = col::LinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t155.{core::Set::addAll}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
- #t155.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t155.{core::Set::addAll}{Invariant}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
+ #t155.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t155;
core::Map<core::String*, core::int*>* map20 = block {
final core::Map<core::String*, core::int*>* #t156 = <core::String*, core::int*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
for (final core::MapEntry<core::String*, core::int*>* #t157 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t156.{core::Map::[]=}(#t157.{core::MapEntry::key}{core::String*}, #t157.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
- #t156.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t156.{core::Map::[]=}{Invariant}(#t157.{core::MapEntry::key}{core::String*}, #t157.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t156.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t156;
core::List<dynamic>* list21 = block {
final core::List<dynamic>* #t158 = <dynamic>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t158.{core::List::addAll}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
+ #t158.{core::List::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
} =>#t158;
core::Set<dynamic>* set21 = block {
final core::Set<dynamic>* #t159 = col::LinkedHashSet::•<dynamic>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t159.{core::Set::addAll}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
- #t159.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t159.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
+ #t159.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t159;
core::Map<core::String*, dynamic>* map21 = block {
final core::Map<core::String*, dynamic>* #t160 = <core::String*, dynamic>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
for (final core::MapEntry<core::String*, dynamic>* #t161 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, dynamic>>})
- #t160.{core::Map::[]=}(#t161.{core::MapEntry::key}{core::String*}, #t161.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
- #t160.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t160.{core::Map::[]=}{Invariant}(#t161.{core::MapEntry::key}{core::String*}, #t161.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
+ #t160.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t160;
core::List<core::List<core::int*>*>* list22 = block {
final core::List<core::List<core::int*>*>* #t162 = <core::List<core::int*>*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t162.{core::List::addAll}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t162.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t162;
core::Set<core::List<core::int*>*>* set22 = block {
final core::Set<core::List<core::int*>*>* #t163 = col::LinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t163.{core::Set::addAll}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t163.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t163.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t163.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t163;
core::Map<core::String*, core::List<core::int*>*>* map22 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t164 = <core::String*, core::List<core::int*>*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t165 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>})
- #t164.{core::Map::[]=}(#t165.{core::MapEntry::key}{core::String*}, #t165.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
- #t164.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t164.{core::Map::[]=}{Invariant}(#t165.{core::MapEntry::key}{core::String*}, #t165.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t164.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t164;
core::List<core::int*>* list30 = block {
final core::List<core::int*>* #t166 = <core::int*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t166.{core::List::addAll}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
+ #t166.{core::List::addAll}{Invariant}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
} =>#t166;
core::Set<core::int*>* set30 = block {
final core::Set<core::int*>* #t167 = col::LinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t167.{core::Set::addAll}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
- #t167.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t167.{core::Set::addAll}{Invariant}(<core::int*>[42]){(core::Iterable<core::int*>*) →* void};
+ #t167.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t167;
core::Map<core::String*, core::int*>* map30 = block {
final core::Map<core::String*, core::int*>* #t168 = <core::String*, core::int*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::int*>* #t169 in <core::String*, core::int*>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t168.{core::Map::[]=}(#t169.{core::MapEntry::key}{core::String*}, #t169.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
- #t168.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t168.{core::Map::[]=}{Invariant}(#t169.{core::MapEntry::key}{core::String*}, #t169.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t168.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t168;
core::List<dynamic>* list31 = block {
final core::List<dynamic>* #t170 = <dynamic>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t170.{core::List::addAll}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
+ #t170.{core::List::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
} =>#t170;
core::Set<dynamic>* set31 = block {
final core::Set<dynamic>* #t171 = col::LinkedHashSet::•<dynamic>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t171.{core::Set::addAll}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
- #t171.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t171.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]){(core::Iterable<dynamic>*) →* void};
+ #t171.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t171;
core::Map<core::String*, dynamic>* map31 = block {
final core::Map<core::String*, dynamic>* #t172 = <core::String*, dynamic>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, dynamic>* #t173 in <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, dynamic>>})
- #t172.{core::Map::[]=}(#t173.{core::MapEntry::key}{core::String*}, #t173.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
- #t172.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t172.{core::Map::[]=}{Invariant}(#t173.{core::MapEntry::key}{core::String*}, #t173.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
+ #t172.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t172;
core::List<core::List<core::int*>*>* list33 = block {
final core::List<core::List<core::int*>*>* #t174 = <core::List<core::int*>*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t174.{core::List::addAll}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t174.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t174;
core::Set<core::List<core::int*>*>* set33 = block {
final core::Set<core::List<core::int*>*>* #t175 = col::LinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t175.{core::Set::addAll}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t175.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t175.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t175.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t175;
core::Map<core::String*, core::List<core::int*>*>* map33 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t176 = <core::String*, core::List<core::int*>*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t177 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>})
- #t176.{core::Map::[]=}(#t177.{core::MapEntry::key}{core::String*}, #t177.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
- #t176.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t176.{core::Map::[]=}{Invariant}(#t177.{core::MapEntry::key}{core::String*}, #t177.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t176.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t176;
core::List<core::List<core::int*>*>* list40 = block {
final core::List<core::List<core::int*>*>* #t178 = <core::List<core::int*>*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t178.{core::List::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t178.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t178;
core::Set<core::List<core::int*>*>* set40 = block {
final core::Set<core::List<core::int*>*>* #t179 = col::LinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t179.{core::Set::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t179.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t179.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t179.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t179;
core::Map<core::String*, core::List<core::int*>*>* map40 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t180 = <core::String*, core::List<core::int*>*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t181 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>})
- #t180.{core::Map::[]=}(#t181.{core::MapEntry::key}{core::String*}, #t181.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
- #t180.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t180.{core::Map::[]=}{Invariant}(#t181.{core::MapEntry::key}{core::String*}, #t181.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t180.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t180;
core::List<core::List<core::int*>*>* list41 = block {
final core::List<core::List<core::int*>*>* #t182 = <core::List<core::int*>*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t182.{core::List::addAll}( block {
+ #t182.{core::List::addAll}{Invariant}( block {
final core::Set<core::List<core::int*>*>* #t183 = col::LinkedHashSet::•<core::List<core::int*>*>();
- #t183.{core::Set::add}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
+ #t183.{core::Set::add}{Invariant}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
} =>#t183){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t182;
core::Set<core::List<core::int*>*>* set41 = block {
final core::Set<core::List<core::int*>*>* #t184 = col::LinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t184.{core::Set::addAll}( block {
+ #t184.{core::Set::addAll}{Invariant}( block {
final core::Set<core::List<core::int*>*>* #t185 = col::LinkedHashSet::•<core::List<core::int*>*>();
- #t185.{core::Set::add}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
+ #t185.{core::Set::add}{Invariant}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
} =>#t185){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t184.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t184.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t184;
core::List<core::List<core::int*>*>* list42 = block {
final core::List<core::List<core::int*>*>* #t186 = <core::List<core::int*>*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t186.{core::List::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t186.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t186;
core::Set<core::List<core::int*>*>* set42 = block {
final core::Set<core::List<core::int*>*>* #t187 = col::LinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t187.{core::Set::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t187.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t187.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t187.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t187;
core::Map<core::String*, core::List<core::int*>*>* map42 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t188 = <core::String*, core::List<core::int*>*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t189 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>})
- #t188.{core::Map::[]=}(#t189.{core::MapEntry::key}{core::String*}, #t189.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
- #t188.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t188.{core::Map::[]=}{Invariant}(#t189.{core::MapEntry::key}{core::String*}, #t189.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t188.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t188;
core::List<core::int*>* list50 = block {
final core::List<core::int*>* #t190 = <core::int*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t190.{core::List::addAll}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
+ #t190.{core::List::addAll}{Invariant}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
} =>#t190;
core::Set<core::int*>* set50 = block {
final core::Set<core::int*>* #t191 = col::LinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t191.{core::Set::addAll}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
- #t191.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t191.{core::Set::addAll}{Invariant}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
+ #t191.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t191;
core::Map<core::String*, core::int*>* map50 = block {
final core::Map<core::String*, core::int*>* #t192 = <core::String*, core::int*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
for (final core::MapEntry<core::String*, core::int*>* #t193 in <core::String*, core::int*>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t192.{core::Map::[]=}(#t193.{core::MapEntry::key}{core::String*}, #t193.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
- #t192.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t192.{core::Map::[]=}{Invariant}(#t193.{core::MapEntry::key}{core::String*}, #t193.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t192.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t192;
core::List<core::int*>* list51 = block {
final core::List<core::int*>* #t194 = <core::int*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t194.{core::List::addAll}( block {
+ #t194.{core::List::addAll}{Invariant}( block {
final core::Set<core::int*>* #t195 = col::LinkedHashSet::•<core::int*>();
} =>#t195){(core::Iterable<core::int*>*) →* void};
} =>#t194;
core::Set<core::int*>* set51 = block {
final core::Set<core::int*>* #t196 = col::LinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t196.{core::Set::addAll}( block {
+ #t196.{core::Set::addAll}{Invariant}( block {
final core::Set<core::int*>* #t197 = col::LinkedHashSet::•<core::int*>();
} =>#t197){(core::Iterable<core::int*>*) →* void};
- #t196.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t196.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t196;
core::List<core::int*>* list52 = block {
final core::List<core::int*>* #t198 = <core::int*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t198.{core::List::addAll}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
+ #t198.{core::List::addAll}{Invariant}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
} =>#t198;
core::Set<core::int*>* set52 = block {
final core::Set<core::int*>* #t199 = col::LinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t199.{core::Set::addAll}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
- #t199.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t199.{core::Set::addAll}{Invariant}(<core::int*>[]){(core::Iterable<core::int*>*) →* void};
+ #t199.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t199;
core::List<core::List<core::int*>*>* list60 = block {
final core::List<core::List<core::int*>*>* #t200 = <core::List<core::int*>*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t200.{core::List::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t200.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t200;
core::Set<core::List<core::int*>*>* set60 = block {
final core::Set<core::List<core::int*>*>* #t201 = col::LinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t201.{core::Set::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t201.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t201.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t201.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t201;
core::Map<core::String*, core::List<core::int*>*>* map60 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t202 = <core::String*, core::List<core::int*>*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t203 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>})
- #t202.{core::Map::[]=}(#t203.{core::MapEntry::key}{core::String*}, #t203.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
- #t202.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t202.{core::Map::[]=}{Invariant}(#t203.{core::MapEntry::key}{core::String*}, #t203.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t202.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t202;
core::List<core::List<core::int*>*>* list61 = block {
final core::List<core::List<core::int*>*>* #t204 = <core::List<core::int*>*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t204.{core::List::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t204.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t204;
core::Set<core::List<core::int*>*>* set61 = block {
final core::Set<core::List<core::int*>*>* #t205 = col::LinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t205.{core::Set::addAll}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t205.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t205.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t205.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t205;
core::Map<core::String*, core::List<core::int*>*>* map61 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t206 = <core::String*, core::List<core::int*>*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t207 in <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>})
- #t206.{core::Map::[]=}(#t207.{core::MapEntry::key}{core::String*}, #t207.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
- #t206.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t206.{core::Map::[]=}{Invariant}(#t207.{core::MapEntry::key}{core::String*}, #t207.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t206.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t206;
core::List<core::List<core::int*>*>* list70 = block {
final core::List<core::List<core::int*>*>* #t208 = <core::List<core::int*>*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t208.{core::List::add}(<core::int*>[]){(core::List<core::int*>*) →* void};
+ #t208.{core::List::add}{Invariant}(<core::int*>[]){(core::List<core::int*>*) →* void};
} =>#t208;
core::Set<core::List<core::int*>*>* set70 = block {
final core::Set<core::List<core::int*>*>* #t209 = col::LinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t209.{core::Set::add}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
- #t209.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t209.{core::Set::add}{Invariant}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
+ #t209.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t209;
core::Map<core::String*, core::List<core::int*>*>* map70 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t210 = <core::String*, core::List<core::int*>*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t210.{core::Map::[]=}("bar", <core::int*>[]){(core::String*, core::List<core::int*>*) →* void};
- #t210.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t210.{core::Map::[]=}{Invariant}("bar", <core::int*>[]){(core::String*, core::List<core::int*>*) →* void};
+ #t210.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t210;
core::List<core::List<core::int*>*>* list71 = block {
final core::List<core::List<core::int*>*>* #t211 = <core::List<core::int*>*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t211.{core::List::add}(<core::int*>[]){(core::List<core::int*>*) →* void};
+ #t211.{core::List::add}{Invariant}(<core::int*>[]){(core::List<core::int*>*) →* void};
} =>#t211;
core::Set<core::List<core::int*>*>* set71 = block {
final core::Set<core::List<core::int*>*>* #t212 = col::LinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t212.{core::Set::add}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
- #t212.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t212.{core::Set::add}{Invariant}(<core::int*>[]){(core::List<core::int*>*) →* core::bool*};
+ #t212.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t212;
core::Map<core::String*, core::List<core::int*>*>* map71 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t213 = <core::String*, core::List<core::int*>*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t213.{core::Map::[]=}("bar", <core::int*>[]){(core::String*, core::List<core::int*>*) →* void};
- #t213.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t213.{core::Map::[]=}{Invariant}("bar", <core::int*>[]){(core::String*, core::List<core::int*>*) →* void};
+ #t213.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t213;
core::List<core::num*>* list80 = block {
final core::List<core::num*>* #t214 = <core::num*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t214.{core::List::add}(42){(core::num*) →* void};
+ #t214.{core::List::add}{Invariant}(42){(core::num*) →* void};
else
- #t214.{core::List::add}(3.14){(core::num*) →* void};
+ #t214.{core::List::add}{Invariant}(3.14){(core::num*) →* void};
} =>#t214;
core::Set<core::num*>* set80 = block {
final core::Set<core::num*>* #t215 = col::LinkedHashSet::•<core::num*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t215.{core::Set::add}(42){(core::num*) →* core::bool*};
+ #t215.{core::Set::add}{Invariant}(42){(core::num*) →* core::bool*};
else
- #t215.{core::Set::add}(3.14){(core::num*) →* core::bool*};
- #t215.{core::Set::add}(null){(core::num*) →* core::bool*};
+ #t215.{core::Set::add}{Invariant}(3.14){(core::num*) →* core::bool*};
+ #t215.{core::Set::add}{Invariant}(null){(core::num*) →* core::bool*};
} =>#t215;
core::Map<core::String*, core::num*>* map80 = block {
final core::Map<core::String*, core::num*>* #t216 = <core::String*, core::num*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t216.{core::Map::[]=}("bar", 42){(core::String*, core::num*) →* void};
+ #t216.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::num*) →* void};
else
- #t216.{core::Map::[]=}("bar", 3.14){(core::String*, core::num*) →* void};
- #t216.{core::Map::[]=}("baz", null){(core::String*, core::num*) →* void};
+ #t216.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String*, core::num*) →* void};
+ #t216.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::num*) →* void};
} =>#t216;
core::List<core::num*>* list81 = block {
final core::List<core::num*>* #t217 = <core::num*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t217.{core::List::addAll}(listInt){(core::Iterable<core::num*>*) →* void};
+ #t217.{core::List::addAll}{Invariant}(listInt){(core::Iterable<core::num*>*) →* void};
else
- #t217.{core::List::addAll}(listDouble){(core::Iterable<core::num*>*) →* void};
+ #t217.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num*>*) →* void};
} =>#t217;
core::Set<core::num*>* set81 = block {
final core::Set<core::num*>* #t218 = col::LinkedHashSet::•<core::num*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t218.{core::Set::addAll}(listInt){(core::Iterable<core::num*>*) →* void};
+ #t218.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num*>*) →* void};
else
- #t218.{core::Set::addAll}(listDouble){(core::Iterable<core::num*>*) →* void};
- #t218.{core::Set::add}(null){(core::num*) →* core::bool*};
+ #t218.{core::Set::addAll}{Invariant}(listDouble){(core::Iterable<core::num*>*) →* void};
+ #t218.{core::Set::add}{Invariant}(null){(core::num*) →* core::bool*};
} =>#t218;
core::Map<core::String*, core::num*>* map81 = block {
final core::Map<core::String*, core::num*>* #t219 = <core::String*, core::num*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::num*>* #t220 in mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::num*>>})
- #t219.{core::Map::[]=}(#t220.{core::MapEntry::key}{core::String*}, #t220.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
+ #t219.{core::Map::[]=}{Invariant}(#t220.{core::MapEntry::key}{core::String*}, #t220.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
else
for (final core::MapEntry<core::String*, core::num*>* #t221 in mapStringDouble.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::num*>>})
- #t219.{core::Map::[]=}(#t221.{core::MapEntry::key}{core::String*}, #t221.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
- #t219.{core::Map::[]=}("baz", null){(core::String*, core::num*) →* void};
+ #t219.{core::Map::[]=}{Invariant}(#t221.{core::MapEntry::key}{core::String*}, #t221.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
+ #t219.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::num*) →* void};
} =>#t219;
core::List<dynamic>* list82 = block {
final core::List<dynamic>* #t222 = <dynamic>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t222.{core::List::addAll}(listInt){(core::Iterable<dynamic>*) →* void};
+ #t222.{core::List::addAll}{Invariant}(listInt){(core::Iterable<dynamic>*) →* void};
else
- #t222.{core::List::addAll}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
+ #t222.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
} =>#t222;
core::Set<dynamic>* set82 = block {
final core::Set<dynamic>* #t223 = col::LinkedHashSet::•<dynamic>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t223.{core::Set::addAll}(listInt){(core::Iterable<dynamic>*) →* void};
+ #t223.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<dynamic>*) →* void};
else
- #t223.{core::Set::addAll}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
- #t223.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t223.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
+ #t223.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t223;
core::Map<dynamic, dynamic>* map82 = block {
final core::Map<dynamic, dynamic>* #t224 = <dynamic, dynamic>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<dynamic, dynamic>* #t225 in mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t224.{core::Map::[]=}(#t225.{core::MapEntry::key}{dynamic}, #t225.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t224.{core::Map::[]=}{Invariant}(#t225.{core::MapEntry::key}{dynamic}, #t225.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
else
for (final core::MapEntry<dynamic, dynamic>* #t226 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t224.{core::Map::[]=}(#t226.{core::MapEntry::key}{dynamic}, #t226.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
- #t224.{core::Map::[]=}("baz", null){(dynamic, dynamic) →* void};
+ #t224.{core::Map::[]=}{Invariant}(#t226.{core::MapEntry::key}{dynamic}, #t226.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t224.{core::Map::[]=}{Invariant}("baz", null){(dynamic, dynamic) →* void};
} =>#t224;
core::List<core::num*>* list83 = block {
final core::List<core::num*>* #t227 = <core::num*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t227.{core::List::add}(42){(core::num*) →* void};
+ #t227.{core::List::add}{Invariant}(42){(core::num*) →* void};
else
- #t227.{core::List::addAll}(listDouble){(core::Iterable<core::num*>*) →* void};
+ #t227.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num*>*) →* void};
} =>#t227;
core::Set<core::num*>* set83 = block {
final core::Set<core::num*>* #t228 = col::LinkedHashSet::•<core::num*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t228.{core::Set::addAll}(listInt){(core::Iterable<core::num*>*) →* void};
+ #t228.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num*>*) →* void};
else
- #t228.{core::Set::add}(3.14){(core::num*) →* core::bool*};
- #t228.{core::Set::add}(null){(core::num*) →* core::bool*};
+ #t228.{core::Set::add}{Invariant}(3.14){(core::num*) →* core::bool*};
+ #t228.{core::Set::add}{Invariant}(null){(core::num*) →* core::bool*};
} =>#t228;
core::Map<core::String*, core::num*>* map83 = block {
final core::Map<core::String*, core::num*>* #t229 = <core::String*, core::num*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
for (final core::MapEntry<core::String*, core::num*>* #t230 in mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::num*>>})
- #t229.{core::Map::[]=}(#t230.{core::MapEntry::key}{core::String*}, #t230.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
+ #t229.{core::Map::[]=}{Invariant}(#t230.{core::MapEntry::key}{core::String*}, #t230.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
else
- #t229.{core::Map::[]=}("bar", 3.14){(core::String*, core::num*) →* void};
- #t229.{core::Map::[]=}("baz", null){(core::String*, core::num*) →* void};
+ #t229.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String*, core::num*) →* void};
+ #t229.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::num*) →* void};
} =>#t229;
core::List<core::int*>* list90 = block {
final core::List<core::int*>* #t231 = <core::int*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t231.{core::List::add}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
+ #t231.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
} =>#t231;
core::Set<core::int*>* set90 = block {
final core::Set<core::int*>* #t232 = col::LinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t232.{core::Set::add}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
- #t232.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t232.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
+ #t232.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t232;
core::Map<core::String*, core::int*>* map90 = block {
final core::Map<core::String*, core::int*>* #t233 = <core::String*, core::int*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t233.{core::Map::[]=}("bar", dynVar as{TypeError,ForDynamic} core::int*){(core::String*, core::int*) →* void};
- #t233.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t233.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*){(core::String*, core::int*) →* void};
+ #t233.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t233;
core::List<core::int*>* list91 = block {
final core::List<core::int*>* #t234 = <core::int*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
for (final dynamic #t235 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t236 = #t235 as{TypeError} core::int*;
- #t234.{core::List::add}(#t236){(core::int*) →* void};
+ #t234.{core::List::add}{Invariant}(#t236){(core::int*) →* void};
}
} =>#t234;
core::Set<core::int*>* set91 = block {
@@ -1679,9 +1679,9 @@
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
for (final dynamic #t238 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t239 = #t238 as{TypeError} core::int*;
- #t237.{core::Set::add}(#t239){(core::int*) →* core::bool*};
+ #t237.{core::Set::add}{Invariant}(#t239){(core::int*) →* core::bool*};
}
- #t237.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t237.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t237;
core::Map<core::String*, core::int*>* map91 = block {
final core::Map<core::String*, core::int*>* #t240 = <core::String*, core::int*>{};
@@ -1689,117 +1689,117 @@
for (final core::MapEntry<dynamic, dynamic>* #t241 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}) {
final core::String* #t242 = #t241.{core::MapEntry::key}{dynamic} as{TypeError} core::String*;
final core::int* #t243 = #t241.{core::MapEntry::value}{dynamic} as{TypeError} core::int*;
- #t240.{core::Map::[]=}(#t242, #t243){(core::String*, core::int*) →* void};
+ #t240.{core::Map::[]=}{Invariant}(#t242, #t243){(core::String*, core::int*) →* void};
}
- #t240.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t240.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t240;
core::List<core::int*>* list100 = block {
final core::List<core::int*>* #t244 = <core::int*>[];
for (final core::int* #t245 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1){(core::num*) →* core::int*})
- #t244.{core::List::add}(42){(core::int*) →* void};
+ #t244.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t244;
core::Set<core::int*>* set100 = block {
final core::Set<core::int*>* #t246 = col::LinkedHashSet::•<core::int*>();
for (final core::int* #t247 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1){(core::num*) →* core::int*})
- #t246.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t246.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
} =>#t246;
core::Map<core::String*, core::int*>* map100 = block {
final core::Map<core::String*, core::int*>* #t248 = <core::String*, core::int*>{};
for (final core::int* #t249 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1){(core::num*) →* core::int*})
- #t248.{core::Map::[]=}("bar", 42){(core::String*, core::int*) →* void};
+ #t248.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::int*) →* void};
} =>#t248;
core::List<core::int*>* list110 = block {
final core::List<core::int*>* #t250 = <core::int*>[];
for (core::int* i in <core::int*>[1, 2, 3])
- #t250.{core::List::add}(i){(core::int*) →* void};
+ #t250.{core::List::add}{Invariant}(i){(core::int*) →* void};
} =>#t250;
core::Set<core::int*>* set110 = block {
final core::Set<core::int*>* #t251 = col::LinkedHashSet::•<core::int*>();
for (core::int* i in <core::int*>[1, 2, 3])
- #t251.{core::Set::add}(i){(core::int*) →* core::bool*};
- #t251.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t251.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
+ #t251.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t251;
core::Map<core::String*, core::int*>* map110 = block {
final core::Map<core::String*, core::int*>* #t252 = <core::String*, core::int*>{};
for (core::int* i in <core::int*>[1, 2, 3])
- #t252.{core::Map::[]=}("bar", i){(core::String*, core::int*) →* void};
- #t252.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t252.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
+ #t252.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t252;
core::List<core::int*>* list120 = block {
final core::List<core::int*>* #t253 = <core::int*>[];
for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
- #t253.{core::List::add}(i as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
+ #t253.{core::List::add}{Invariant}(i as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
} =>#t253;
core::Set<core::int*>* set120 = block {
final core::Set<core::int*>* #t254 = col::LinkedHashSet::•<core::int*>();
for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
- #t254.{core::Set::add}(i as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
- #t254.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t254.{core::Set::add}{Invariant}(i as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
+ #t254.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t254;
core::Map<core::String*, core::int*>* map120 = block {
final core::Map<core::String*, core::int*>* #t255 = <core::String*, core::int*>{};
for (dynamic i in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*)
- #t255.{core::Map::[]=}("bar", i as{TypeError,ForDynamic} core::int*){(core::String*, core::int*) →* void};
- #t255.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t255.{core::Map::[]=}{Invariant}("bar", i as{TypeError,ForDynamic} core::int*){(core::String*, core::int*) →* void};
+ #t255.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t255;
core::List<core::int*>* list130 = block {
final core::List<core::int*>* #t256 = <core::int*>[];
for (core::int* i = 1; i.{core::num::<}(2){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t256.{core::List::add}(i){(core::int*) →* void};
+ #t256.{core::List::add}{Invariant}(i){(core::int*) →* void};
} =>#t256;
core::Set<core::int*>* set130 = block {
final core::Set<core::int*>* #t257 = col::LinkedHashSet::•<core::int*>();
for (core::int* i = 1; i.{core::num::<}(2){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t257.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t257.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
} =>#t257;
core::Map<core::int*, core::int*>* map130 = block {
final core::Map<core::int*, core::int*>* #t258 = <core::int*, core::int*>{};
for (core::int* i = 1; i.{core::num::<}(2){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t258.{core::Map::[]=}(i, i){(core::int*, core::int*) →* void};
+ #t258.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
} =>#t258;
}
static method testForElementErrors(core::Map<core::int*, core::int*>* map, core::List<core::int*>* list) → dynamic async {
block {
final core::List<core::int*>* #t259 = <core::int*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t259.{core::List::add}(let final Never* #t260 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t259.{core::List::add}{Invariant}(let final Never* #t260 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>[for (int i = 0; oracle(\"foo\"); i++) \"bar\"];
^" in "bar" as{TypeError} core::int*){(core::int*) →* void};
} =>#t259;
block {
final core::Set<core::int*>* #t261 = col::LinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t261.{core::Set::add}(let final Never* #t262 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:211:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t261.{core::Set::add}{Invariant}(let final Never* #t262 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:211:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\", null};
^" in "bar" as{TypeError} core::int*){(core::int*) →* core::bool*};
- #t261.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t261.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t261;
block {
final core::Map<core::int*, core::int*>* #t263 = <core::int*, core::int*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t263.{core::Map::[]=}(let final Never* #t264 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t263.{core::Map::[]=}{Invariant}(let final Never* #t264 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
^" in "bar" as{TypeError} core::int*, let final Never* #t265 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
^" in "bar" as{TypeError} core::int*){(core::int*, core::int*) →* void};
- #t263.{core::Map::[]=}(let final Never* #t266 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t263.{core::Map::[]=}{Invariant}(let final Never* #t266 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
^" in "baz" as{TypeError} core::int*, null){(core::int*, core::int*) →* void};
} =>#t263;
block {
final core::List<core::int*>* #t267 = <core::int*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t267.{core::List::addAll}(<core::int*>[let final Never* #t268 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t267.{core::List::addAll}{Invariant}(<core::int*>[let final Never* #t268 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>[for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"]];
^" in "bar" as{TypeError} core::int*]){(core::Iterable<core::int*>*) →* void};
} =>#t267;
block {
final core::Set<core::int*>* #t269 = col::LinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t269.{core::Set::addAll}(<core::int*>[let final Never* #t270 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t269.{core::Set::addAll}{Invariant}(<core::int*>[let final Never* #t270 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>{for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"], null};
^" in "bar" as{TypeError} core::int*]){(core::Iterable<core::int*>*) →* void};
- #t269.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t269.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t269;
block {
final core::Map<core::int*, core::int*>* #t271 = <core::int*, core::int*>{};
@@ -1809,15 +1809,15 @@
^" in "bar" as{TypeError} core::int*: let final Never* #t274 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
^" in "bar" as{TypeError} core::int*}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>})
- #t271.{core::Map::[]=}(#t272.{core::MapEntry::key}{core::int*}, #t272.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
- #t271.{core::Map::[]=}(let final Never* #t275 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t271.{core::Map::[]=}{Invariant}(#t272.{core::MapEntry::key}{core::int*}, #t272.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
+ #t271.{core::Map::[]=}{Invariant}(let final Never* #t275 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
^" in "baz" as{TypeError} core::int*, null){(core::int*, core::int*) →* void};
} =>#t271;
block {
final core::List<core::int*>* #t276 = <core::int*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t276.{core::List::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t276.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>[for (int i = 0; oracle(\"foo\"); i++) ...map];
^"){(core::int*) →* void};
@@ -1825,11 +1825,11 @@
block {
final core::Set<core::int*>* #t277 = col::LinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t277.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:48: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t277.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:48: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{for (int i = 0; oracle(\"foo\"); i++) ...map, null};
^"){(core::int*) →* core::bool*};
- #t277.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t277.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t277;
<core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:53: Error: Unexpected type 'List<int>' of a map spread entry. Expected 'dynamic' or a Map.
- 'List' is from 'dart:core'.
@@ -1842,11 +1842,11 @@
final core::List<core::String*>* #t278 = <core::String*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t278.{core::List::add}(let final Never* #t279 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t278.{core::List::add}{Invariant}(let final Never* #t279 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
<String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
^" in 42 as{TypeError} core::String*){(core::String*) →* void};
else
- #t278.{core::List::add}(let final Never* #t280 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+ #t278.{core::List::add}{Invariant}(let final Never* #t280 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
<String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
^" in 3.14 as{TypeError} core::String*){(core::String*) →* void};
} =>#t278;
@@ -1854,50 +1854,50 @@
final core::Set<core::String*>* #t281 = col::LinkedHashSet::•<core::String*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t281.{core::Set::add}(let final Never* #t282 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t281.{core::Set::add}{Invariant}(let final Never* #t282 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
<String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
else
- #t281.{core::Set::add}(let final Never* #t283 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+ #t281.{core::Set::add}{Invariant}(let final Never* #t283 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
<String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
^" in 3.14 as{TypeError} core::String*){(core::String*) →* core::bool*};
- #t281.{core::Set::add}(null){(core::String*) →* core::bool*};
+ #t281.{core::Set::add}{Invariant}(null){(core::String*) →* core::bool*};
} =>#t281;
block {
final core::Map<core::String*, core::String*>* #t284 = <core::String*, core::String*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t284.{core::Map::[]=}("bar", let final Never* #t285 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t284.{core::Map::[]=}{Invariant}("bar", let final Never* #t285 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
<String, String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
^" in 42 as{TypeError} core::String*){(core::String*, core::String*) →* void};
else
- #t284.{core::Map::[]=}("bar", let final Never* #t286 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+ #t284.{core::Map::[]=}{Invariant}("bar", let final Never* #t286 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
<String, String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
^" in 3.14 as{TypeError} core::String*){(core::String*, core::String*) →* void};
- #t284.{core::Map::[]=}("baz", null){(core::String*, core::String*) →* void};
+ #t284.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::String*) →* void};
} =>#t284;
block {
final core::List<core::int*>* #t287 = <core::int*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t287.{core::List::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t287.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42];
^"){(core::int*) →* void};
else
- #t287.{core::List::add}(42){(core::int*) →* void};
+ #t287.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t287;
block {
final core::Set<core::int*>* #t288 = col::LinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t288.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:62: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t288.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:62: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42, null};
^"){(core::int*) →* core::bool*};
else
- #t288.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t288.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t288.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t288.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t288;
<core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:70: Error: Unexpected type 'List<int>' of a map spread entry. Expected 'dynamic' or a Map.
- 'List' is from 'dart:core'.
@@ -1910,9 +1910,9 @@
final core::List<core::int*>* #t289 = <core::int*>[];
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t289.{core::List::add}(42){(core::int*) →* void};
+ #t289.{core::List::add}{Invariant}(42){(core::int*) →* void};
else
- #t289.{core::List::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t289.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map];
^"){(core::int*) →* void};
@@ -1921,13 +1921,13 @@
final core::Set<core::int*>* #t290 = col::LinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t290.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t290.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
else
- #t290.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t290.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map, null};
^"){(core::int*) →* core::bool*};
- #t290.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t290.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t290;
<core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:85: Error: Unexpected type 'List<int>' of a map spread entry. Expected 'dynamic' or a Map.
- 'List' is from 'dart:core'.
@@ -1943,7 +1943,7 @@
invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:230:14: Error: Can't assign to the final variable 'i'.
<int>[for (i in <int>[1]) i];
^";
- #t291.{core::List::add}(i){(core::int*) →* void};
+ #t291.{core::List::add}{Invariant}(i){(core::int*) →* void};
}
} =>#t291;
block {
@@ -1952,9 +1952,9 @@
invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:231:14: Error: Can't assign to the final variable 'i'.
<int>{for (i in <int>[1]) i, null};
^";
- #t293.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t293.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
}
- #t293.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t293.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t293;
block {
final core::Map<core::String*, core::int*>* #t295 = <core::String*, core::int*>{};
@@ -1962,9 +1962,9 @@
invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:21: Error: Can't assign to the final variable 'i'.
\t<String, int>{for (i in <int>[1]) \"bar\": i, \"baz\": null};
\t ^";
- #t295.{core::Map::[]=}("bar", i){(core::String*, core::int*) →* void};
+ #t295.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
}
- #t295.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t295.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t295;
core::List<dynamic>* list10 = block {
final core::List<dynamic>* #t297 = <dynamic>[];
@@ -1972,7 +1972,7 @@
- 'Iterable' is from 'dart:core'.
var list10 = [for (var i in \"not iterable\") i];
^" in "not iterable" as{TypeError} core::Iterable<dynamic>*)
- #t297.{core::List::add}(i){(dynamic) →* void};
+ #t297.{core::List::add}{Invariant}(i){(dynamic) →* void};
} =>#t297;
core::Set<dynamic>* set10 = block {
final core::Set<dynamic>* #t299 = col::LinkedHashSet::•<dynamic>();
@@ -1980,8 +1980,8 @@
- 'Iterable' is from 'dart:core'.
var set10 = {for (var i in \"not iterable\") i, null};
^" in "not iterable" as{TypeError} core::Iterable<dynamic>*)
- #t299.{core::Set::add}(i){(dynamic) →* core::bool*};
- #t299.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t299.{core::Set::add}{Invariant}(i){(dynamic) →* core::bool*};
+ #t299.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t299;
core::Map<core::String*, dynamic>* map10 = block {
final core::Map<core::String*, dynamic>* #t301 = <core::String*, dynamic>{};
@@ -1989,8 +1989,8 @@
- 'Iterable' is from 'dart:core'.
var map10 = {for (var i in \"not iterable\") \"bar\": i, \"baz\": null};
^" in "not iterable" as{TypeError} core::Iterable<dynamic>*)
- #t301.{core::Map::[]=}("bar", i){(core::String*, dynamic) →* void};
- #t301.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t301.{core::Map::[]=}{Invariant}("bar", i){(core::String*, dynamic) →* void};
+ #t301.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t301;
core::List<core::int*>* list20 = block {
final core::List<core::int*>* #t303 = <core::int*>[];
@@ -1999,7 +1999,7 @@
^" in "not" as{TypeError} core::int*, let final Never* #t305 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
var list20 = [for (int i in [\"not\", \"int\"]) i];
^" in "int" as{TypeError} core::int*])
- #t303.{core::List::add}(i){(core::int*) →* void};
+ #t303.{core::List::add}{Invariant}(i){(core::int*) →* void};
} =>#t303;
core::Set<core::int*>* set20 = block {
final core::Set<core::int*>* #t306 = col::LinkedHashSet::•<core::int*>();
@@ -2008,8 +2008,8 @@
^" in "not" as{TypeError} core::int*, let final Never* #t308 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
var set20 = {for (int i in [\"not\", \"int\"]) i, null};
^" in "int" as{TypeError} core::int*])
- #t306.{core::Set::add}(i){(core::int*) →* core::bool*};
- #t306.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t306.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
+ #t306.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t306;
core::Map<core::String*, core::int*>* map20 = block {
final core::Map<core::String*, core::int*>* #t309 = <core::String*, core::int*>{};
@@ -2018,8 +2018,8 @@
^" in "not" as{TypeError} core::int*, let final Never* #t311 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
^" in "int" as{TypeError} core::int*])
- #t309.{core::Map::[]=}("bar", i){(core::String*, core::int*) →* void};
- #t309.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t309.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
+ #t309.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t309;
core::List<dynamic>* list30 = block {
final core::List<dynamic>* #t312 = <dynamic>[];
@@ -2027,7 +2027,7 @@
- 'Stream' is from 'dart:async'.
var list30 = [await for (var i in \"not stream\") i];
^" in "not stream" as{TypeError} asy::Stream<dynamic>*)
- #t312.{core::List::add}(i){(dynamic) →* void};
+ #t312.{core::List::add}{Invariant}(i){(dynamic) →* void};
} =>#t312;
core::Set<dynamic>* set30 = block {
final core::Set<dynamic>* #t314 = col::LinkedHashSet::•<dynamic>();
@@ -2035,8 +2035,8 @@
- 'Stream' is from 'dart:async'.
var set30 = {await for (var i in \"not stream\") i, null};
^" in "not stream" as{TypeError} asy::Stream<dynamic>*)
- #t314.{core::Set::add}(i){(dynamic) →* core::bool*};
- #t314.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t314.{core::Set::add}{Invariant}(i){(dynamic) →* core::bool*};
+ #t314.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t314;
core::Map<core::String*, dynamic>* map30 = block {
final core::Map<core::String*, dynamic>* #t316 = <core::String*, dynamic>{};
@@ -2044,8 +2044,8 @@
- 'Stream' is from 'dart:async'.
var map30 = {await for (var i in \"not stream\") \"bar\": i, \"baz\": null};
^" in "not stream" as{TypeError} asy::Stream<dynamic>*)
- #t316.{core::Map::[]=}("bar", i){(core::String*, dynamic) →* void};
- #t316.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t316.{core::Map::[]=}{Invariant}("bar", i){(core::String*, dynamic) →* void};
+ #t316.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t316;
core::List<core::int*>* list40 = block {
final core::List<core::int*>* #t318 = <core::int*>[];
@@ -2054,7 +2054,7 @@
^" in "not" as{TypeError} core::int*, let final Never* #t320 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
^" in "int" as{TypeError} core::int*]))
- #t318.{core::List::add}(i){(core::int*) →* void};
+ #t318.{core::List::add}{Invariant}(i){(core::int*) →* void};
} =>#t318;
core::Set<core::int*>* set40 = block {
final core::Set<core::int*>* #t321 = col::LinkedHashSet::•<core::int*>();
@@ -2063,8 +2063,8 @@
^" in "not" as{TypeError} core::int*, let final Never* #t323 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
^" in "int" as{TypeError} core::int*]))
- #t321.{core::Set::add}(i){(core::int*) →* core::bool*};
- #t321.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t321.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
+ #t321.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t321;
core::Map<core::String*, core::int*>* map40 = block {
final core::Map<core::String*, core::int*>* #t324 = <core::String*, core::int*>{};
@@ -2073,82 +2073,82 @@
^" in "not" as{TypeError} core::int*, let final Never* #t326 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
^" in "int" as{TypeError} core::int*]))
- #t324.{core::Map::[]=}("bar", i){(core::String*, core::int*) →* void};
- #t324.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t324.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
+ #t324.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t324;
core::List<core::int*>* list50 = block {
final core::List<core::int*>* #t327 = <core::int*>[];
for (; ; )
- #t327.{core::List::add}(42){(core::int*) →* void};
+ #t327.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t327;
core::Set<core::int*>* set50 = block {
final core::Set<core::int*>* #t328 = col::LinkedHashSet::•<core::int*>();
for (; ; )
- #t328.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t328.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t328.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t328.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t328;
core::Map<core::String*, core::int*>* map50 = block {
final core::Map<core::String*, core::int*>* #t329 = <core::String*, core::int*>{};
for (; ; )
- #t329.{core::Map::[]=}("bar", 42){(core::String*, core::int*) →* void};
- #t329.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t329.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::int*) →* void};
+ #t329.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t329;
core::List<core::int*>* list60 = block {
final core::List<core::int*>* #t330 = <core::int*>[];
for (; let final Never* #t331 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
var list60 = [for (; \"not bool\";) 42];
^" in "not bool" as{TypeError} core::bool*; )
- #t330.{core::List::add}(42){(core::int*) →* void};
+ #t330.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t330;
core::Set<core::int*>* set60 = block {
final core::Set<core::int*>* #t332 = col::LinkedHashSet::•<core::int*>();
for (; let final Never* #t333 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
var set60 = {for (; \"not bool\";) 42, null};
^" in "not bool" as{TypeError} core::bool*; )
- #t332.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t332.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t332.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t332.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t332;
core::Map<core::String*, core::int*>* map60 = block {
final core::Map<core::String*, core::int*>* #t334 = <core::String*, core::int*>{};
for (; let final Never* #t335 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
var map60 = {for (; \"not bool\";) \"bar\": 42, \"baz\": null};
^" in "not bool" as{TypeError} core::bool*; )
- #t334.{core::Map::[]=}("bar", 42){(core::String*, core::int*) →* void};
- #t334.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t334.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::int*) →* void};
+ #t334.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t334;
}
static method testForElementErrorsNotAsync(asy::Stream<core::int*>* stream) → dynamic {
block {
final core::List<core::int*>* #t336 = <core::int*>[];
await for (core::int* i in stream)
- #t336.{core::List::add}(i){(core::int*) →* void};
+ #t336.{core::List::add}{Invariant}(i){(core::int*) →* void};
} =>#t336;
block {
final core::Set<core::int*>* #t337 = col::LinkedHashSet::•<core::int*>();
await for (core::int* i in stream)
- #t337.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t337.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
} =>#t337;
block {
final core::Map<core::String*, core::int*>* #t338 = <core::String*, core::int*>{};
await for (core::int* i in stream)
- #t338.{core::Map::[]=}("bar", i){(core::String*, core::int*) →* void};
+ #t338.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
} =>#t338;
}
static method testPromotion(self::A* a) → dynamic {
core::List<core::int*>* list10 = block {
final core::List<core::int*>* #t339 = <core::int*>[];
if(a is self::B*)
- #t339.{core::List::add}(a{self::B*}.{self::B::foo}{core::int*}){(core::int*) →* void};
+ #t339.{core::List::add}{Invariant}(a{self::B*}.{self::B::foo}{core::int*}){(core::int*) →* void};
} =>#t339;
core::Set<core::int*>* set10 = block {
final core::Set<core::int*>* #t340 = col::LinkedHashSet::•<core::int*>();
if(a is self::B*)
- #t340.{core::Set::add}(a{self::B*}.{self::B::foo}{core::int*}){(core::int*) →* core::bool*};
+ #t340.{core::Set::add}{Invariant}(a{self::B*}.{self::B::foo}{core::int*}){(core::int*) →* core::bool*};
} =>#t340;
core::Map<core::int*, core::int*>* map10 = block {
final core::Map<core::int*, core::int*>* #t341 = <core::int*, core::int*>{};
if(a is self::B*)
- #t341.{core::Map::[]=}(a{self::B*}.{self::B::foo}{core::int*}, a{self::B*}.{self::B::foo}{core::int*}){(core::int*, core::int*) →* void};
+ #t341.{core::Map::[]=}{Invariant}(a{self::B*}.{self::B::foo}{core::int*}, a{self::B*}.{self::B::foo}{core::int*}){(core::int*, core::int*) →* void};
} =>#t341;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.transformed.expect
index 36c13cd..03f6ecb 100644
--- a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.weak.transformed.expect
@@ -455,64 +455,64 @@
core::List<core::int*>* list10 = block {
final core::List<core::int*>* #t1 = core::_GrowableList::•<core::int*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t1.{core::List::add}(42){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t1;
core::Set<core::int*>* set10 = block {
final core::Set<core::int*>* #t2 = new col::_CompactLinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t2.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t2.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t2;
core::Map<core::String*, core::int*>* map10 = block {
final core::Map<core::String*, core::int*>* #t3 = <core::String*, core::int*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t3.{core::Map::[]=}("bar", 42){(core::String*, core::int*) →* void};
- #t3.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t3;
core::List<dynamic>* list11 = block {
final core::List<dynamic>* #t4 = core::_GrowableList::•<dynamic>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t4.{core::List::add}(dynVar){(dynamic) →* void};
+ #t4.{core::List::add}{Invariant}(dynVar){(dynamic) →* void};
} =>#t4;
core::Set<dynamic>* set11 = block {
final core::Set<dynamic>* #t5 = new col::_CompactLinkedHashSet::•<dynamic>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t5.{core::Set::add}(dynVar){(dynamic) →* core::bool*};
- #t5.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(dynVar){(dynamic) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t5;
core::Map<core::String*, dynamic>* map11 = block {
final core::Map<core::String*, dynamic>* #t6 = <core::String*, dynamic>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t6.{core::Map::[]=}("bar", dynVar){(core::String*, dynamic) →* void};
- #t6.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t6.{core::Map::[]=}{Invariant}("bar", dynVar){(core::String*, dynamic) →* void};
+ #t6.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t6;
core::List<core::List<core::int*>*>* list12 = block {
final core::List<core::List<core::int*>*>* #t7 = core::_GrowableList::•<core::List<core::int*>*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t7.{core::List::add}(core::_GrowableList::_literal1<core::int*>(42)){(core::List<core::int*>*) →* void};
+ #t7.{core::List::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42)){(core::List<core::int*>*) →* void};
} =>#t7;
core::Set<core::List<core::int*>*>* set12 = block {
final core::Set<core::List<core::int*>*>* #t8 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t8.{core::Set::add}(core::_GrowableList::_literal1<core::int*>(42)){(core::List<core::int*>*) →* core::bool*};
- #t8.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42)){(core::List<core::int*>*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t8;
core::Map<core::String*, core::List<core::int*>*>* map12 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t9 = <core::String*, core::List<core::int*>*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t9.{core::Map::[]=}("bar", core::_GrowableList::_literal1<core::int*>(42)){(core::String*, core::List<core::int*>*) →* void};
- #t9.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t9.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::_literal1<core::int*>(42)){(core::String*, core::List<core::int*>*) →* void};
+ #t9.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t9;
core::List<core::int*>* list20 = block {
final core::List<core::int*>* #t10 = core::_GrowableList::•<core::int*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t10.{core::List::addAll}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
+ #t10.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
} =>#t10;
core::Set<core::int*>* set20 = block {
final core::Set<core::int*>* #t11 = new col::_CompactLinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t11.{core::Set::addAll}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
- #t11.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t11.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
+ #t11.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t11;
core::Map<core::String*, core::int*>* map20 = block {
final core::Map<core::String*, core::int*>* #t12 = <core::String*, core::int*>{};
@@ -520,21 +520,21 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t13 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t12.{core::Map::[]=}(#t13.{core::MapEntry::key}{core::String*}, #t13.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{core::String*}, #t13.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
- #t12.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t12.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t12;
core::List<dynamic>* list21 = block {
final core::List<dynamic>* #t14 = core::_GrowableList::•<dynamic>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t14.{core::List::addAll}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
} =>#t14;
core::Set<dynamic>* set21 = block {
final core::Set<dynamic>* #t15 = new col::_CompactLinkedHashSet::•<dynamic>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t15.{core::Set::addAll}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
- #t15.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t15.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
+ #t15.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t15;
core::Map<core::String*, dynamic>* map21 = block {
final core::Map<core::String*, dynamic>* #t16 = <core::String*, dynamic>{};
@@ -542,21 +542,21 @@
core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, dynamic>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, dynamic>* #t17 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, dynamic>};
- #t16.{core::Map::[]=}(#t17.{core::MapEntry::key}{core::String*}, #t17.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
+ #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}{core::String*}, #t17.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
}
}
- #t16.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t16.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t16;
core::List<core::List<core::int*>*>* list22 = block {
final core::List<core::List<core::int*>*>* #t18 = core::_GrowableList::•<core::List<core::int*>*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t18.{core::List::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t18.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t18;
core::Set<core::List<core::int*>*>* set22 = block {
final core::Set<core::List<core::int*>*>* #t19 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t19.{core::Set::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t19.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t19.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t19.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t19;
core::Map<core::String*, core::List<core::int*>*>* map22 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t20 = <core::String*, core::List<core::int*>*>{};
@@ -564,23 +564,23 @@
core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::_literal1<core::int*>(42)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::List<core::int*>*>* #t21 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::List<core::int*>*>};
- #t20.{core::Map::[]=}(#t21.{core::MapEntry::key}{core::String*}, #t21.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{core::String*}, #t21.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
}
}
- #t20.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t20.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t20;
core::List<core::int*>* list30 = block {
final core::List<core::int*>* #t22 = core::_GrowableList::•<core::int*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t22.{core::List::addAll}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
+ #t22.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
} =>#t22;
core::Set<core::int*>* set30 = block {
final core::Set<core::int*>* #t23 = new col::_CompactLinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t23.{core::Set::addAll}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
- #t23.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t23.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
+ #t23.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t23;
core::Map<core::String*, core::int*>* map30 = block {
final core::Map<core::String*, core::int*>* #t24 = <core::String*, core::int*>{};
@@ -589,23 +589,23 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t25 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t24.{core::Map::[]=}(#t25.{core::MapEntry::key}{core::String*}, #t25.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t24.{core::Map::[]=}{Invariant}(#t25.{core::MapEntry::key}{core::String*}, #t25.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
- #t24.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t24.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t24;
core::List<dynamic>* list31 = block {
final core::List<dynamic>* #t26 = core::_GrowableList::•<dynamic>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t26.{core::List::addAll}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
+ #t26.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
} =>#t26;
core::Set<dynamic>* set31 = block {
final core::Set<dynamic>* #t27 = new col::_CompactLinkedHashSet::•<dynamic>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t27.{core::Set::addAll}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
- #t27.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t27.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
+ #t27.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t27;
core::Map<core::String*, dynamic>* map31 = block {
final core::Map<core::String*, dynamic>* #t28 = <core::String*, dynamic>{};
@@ -614,23 +614,23 @@
core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, dynamic>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, dynamic>* #t29 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, dynamic>};
- #t28.{core::Map::[]=}(#t29.{core::MapEntry::key}{core::String*}, #t29.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
+ #t28.{core::Map::[]=}{Invariant}(#t29.{core::MapEntry::key}{core::String*}, #t29.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
}
}
- #t28.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t28.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t28;
core::List<core::List<core::int*>*>* list33 = block {
final core::List<core::List<core::int*>*>* #t30 = core::_GrowableList::•<core::List<core::int*>*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t30.{core::List::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t30.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t30;
core::Set<core::List<core::int*>*>* set33 = block {
final core::Set<core::List<core::int*>*>* #t31 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t31.{core::Set::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t31.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t31.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t31.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t31;
core::Map<core::String*, core::List<core::int*>*>* map33 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t32 = <core::String*, core::List<core::int*>*>{};
@@ -639,21 +639,21 @@
core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::_literal1<core::int*>(42)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::List<core::int*>*>};
- #t32.{core::Map::[]=}(#t33.{core::MapEntry::key}{core::String*}, #t33.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}{core::String*}, #t33.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
}
}
- #t32.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t32.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t32;
core::List<core::List<core::int*>*>* list40 = block {
final core::List<core::List<core::int*>*>* #t34 = core::_GrowableList::•<core::List<core::int*>*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t34.{core::List::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t34.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t34;
core::Set<core::List<core::int*>*>* set40 = block {
final core::Set<core::List<core::int*>*>* #t35 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t35.{core::Set::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t35.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t35.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t35.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t35;
core::Map<core::String*, core::List<core::int*>*>* map40 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:39:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
Map<String, List<int>> map40 = {if (oracle(\"foo\")) ...{\"bar\", []}, \"baz\": null};
@@ -661,32 +661,32 @@
core::List<core::List<core::int*>*>* list41 = block {
final core::List<core::List<core::int*>*>* #t36 = core::_GrowableList::•<core::List<core::int*>*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t36.{core::List::addAll}( block {
+ #t36.{core::List::addAll}{Invariant}( block {
final core::Set<core::List<core::int*>*>* #t37 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
- #t37.{core::Set::add}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
+ #t37.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
} =>#t37){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t36;
core::Set<core::List<core::int*>*>* set41 = block {
final core::Set<core::List<core::int*>*>* #t38 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t38.{core::Set::addAll}( block {
+ #t38.{core::Set::addAll}{Invariant}( block {
final core::Set<core::List<core::int*>*>* #t39 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
- #t39.{core::Set::add}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
+ #t39.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
} =>#t39){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t38.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t38.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t38;
core::List<core::List<core::int*>*>* list42 = block {
final core::List<core::List<core::int*>*>* #t40 = core::_GrowableList::•<core::List<core::int*>*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t40.{core::List::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t40;
core::Set<core::List<core::int*>*>* set42 = block {
final core::Set<core::List<core::int*>*>* #t41 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t41.{core::Set::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t41.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t41.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t41.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t41;
core::Map<core::String*, core::List<core::int*>*>* map42 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t42 = <core::String*, core::List<core::int*>*>{};
@@ -695,21 +695,21 @@
core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::List<core::int*>*>* #t43 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::List<core::int*>*>};
- #t42.{core::Map::[]=}(#t43.{core::MapEntry::key}{core::String*}, #t43.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}{core::String*}, #t43.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
}
}
- #t42.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t42.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t42;
core::List<core::int*>* list50 = block {
final core::List<core::int*>* #t44 = core::_GrowableList::•<core::int*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t44.{core::List::addAll}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
+ #t44.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
} =>#t44;
core::Set<core::int*>* set50 = block {
final core::Set<core::int*>* #t45 = new col::_CompactLinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t45.{core::Set::addAll}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
- #t45.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t45.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
+ #t45.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t45;
core::Map<core::String*, core::int*>* map50 = block {
final core::Map<core::String*, core::int*>* #t46 = <core::String*, core::int*>{};
@@ -717,38 +717,38 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t47 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t46.{core::Map::[]=}(#t47.{core::MapEntry::key}{core::String*}, #t47.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}{core::String*}, #t47.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
- #t46.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t46.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t46;
core::List<core::int*>* list51 = block {
final core::List<core::int*>* #t48 = core::_GrowableList::•<core::int*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t48.{core::List::addAll}( block {
+ #t48.{core::List::addAll}{Invariant}( block {
final core::Set<core::int*>* #t49 = new col::_CompactLinkedHashSet::•<core::int*>();
} =>#t49){(core::Iterable<core::int*>*) →* void};
} =>#t48;
core::Set<core::int*>* set51 = block {
final core::Set<core::int*>* #t50 = new col::_CompactLinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t50.{core::Set::addAll}( block {
+ #t50.{core::Set::addAll}{Invariant}( block {
final core::Set<core::int*>* #t51 = new col::_CompactLinkedHashSet::•<core::int*>();
} =>#t51){(core::Iterable<core::int*>*) →* void};
- #t50.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t50.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t50;
core::List<core::int*>* list52 = block {
final core::List<core::int*>* #t52 = core::_GrowableList::•<core::int*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t52.{core::List::addAll}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
+ #t52.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
} =>#t52;
core::Set<core::int*>* set52 = block {
final core::Set<core::int*>* #t53 = new col::_CompactLinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t53.{core::Set::addAll}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
- #t53.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t53.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
+ #t53.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t53;
core::Map<core::String*, core::int*>* map52 = block {
final core::Map<core::String*, core::int*>* #t54 = <core::String*, core::int*>{};
@@ -757,21 +757,21 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t55 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t54.{core::Map::[]=}(#t55.{core::MapEntry::key}{core::String*}, #t55.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t54.{core::Map::[]=}{Invariant}(#t55.{core::MapEntry::key}{core::String*}, #t55.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
- #t54.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t54.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t54;
core::List<core::List<core::int*>*>* list60 = block {
final core::List<core::List<core::int*>*>* #t56 = core::_GrowableList::•<core::List<core::int*>*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t56.{core::List::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t56.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t56;
core::Set<core::List<core::int*>*>* set60 = block {
final core::Set<core::List<core::int*>*>* #t57 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t57.{core::Set::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t57.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t57.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t57.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t57;
core::Map<core::String*, core::List<core::int*>*>* map60 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t58 = <core::String*, core::List<core::int*>*>{};
@@ -779,23 +779,23 @@
core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::List<core::int*>*>* #t59 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::List<core::int*>*>};
- #t58.{core::Map::[]=}(#t59.{core::MapEntry::key}{core::String*}, #t59.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}{core::String*}, #t59.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
}
}
- #t58.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t58.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t58;
core::List<core::List<core::int*>*>* list61 = block {
final core::List<core::List<core::int*>*>* #t60 = core::_GrowableList::•<core::List<core::int*>*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t60.{core::List::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t60.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t60;
core::Set<core::List<core::int*>*>* set61 = block {
final core::Set<core::List<core::int*>*>* #t61 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t61.{core::Set::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t61.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t61.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t61.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t61;
core::Map<core::String*, core::List<core::int*>*>* map61 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t62 = <core::String*, core::List<core::int*>*>{};
@@ -804,72 +804,72 @@
core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::List<core::int*>*>* #t63 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::List<core::int*>*>};
- #t62.{core::Map::[]=}(#t63.{core::MapEntry::key}{core::String*}, #t63.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t62.{core::Map::[]=}{Invariant}(#t63.{core::MapEntry::key}{core::String*}, #t63.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
}
}
- #t62.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t62.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t62;
core::List<core::List<core::int*>*>* list70 = block {
final core::List<core::List<core::int*>*>* #t64 = core::_GrowableList::•<core::List<core::int*>*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t64.{core::List::add}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* void};
+ #t64.{core::List::add}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* void};
} =>#t64;
core::Set<core::List<core::int*>*>* set70 = block {
final core::Set<core::List<core::int*>*>* #t65 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t65.{core::Set::add}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
- #t65.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t65.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
+ #t65.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t65;
core::List<core::List<core::int*>*>* list71 = block {
final core::List<core::List<core::int*>*>* #t66 = core::_GrowableList::•<core::List<core::int*>*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t66.{core::List::add}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* void};
+ #t66.{core::List::add}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* void};
} =>#t66;
core::Set<core::List<core::int*>*>* set71 = block {
final core::Set<core::List<core::int*>*>* #t67 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t67.{core::Set::add}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
- #t67.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t67.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
+ #t67.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t67;
core::List<core::num*>* list80 = block {
final core::List<core::num*>* #t68 = core::_GrowableList::•<core::num*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t68.{core::List::add}(42){(core::num*) →* void};
+ #t68.{core::List::add}{Invariant}(42){(core::num*) →* void};
else
- #t68.{core::List::add}(3.14){(core::num*) →* void};
+ #t68.{core::List::add}{Invariant}(3.14){(core::num*) →* void};
} =>#t68;
core::Set<core::num*>* set80 = block {
final core::Set<core::num*>* #t69 = new col::_CompactLinkedHashSet::•<core::num*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t69.{core::Set::add}(42){(core::num*) →* core::bool*};
+ #t69.{core::Set::add}{Invariant}(42){(core::num*) →* core::bool*};
else
- #t69.{core::Set::add}(3.14){(core::num*) →* core::bool*};
- #t69.{core::Set::add}(null){(core::num*) →* core::bool*};
+ #t69.{core::Set::add}{Invariant}(3.14){(core::num*) →* core::bool*};
+ #t69.{core::Set::add}{Invariant}(null){(core::num*) →* core::bool*};
} =>#t69;
core::Map<core::String*, core::num*>* map80 = block {
final core::Map<core::String*, core::num*>* #t70 = <core::String*, core::num*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t70.{core::Map::[]=}("bar", 42){(core::String*, core::num*) →* void};
+ #t70.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::num*) →* void};
else
- #t70.{core::Map::[]=}("bar", 3.14){(core::String*, core::num*) →* void};
- #t70.{core::Map::[]=}("baz", null){(core::String*, core::num*) →* void};
+ #t70.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String*, core::num*) →* void};
+ #t70.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::num*) →* void};
} =>#t70;
core::List<core::num*>* list81 = block {
final core::List<core::num*>* #t71 = core::_GrowableList::•<core::num*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t71.{core::List::addAll}(listInt){(core::Iterable<core::num*>*) →* void};
+ #t71.{core::List::addAll}{Invariant}(listInt){(core::Iterable<core::num*>*) →* void};
else
- #t71.{core::List::addAll}(listDouble){(core::Iterable<core::num*>*) →* void};
+ #t71.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num*>*) →* void};
} =>#t71;
core::Set<core::num*>* set81 = block {
final core::Set<core::num*>* #t72 = new col::_CompactLinkedHashSet::•<core::num*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t72.{core::Set::addAll}(listInt){(core::Iterable<core::num*>*) →* void};
+ #t72.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num*>*) →* void};
else
- #t72.{core::Set::addAll}(listDouble){(core::Iterable<core::num*>*) →* void};
- #t72.{core::Set::add}(null){(core::num*) →* core::bool*};
+ #t72.{core::Set::addAll}{Invariant}(listDouble){(core::Iterable<core::num*>*) →* void};
+ #t72.{core::Set::add}{Invariant}(null){(core::num*) →* core::bool*};
} =>#t72;
core::Map<core::String*, core::num*>* map81 = block {
final core::Map<core::String*, core::num*>* #t73 = <core::String*, core::num*>{};
@@ -877,58 +877,58 @@
core::Iterator<core::MapEntry<core::String*, core::num*>>* :sync-for-iterator = mapToInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::num*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::num*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::num*>* #t74 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::num*>};
- #t73.{core::Map::[]=}(#t74.{core::MapEntry::key}{core::String*}, #t74.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
+ #t73.{core::Map::[]=}{Invariant}(#t74.{core::MapEntry::key}{core::String*}, #t74.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
}
}
else {
core::Iterator<core::MapEntry<core::String*, core::num*>>* :sync-for-iterator = mapToDouble.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::num*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::num*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::num*>* #t75 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::num*>};
- #t73.{core::Map::[]=}(#t75.{core::MapEntry::key}{core::String*}, #t75.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
+ #t73.{core::Map::[]=}{Invariant}(#t75.{core::MapEntry::key}{core::String*}, #t75.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
}
}
- #t73.{core::Map::[]=}("baz", null){(core::String*, core::num*) →* void};
+ #t73.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::num*) →* void};
} =>#t73;
core::List<dynamic>* list82 = block {
final core::List<dynamic>* #t76 = core::_GrowableList::•<dynamic>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t76.{core::List::addAll}(listInt){(core::Iterable<dynamic>*) →* void};
+ #t76.{core::List::addAll}{Invariant}(listInt){(core::Iterable<dynamic>*) →* void};
else
- #t76.{core::List::addAll}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
+ #t76.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
} =>#t76;
core::Set<dynamic>* set82 = block {
final core::Set<dynamic>* #t77 = new col::_CompactLinkedHashSet::•<dynamic>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t77.{core::Set::addAll}(listInt){(core::Iterable<dynamic>*) →* void};
+ #t77.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<dynamic>*) →* void};
else
- #t77.{core::Set::addAll}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
- #t77.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t77.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
+ #t77.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t77;
core::Set<dynamic>* map82 = block {
final core::Set<dynamic>* #t78 = new col::_CompactLinkedHashSet::•<dynamic>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t78.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t78.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:71:38: Error: Unexpected type 'Map<String, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
var map82 = {if (oracle(\"foo\")) ...mapToInt else ...dynVar, null};
^"){(dynamic) →* core::bool*};
else
- #t78.{core::Set::addAll}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
- #t78.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t78.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
+ #t78.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t78;
core::List<core::num*>* list83 = block {
final core::List<core::num*>* #t79 = core::_GrowableList::•<core::num*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t79.{core::List::add}(42){(core::num*) →* void};
+ #t79.{core::List::add}{Invariant}(42){(core::num*) →* void};
else
- #t79.{core::List::addAll}(listDouble){(core::Iterable<core::num*>*) →* void};
+ #t79.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num*>*) →* void};
} =>#t79;
core::Set<core::num*>* set83 = block {
final core::Set<core::num*>* #t80 = new col::_CompactLinkedHashSet::•<core::num*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t80.{core::Set::addAll}(listInt){(core::Iterable<core::num*>*) →* void};
+ #t80.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num*>*) →* void};
else
- #t80.{core::Set::add}(3.14){(core::num*) →* core::bool*};
- #t80.{core::Set::add}(null){(core::num*) →* core::bool*};
+ #t80.{core::Set::add}{Invariant}(3.14){(core::num*) →* core::bool*};
+ #t80.{core::Set::add}{Invariant}(null){(core::num*) →* core::bool*};
} =>#t80;
core::Map<core::String*, core::num*>* map83 = block {
final core::Map<core::String*, core::num*>* #t81 = <core::String*, core::num*>{};
@@ -936,29 +936,29 @@
core::Iterator<core::MapEntry<core::String*, core::num*>>* :sync-for-iterator = mapToInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::num*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::num*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::num*>* #t82 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::num*>};
- #t81.{core::Map::[]=}(#t82.{core::MapEntry::key}{core::String*}, #t82.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
+ #t81.{core::Map::[]=}{Invariant}(#t82.{core::MapEntry::key}{core::String*}, #t82.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
}
}
else
- #t81.{core::Map::[]=}("bar", 3.14){(core::String*, core::num*) →* void};
- #t81.{core::Map::[]=}("baz", null){(core::String*, core::num*) →* void};
+ #t81.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String*, core::num*) →* void};
+ #t81.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::num*) →* void};
} =>#t81;
core::List<core::int*>* list90 = block {
final core::List<core::int*>* #t83 = core::_GrowableList::•<core::int*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t83.{core::List::add}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
+ #t83.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
} =>#t83;
core::Set<core::int*>* set90 = block {
final core::Set<core::int*>* #t84 = new col::_CompactLinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t84.{core::Set::add}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
- #t84.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t84.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
+ #t84.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t84;
core::Map<core::String*, core::int*>* map90 = block {
final core::Map<core::String*, core::int*>* #t85 = <core::String*, core::int*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t85.{core::Map::[]=}("bar", dynVar as{TypeError,ForDynamic} core::int*){(core::String*, core::int*) →* void};
- #t85.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t85.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*){(core::String*, core::int*) →* void};
+ #t85.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t85;
core::List<core::int*>* list91 = block {
final core::List<core::int*>* #t86 = core::_GrowableList::•<core::int*>(0);
@@ -968,7 +968,7 @@
final dynamic #t87 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t88 = #t87 as{TypeError} core::int*;
- #t86.{core::List::add}(#t88){(core::int*) →* void};
+ #t86.{core::List::add}{Invariant}(#t88){(core::int*) →* void};
}
}
}
@@ -981,11 +981,11 @@
final dynamic #t90 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t91 = #t90 as{TypeError} core::int*;
- #t89.{core::Set::add}(#t91){(core::int*) →* core::bool*};
+ #t89.{core::Set::add}{Invariant}(#t91){(core::int*) →* core::bool*};
}
}
}
- #t89.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t89.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t89;
core::Map<core::String*, core::int*>* map91 = block {
final core::Map<core::String*, core::int*>* #t92 = <core::String*, core::int*>{};
@@ -996,66 +996,66 @@
{
final core::String* #t94 = #t93.{core::MapEntry::key}{dynamic} as{TypeError} core::String*;
final core::int* #t95 = #t93.{core::MapEntry::value}{dynamic} as{TypeError} core::int*;
- #t92.{core::Map::[]=}(#t94, #t95){(core::String*, core::int*) →* void};
+ #t92.{core::Map::[]=}{Invariant}(#t94, #t95){(core::String*, core::int*) →* void};
}
}
}
- #t92.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t92.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t92;
core::List<core::int*>* list100 = block {
final core::List<core::int*>* #t96 = core::_GrowableList::•<core::int*>(0);
if(dynVar as{TypeError,ForDynamic} core::bool*)
- #t96.{core::List::add}(42){(core::int*) →* void};
+ #t96.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t96;
core::Set<core::int*>* set100 = block {
final core::Set<core::int*>* #t97 = new col::_CompactLinkedHashSet::•<core::int*>();
if(dynVar as{TypeError,ForDynamic} core::bool*)
- #t97.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t97.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
} =>#t97;
core::Map<core::int*, core::int*>* map100 = block {
final core::Map<core::int*, core::int*>* #t98 = <core::int*, core::int*>{};
if(dynVar as{TypeError,ForDynamic} core::bool*)
- #t98.{core::Map::[]=}(42, 42){(core::int*, core::int*) →* void};
+ #t98.{core::Map::[]=}{Invariant}(42, 42){(core::int*, core::int*) →* void};
} =>#t98;
}
static method testIfElementErrors(core::Map<core::int*, core::int*>* map) → dynamic {
block {
final core::List<core::int*>* #t99 = core::_GrowableList::•<core::int*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t99.{core::List::add}(let final Never* #t100 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t99.{core::List::add}{Invariant}(let final Never* #t100 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>[if (oracle(\"foo\")) \"bar\"];
^" in "bar" as{TypeError} core::int*){(core::int*) →* void};
} =>#t99;
block {
final core::Set<core::int*>* #t101 = new col::_CompactLinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t101.{core::Set::add}(let final Never* #t102 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:88:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t101.{core::Set::add}{Invariant}(let final Never* #t102 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:88:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>{if (oracle(\"foo\")) \"bar\", null};
^" in "bar" as{TypeError} core::int*){(core::int*) →* core::bool*};
- #t101.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t101.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t101;
block {
final core::Map<core::String*, core::int*>* #t103 = <core::String*, core::int*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t103.{core::Map::[]=}("bar", let final Never* #t104 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t103.{core::Map::[]=}{Invariant}("bar", let final Never* #t104 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:89:43: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<String, int>{if (oracle(\"foo\")) \"bar\": \"bar\", \"baz\": null};
^" in "bar" as{TypeError} core::int*){(core::String*, core::int*) →* void};
- #t103.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t103.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t103;
block {
final core::List<core::int*>* #t105 = core::_GrowableList::•<core::int*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t105.{core::List::addAll}(core::_GrowableList::_literal1<core::int*>(let final Never* #t106 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t105.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(let final Never* #t106 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>[if (oracle(\"foo\")) ...[\"bar\"]];
^" in "bar" as{TypeError} core::int*)){(core::Iterable<core::int*>*) →* void};
} =>#t105;
block {
final core::Set<core::int*>* #t107 = new col::_CompactLinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t107.{core::Set::addAll}(core::_GrowableList::_literal1<core::int*>(let final Never* #t108 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t107.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(let final Never* #t108 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>{if (oracle(\"foo\")) ...[\"bar\"], null};
^" in "bar" as{TypeError} core::int*)){(core::Iterable<core::int*>*) →* void};
- #t107.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t107.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t107;
block {
final core::Map<core::String*, core::int*>* #t109 = <core::String*, core::int*>{};
@@ -1065,15 +1065,15 @@
^" in "bar" as{TypeError} core::int*}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t111 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t109.{core::Map::[]=}(#t111.{core::MapEntry::key}{core::String*}, #t111.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t109.{core::Map::[]=}{Invariant}(#t111.{core::MapEntry::key}{core::String*}, #t111.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
- #t109.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t109.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t109;
block {
final core::List<core::int*>* #t112 = core::_GrowableList::•<core::int*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t112.{core::List::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t112.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>[if (oracle(\"foo\")) ...map];
^"){(core::int*) →* void};
@@ -1081,11 +1081,11 @@
block {
final core::Set<core::int*>* #t113 = new col::_CompactLinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t113.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t113.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:94:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{if (oracle(\"foo\")) ...map, null};
^"){(core::int*) →* core::bool*};
- #t113.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t113.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t113;
<core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:95:39: Error: Unexpected type 'List<String>' of a map spread entry. Expected 'dynamic' or a Map.
- 'List' is from 'dart:core'.
@@ -1097,58 +1097,58 @@
block {
final core::List<core::String*>* #t114 = core::_GrowableList::•<core::String*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t114.{core::List::add}(let final Never* #t115 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t114.{core::List::add}{Invariant}(let final Never* #t115 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
<String>[if (oracle(\"foo\")) 42 else 3.14];
^" in 42 as{TypeError} core::String*){(core::String*) →* void};
else
- #t114.{core::List::add}(let final Never* #t116 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+ #t114.{core::List::add}{Invariant}(let final Never* #t116 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
<String>[if (oracle(\"foo\")) 42 else 3.14];
^" in 3.14 as{TypeError} core::String*){(core::String*) →* void};
} =>#t114;
block {
final core::Set<core::String*>* #t117 = new col::_CompactLinkedHashSet::•<core::String*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t117.{core::Set::add}(let final Never* #t118 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t117.{core::Set::add}{Invariant}(let final Never* #t118 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
<String>{if (oracle(\"foo\")) 42 else 3.14, null};
^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
else
- #t117.{core::Set::add}(let final Never* #t119 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+ #t117.{core::Set::add}{Invariant}(let final Never* #t119 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:97:39: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
<String>{if (oracle(\"foo\")) 42 else 3.14, null};
^" in 3.14 as{TypeError} core::String*){(core::String*) →* core::bool*};
- #t117.{core::Set::add}(null){(core::String*) →* core::bool*};
+ #t117.{core::Set::add}{Invariant}(null){(core::String*) →* core::bool*};
} =>#t117;
block {
final core::Map<core::String*, core::String*>* #t120 = <core::String*, core::String*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t120.{core::Map::[]=}("bar", let final Never* #t121 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t120.{core::Map::[]=}{Invariant}("bar", let final Never* #t121 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:46: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
<String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
^" in 42 as{TypeError} core::String*){(core::String*, core::String*) →* void};
else
- #t120.{core::Map::[]=}("baz", let final Never* #t122 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+ #t120.{core::Map::[]=}{Invariant}("baz", let final Never* #t122 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:98:61: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
<String, String>{if (oracle(\"foo\")) \"bar\": 42 else \"baz\": 3.14, \"baz\": null};
^" in 3.14 as{TypeError} core::String*){(core::String*, core::String*) →* void};
- #t120.{core::Map::[]=}("baz", null){(core::String*, core::String*) →* void};
+ #t120.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::String*) →* void};
} =>#t120;
block {
final core::List<core::int*>* #t123 = core::_GrowableList::•<core::int*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t123.{core::List::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t123.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>[if (oracle(\"foo\")) ...map else 42];
^"){(core::int*) →* void};
else
- #t123.{core::List::add}(42){(core::int*) →* void};
+ #t123.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t123;
block {
final core::Set<core::int*>* #t124 = new col::_CompactLinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t124.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t124.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:100:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{if (oracle(\"foo\")) ...map else 42, null};
^"){(core::int*) →* core::bool*};
else
- #t124.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t124.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t124.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t124.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t124;
<core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:101:39: Error: Unexpected type 'List<int>' of a map spread entry. Expected 'dynamic' or a Map.
- 'List' is from 'dart:core'.
@@ -1160,9 +1160,9 @@
block {
final core::List<core::int*>* #t125 = core::_GrowableList::•<core::int*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t125.{core::List::add}(42){(core::int*) →* void};
+ #t125.{core::List::add}{Invariant}(42){(core::int*) →* void};
else
- #t125.{core::List::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t125.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:102:39: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>[if (oracle(\"foo\")) 42 else ...map];
^"){(core::int*) →* void};
@@ -1170,13 +1170,13 @@
block {
final core::Set<core::int*>* #t126 = new col::_CompactLinkedHashSet::•<core::int*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t126.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t126.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:103:31: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{if (oracle(\"foo\")) ...map else 42, null};
^"){(core::int*) →* core::bool*};
else
- #t126.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t126.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t126.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t126.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t126;
<core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:104:54: Error: Unexpected type 'List<int>' of a map spread entry. Expected 'dynamic' or a Map.
- 'List' is from 'dart:core'.
@@ -1208,63 +1208,63 @@
if(let final Never* #t128 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
List<int> list20 = [if (42) 42];
^" in 42 as{TypeError} core::bool*)
- #t127.{core::List::add}(42){(core::int*) →* void};
+ #t127.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t127;
core::Set<core::int*>* set20 = block {
final core::Set<core::int*>* #t129 = new col::_CompactLinkedHashSet::•<core::int*>();
if(let final Never* #t130 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:113:25: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
Set<int> set20 = {if (42) 42};
^" in 42 as{TypeError} core::bool*)
- #t129.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t129.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
} =>#t129;
core::Map<core::int*, core::int*>* map30 = block {
final core::Map<core::int*, core::int*>* #t131 = <core::int*, core::int*>{};
if(let final Never* #t132 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:114:30: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
Map<int, int> map30 = {if (42) 42: 42};
^" in 42 as{TypeError} core::bool*)
- #t131.{core::Map::[]=}(42, 42){(core::int*, core::int*) →* void};
+ #t131.{core::Map::[]=}{Invariant}(42, 42){(core::int*, core::int*) →* void};
} =>#t131;
core::List<core::String*>* list40 = block {
final core::List<core::String*>* #t133 = core::_GrowableList::•<core::String*>(0);
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t133.{core::List::add}(let final Never* #t134 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+ #t133.{core::List::add}{Invariant}(let final Never* #t134 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
^" in true as{TypeError} core::String*){(core::String*) →* void};
else
- #t133.{core::List::add}(let final Never* #t135 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t133.{core::List::add}{Invariant}(let final Never* #t135 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:63: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
^" in 42 as{TypeError} core::String*){(core::String*) →* void};
} =>#t133;
core::Set<core::String*>* set40 = block {
final core::Set<core::String*>* #t136 = new col::_CompactLinkedHashSet::•<core::String*>();
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t136.{core::Set::add}(let final Never* #t137 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+ #t136.{core::Set::add}{Invariant}(let final Never* #t137 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:51: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
^" in true as{TypeError} core::String*){(core::String*) →* core::bool*};
else
- #t136.{core::Set::add}(let final Never* #t138 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t136.{core::Set::add}{Invariant}(let final Never* #t138 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:116:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
Set<String> set40 = <String>{if (oracle(\"foo\")) true else 42};
^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
} =>#t136;
core::Map<core::String*, core::int*>* map40 = block {
final core::Map<core::String*, core::int*>* #t139 = <core::String*, core::int*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t139.{core::Map::[]=}(let final Never* #t140 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+ #t139.{core::Map::[]=}{Invariant}(let final Never* #t140 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:61: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
^" in true as{TypeError} core::String*, 42){(core::String*, core::int*) →* void};
else
- #t139.{core::Map::[]=}(let final Never* #t141 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t139.{core::Map::[]=}{Invariant}(let final Never* #t141 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:117:75: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
Map<String, int> map40 = <String, int>{if (oracle(\"foo\")) true: 42 else 42: 42};
^" in 42 as{TypeError} core::String*, 42){(core::String*, core::int*) →* void};
} =>#t139;
core::Map<core::int*, core::String*>* map41 = block {
final core::Map<core::int*, core::String*>* #t142 = <core::int*, core::String*>{};
if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
- #t142.{core::Map::[]=}(42, let final Never* #t143 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
+ #t142.{core::Map::[]=}{Invariant}(42, let final Never* #t143 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:65: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
^" in true as{TypeError} core::String*){(core::int*, core::String*) →* void};
else
- #t142.{core::Map::[]=}(42, let final Never* #t144 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t142.{core::Map::[]=}{Invariant}(42, let final Never* #t144 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:118:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
Map<int, String> map41 = <int, String>{if (oracle(\"foo\")) 42: true else 42: 42};
^" in 42 as{TypeError} core::String*){(core::int*, core::String*) →* void};
} =>#t142;
@@ -1273,64 +1273,64 @@
core::List<core::int*>* list10 = block {
final core::List<core::int*>* #t145 = core::_GrowableList::•<core::int*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t145.{core::List::add}(42){(core::int*) →* void};
+ #t145.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t145;
core::Set<core::int*>* set10 = block {
final core::Set<core::int*>* #t146 = new col::_CompactLinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t146.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t146.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t146.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t146.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t146;
core::Map<core::String*, core::int*>* map10 = block {
final core::Map<core::String*, core::int*>* #t147 = <core::String*, core::int*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t147.{core::Map::[]=}("bar", 42){(core::String*, core::int*) →* void};
- #t147.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t147.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::int*) →* void};
+ #t147.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t147;
core::List<dynamic>* list11 = block {
final core::List<dynamic>* #t148 = core::_GrowableList::•<dynamic>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t148.{core::List::add}(dynVar){(dynamic) →* void};
+ #t148.{core::List::add}{Invariant}(dynVar){(dynamic) →* void};
} =>#t148;
core::Set<dynamic>* set11 = block {
final core::Set<dynamic>* #t149 = new col::_CompactLinkedHashSet::•<dynamic>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t149.{core::Set::add}(dynVar){(dynamic) →* core::bool*};
- #t149.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t149.{core::Set::add}{Invariant}(dynVar){(dynamic) →* core::bool*};
+ #t149.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t149;
core::Map<core::String*, dynamic>* map11 = block {
final core::Map<core::String*, dynamic>* #t150 = <core::String*, dynamic>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t150.{core::Map::[]=}("bar", dynVar){(core::String*, dynamic) →* void};
- #t150.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t150.{core::Map::[]=}{Invariant}("bar", dynVar){(core::String*, dynamic) →* void};
+ #t150.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t150;
core::List<core::List<core::int*>*>* list12 = block {
final core::List<core::List<core::int*>*>* #t151 = core::_GrowableList::•<core::List<core::int*>*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t151.{core::List::add}(core::_GrowableList::_literal1<core::int*>(42)){(core::List<core::int*>*) →* void};
+ #t151.{core::List::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42)){(core::List<core::int*>*) →* void};
} =>#t151;
core::Set<core::List<core::int*>*>* set12 = block {
final core::Set<core::List<core::int*>*>* #t152 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t152.{core::Set::add}(core::_GrowableList::_literal1<core::int*>(42)){(core::List<core::int*>*) →* core::bool*};
- #t152.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t152.{core::Set::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42)){(core::List<core::int*>*) →* core::bool*};
+ #t152.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t152;
core::Map<core::String*, core::List<core::int*>*>* map12 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t153 = <core::String*, core::List<core::int*>*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t153.{core::Map::[]=}("bar", core::_GrowableList::_literal1<core::int*>(42)){(core::String*, core::List<core::int*>*) →* void};
- #t153.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t153.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::_literal1<core::int*>(42)){(core::String*, core::List<core::int*>*) →* void};
+ #t153.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t153;
core::List<core::int*>* list20 = block {
final core::List<core::int*>* #t154 = core::_GrowableList::•<core::int*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t154.{core::List::addAll}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
+ #t154.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
} =>#t154;
core::Set<core::int*>* set20 = block {
final core::Set<core::int*>* #t155 = new col::_CompactLinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t155.{core::Set::addAll}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
- #t155.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t155.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
+ #t155.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t155;
core::Map<core::String*, core::int*>* map20 = block {
final core::Map<core::String*, core::int*>* #t156 = <core::String*, core::int*>{};
@@ -1338,21 +1338,21 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t157 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t156.{core::Map::[]=}(#t157.{core::MapEntry::key}{core::String*}, #t157.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t156.{core::Map::[]=}{Invariant}(#t157.{core::MapEntry::key}{core::String*}, #t157.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
- #t156.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t156.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t156;
core::List<dynamic>* list21 = block {
final core::List<dynamic>* #t158 = core::_GrowableList::•<dynamic>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t158.{core::List::addAll}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
+ #t158.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
} =>#t158;
core::Set<dynamic>* set21 = block {
final core::Set<dynamic>* #t159 = new col::_CompactLinkedHashSet::•<dynamic>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t159.{core::Set::addAll}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
- #t159.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t159.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
+ #t159.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t159;
core::Map<core::String*, dynamic>* map21 = block {
final core::Map<core::String*, dynamic>* #t160 = <core::String*, dynamic>{};
@@ -1360,21 +1360,21 @@
core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, dynamic>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, dynamic>* #t161 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, dynamic>};
- #t160.{core::Map::[]=}(#t161.{core::MapEntry::key}{core::String*}, #t161.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
+ #t160.{core::Map::[]=}{Invariant}(#t161.{core::MapEntry::key}{core::String*}, #t161.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
}
}
- #t160.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t160.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t160;
core::List<core::List<core::int*>*>* list22 = block {
final core::List<core::List<core::int*>*>* #t162 = core::_GrowableList::•<core::List<core::int*>*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t162.{core::List::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t162.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t162;
core::Set<core::List<core::int*>*>* set22 = block {
final core::Set<core::List<core::int*>*>* #t163 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t163.{core::Set::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t163.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t163.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t163.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t163;
core::Map<core::String*, core::List<core::int*>*>* map22 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t164 = <core::String*, core::List<core::int*>*>{};
@@ -1382,23 +1382,23 @@
core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::_literal1<core::int*>(42)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::List<core::int*>*>* #t165 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::List<core::int*>*>};
- #t164.{core::Map::[]=}(#t165.{core::MapEntry::key}{core::String*}, #t165.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t164.{core::Map::[]=}{Invariant}(#t165.{core::MapEntry::key}{core::String*}, #t165.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
}
}
- #t164.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t164.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t164;
core::List<core::int*>* list30 = block {
final core::List<core::int*>* #t166 = core::_GrowableList::•<core::int*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t166.{core::List::addAll}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
+ #t166.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
} =>#t166;
core::Set<core::int*>* set30 = block {
final core::Set<core::int*>* #t167 = new col::_CompactLinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t167.{core::Set::addAll}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
- #t167.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t167.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42)){(core::Iterable<core::int*>*) →* void};
+ #t167.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t167;
core::Map<core::String*, core::int*>* map30 = block {
final core::Map<core::String*, core::int*>* #t168 = <core::String*, core::int*>{};
@@ -1407,23 +1407,23 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{"bar": 42}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t169 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t168.{core::Map::[]=}(#t169.{core::MapEntry::key}{core::String*}, #t169.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t168.{core::Map::[]=}{Invariant}(#t169.{core::MapEntry::key}{core::String*}, #t169.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
- #t168.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t168.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t168;
core::List<dynamic>* list31 = block {
final core::List<dynamic>* #t170 = core::_GrowableList::•<dynamic>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t170.{core::List::addAll}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
+ #t170.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
} =>#t170;
core::Set<dynamic>* set31 = block {
final core::Set<dynamic>* #t171 = new col::_CompactLinkedHashSet::•<dynamic>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t171.{core::Set::addAll}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
- #t171.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t171.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar)){(core::Iterable<dynamic>*) →* void};
+ #t171.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t171;
core::Map<core::String*, dynamic>* map31 = block {
final core::Map<core::String*, dynamic>* #t172 = <core::String*, dynamic>{};
@@ -1432,23 +1432,23 @@
core::Iterator<core::MapEntry<core::String*, dynamic>>* :sync-for-iterator = <core::String*, dynamic>{"bar": dynVar}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, dynamic>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, dynamic>* #t173 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, dynamic>};
- #t172.{core::Map::[]=}(#t173.{core::MapEntry::key}{core::String*}, #t173.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
+ #t172.{core::Map::[]=}{Invariant}(#t173.{core::MapEntry::key}{core::String*}, #t173.{core::MapEntry::value}{dynamic}){(core::String*, dynamic) →* void};
}
}
- #t172.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t172.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t172;
core::List<core::List<core::int*>*>* list33 = block {
final core::List<core::List<core::int*>*>* #t174 = core::_GrowableList::•<core::List<core::int*>*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t174.{core::List::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t174.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t174;
core::Set<core::List<core::int*>*>* set33 = block {
final core::Set<core::List<core::int*>*>* #t175 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t175.{core::Set::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t175.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t175.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t175.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t175;
core::Map<core::String*, core::List<core::int*>*>* map33 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t176 = <core::String*, core::List<core::int*>*>{};
@@ -1457,21 +1457,21 @@
core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::_literal1<core::int*>(42)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::List<core::int*>*>* #t177 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::List<core::int*>*>};
- #t176.{core::Map::[]=}(#t177.{core::MapEntry::key}{core::String*}, #t177.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t176.{core::Map::[]=}{Invariant}(#t177.{core::MapEntry::key}{core::String*}, #t177.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
}
}
- #t176.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t176.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t176;
core::List<core::List<core::int*>*>* list40 = block {
final core::List<core::List<core::int*>*>* #t178 = core::_GrowableList::•<core::List<core::int*>*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t178.{core::List::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t178.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t178;
core::Set<core::List<core::int*>*>* set40 = block {
final core::Set<core::List<core::int*>*>* #t179 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t179.{core::Set::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t179.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t179.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t179.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t179;
core::Map<core::String*, core::List<core::int*>*>* map40 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t180 = <core::String*, core::List<core::int*>*>{};
@@ -1479,40 +1479,40 @@
core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::List<core::int*>*>* #t181 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::List<core::int*>*>};
- #t180.{core::Map::[]=}(#t181.{core::MapEntry::key}{core::String*}, #t181.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t180.{core::Map::[]=}{Invariant}(#t181.{core::MapEntry::key}{core::String*}, #t181.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
}
}
- #t180.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t180.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t180;
core::List<core::List<core::int*>*>* list41 = block {
final core::List<core::List<core::int*>*>* #t182 = core::_GrowableList::•<core::List<core::int*>*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t182.{core::List::addAll}( block {
+ #t182.{core::List::addAll}{Invariant}( block {
final core::Set<core::List<core::int*>*>* #t183 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
- #t183.{core::Set::add}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
+ #t183.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
} =>#t183){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t182;
core::Set<core::List<core::int*>*>* set41 = block {
final core::Set<core::List<core::int*>*>* #t184 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t184.{core::Set::addAll}( block {
+ #t184.{core::Set::addAll}{Invariant}( block {
final core::Set<core::List<core::int*>*>* #t185 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
- #t185.{core::Set::add}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
+ #t185.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
} =>#t185){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t184.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t184.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t184;
core::List<core::List<core::int*>*>* list42 = block {
final core::List<core::List<core::int*>*>* #t186 = core::_GrowableList::•<core::List<core::int*>*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t186.{core::List::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t186.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t186;
core::Set<core::List<core::int*>*>* set42 = block {
final core::Set<core::List<core::int*>*>* #t187 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t187.{core::Set::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t187.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t187.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t187.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t187;
core::Map<core::String*, core::List<core::int*>*>* map42 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t188 = <core::String*, core::List<core::int*>*>{};
@@ -1521,21 +1521,21 @@
core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::List<core::int*>*>* #t189 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::List<core::int*>*>};
- #t188.{core::Map::[]=}(#t189.{core::MapEntry::key}{core::String*}, #t189.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t188.{core::Map::[]=}{Invariant}(#t189.{core::MapEntry::key}{core::String*}, #t189.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
}
}
- #t188.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t188.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t188;
core::List<core::int*>* list50 = block {
final core::List<core::int*>* #t190 = core::_GrowableList::•<core::int*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t190.{core::List::addAll}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
+ #t190.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
} =>#t190;
core::Set<core::int*>* set50 = block {
final core::Set<core::int*>* #t191 = new col::_CompactLinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t191.{core::Set::addAll}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
- #t191.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t191.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
+ #t191.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t191;
core::Map<core::String*, core::int*>* map50 = block {
final core::Map<core::String*, core::int*>* #t192 = <core::String*, core::int*>{};
@@ -1543,49 +1543,49 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t193 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t192.{core::Map::[]=}(#t193.{core::MapEntry::key}{core::String*}, #t193.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t192.{core::Map::[]=}{Invariant}(#t193.{core::MapEntry::key}{core::String*}, #t193.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
- #t192.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t192.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t192;
core::List<core::int*>* list51 = block {
final core::List<core::int*>* #t194 = core::_GrowableList::•<core::int*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t194.{core::List::addAll}( block {
+ #t194.{core::List::addAll}{Invariant}( block {
final core::Set<core::int*>* #t195 = new col::_CompactLinkedHashSet::•<core::int*>();
} =>#t195){(core::Iterable<core::int*>*) →* void};
} =>#t194;
core::Set<core::int*>* set51 = block {
final core::Set<core::int*>* #t196 = new col::_CompactLinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t196.{core::Set::addAll}( block {
+ #t196.{core::Set::addAll}{Invariant}( block {
final core::Set<core::int*>* #t197 = new col::_CompactLinkedHashSet::•<core::int*>();
} =>#t197){(core::Iterable<core::int*>*) →* void};
- #t196.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t196.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t196;
core::List<core::int*>* list52 = block {
final core::List<core::int*>* #t198 = core::_GrowableList::•<core::int*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t198.{core::List::addAll}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
+ #t198.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
} =>#t198;
core::Set<core::int*>* set52 = block {
final core::Set<core::int*>* #t199 = new col::_CompactLinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t199.{core::Set::addAll}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
- #t199.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t199.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::Iterable<core::int*>*) →* void};
+ #t199.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t199;
core::List<core::List<core::int*>*>* list60 = block {
final core::List<core::List<core::int*>*>* #t200 = core::_GrowableList::•<core::List<core::int*>*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t200.{core::List::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t200.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t200;
core::Set<core::List<core::int*>*>* set60 = block {
final core::Set<core::List<core::int*>*>* #t201 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t201.{core::Set::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t201.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t201.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t201.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t201;
core::Map<core::String*, core::List<core::int*>*>* map60 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t202 = <core::String*, core::List<core::int*>*>{};
@@ -1593,23 +1593,23 @@
core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::List<core::int*>*>* #t203 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::List<core::int*>*>};
- #t202.{core::Map::[]=}(#t203.{core::MapEntry::key}{core::String*}, #t203.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t202.{core::Map::[]=}{Invariant}(#t203.{core::MapEntry::key}{core::String*}, #t203.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
}
}
- #t202.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t202.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t202;
core::List<core::List<core::int*>*>* list61 = block {
final core::List<core::List<core::int*>*>* #t204 = core::_GrowableList::•<core::List<core::int*>*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t204.{core::List::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t204.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
} =>#t204;
core::Set<core::List<core::int*>*>* set61 = block {
final core::Set<core::List<core::int*>*>* #t205 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t205.{core::Set::addAll}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
- #t205.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t205.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0))){(core::Iterable<core::List<core::int*>*>*) →* void};
+ #t205.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t205;
core::Map<core::String*, core::List<core::int*>*>* map61 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t206 = <core::String*, core::List<core::int*>*>{};
@@ -1618,90 +1618,90 @@
core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::List<core::int*>*>* #t207 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::List<core::int*>*>};
- #t206.{core::Map::[]=}(#t207.{core::MapEntry::key}{core::String*}, #t207.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t206.{core::Map::[]=}{Invariant}(#t207.{core::MapEntry::key}{core::String*}, #t207.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
}
}
- #t206.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t206.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t206;
core::List<core::List<core::int*>*>* list70 = block {
final core::List<core::List<core::int*>*>* #t208 = core::_GrowableList::•<core::List<core::int*>*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t208.{core::List::add}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* void};
+ #t208.{core::List::add}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* void};
} =>#t208;
core::Set<core::List<core::int*>*>* set70 = block {
final core::Set<core::List<core::int*>*>* #t209 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t209.{core::Set::add}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
- #t209.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t209.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
+ #t209.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t209;
core::Map<core::String*, core::List<core::int*>*>* map70 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t210 = <core::String*, core::List<core::int*>*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t210.{core::Map::[]=}("bar", core::_GrowableList::•<core::int*>(0)){(core::String*, core::List<core::int*>*) →* void};
- #t210.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t210.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::•<core::int*>(0)){(core::String*, core::List<core::int*>*) →* void};
+ #t210.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t210;
core::List<core::List<core::int*>*>* list71 = block {
final core::List<core::List<core::int*>*>* #t211 = core::_GrowableList::•<core::List<core::int*>*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t211.{core::List::add}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* void};
+ #t211.{core::List::add}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* void};
} =>#t211;
core::Set<core::List<core::int*>*>* set71 = block {
final core::Set<core::List<core::int*>*>* #t212 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t212.{core::Set::add}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
- #t212.{core::Set::add}(null){(core::List<core::int*>*) →* core::bool*};
+ #t212.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::bool*};
+ #t212.{core::Set::add}{Invariant}(null){(core::List<core::int*>*) →* core::bool*};
} =>#t212;
core::Map<core::String*, core::List<core::int*>*>* map71 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t213 = <core::String*, core::List<core::int*>*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t213.{core::Map::[]=}("bar", core::_GrowableList::•<core::int*>(0)){(core::String*, core::List<core::int*>*) →* void};
- #t213.{core::Map::[]=}("baz", null){(core::String*, core::List<core::int*>*) →* void};
+ #t213.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::•<core::int*>(0)){(core::String*, core::List<core::int*>*) →* void};
+ #t213.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::List<core::int*>*) →* void};
} =>#t213;
core::List<core::num*>* list80 = block {
final core::List<core::num*>* #t214 = core::_GrowableList::•<core::num*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t214.{core::List::add}(42){(core::num*) →* void};
+ #t214.{core::List::add}{Invariant}(42){(core::num*) →* void};
else
- #t214.{core::List::add}(3.14){(core::num*) →* void};
+ #t214.{core::List::add}{Invariant}(3.14){(core::num*) →* void};
} =>#t214;
core::Set<core::num*>* set80 = block {
final core::Set<core::num*>* #t215 = new col::_CompactLinkedHashSet::•<core::num*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t215.{core::Set::add}(42){(core::num*) →* core::bool*};
+ #t215.{core::Set::add}{Invariant}(42){(core::num*) →* core::bool*};
else
- #t215.{core::Set::add}(3.14){(core::num*) →* core::bool*};
- #t215.{core::Set::add}(null){(core::num*) →* core::bool*};
+ #t215.{core::Set::add}{Invariant}(3.14){(core::num*) →* core::bool*};
+ #t215.{core::Set::add}{Invariant}(null){(core::num*) →* core::bool*};
} =>#t215;
core::Map<core::String*, core::num*>* map80 = block {
final core::Map<core::String*, core::num*>* #t216 = <core::String*, core::num*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t216.{core::Map::[]=}("bar", 42){(core::String*, core::num*) →* void};
+ #t216.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::num*) →* void};
else
- #t216.{core::Map::[]=}("bar", 3.14){(core::String*, core::num*) →* void};
- #t216.{core::Map::[]=}("baz", null){(core::String*, core::num*) →* void};
+ #t216.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String*, core::num*) →* void};
+ #t216.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::num*) →* void};
} =>#t216;
core::List<core::num*>* list81 = block {
final core::List<core::num*>* #t217 = core::_GrowableList::•<core::num*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t217.{core::List::addAll}(listInt){(core::Iterable<core::num*>*) →* void};
+ #t217.{core::List::addAll}{Invariant}(listInt){(core::Iterable<core::num*>*) →* void};
else
- #t217.{core::List::addAll}(listDouble){(core::Iterable<core::num*>*) →* void};
+ #t217.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num*>*) →* void};
} =>#t217;
core::Set<core::num*>* set81 = block {
final core::Set<core::num*>* #t218 = new col::_CompactLinkedHashSet::•<core::num*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t218.{core::Set::addAll}(listInt){(core::Iterable<core::num*>*) →* void};
+ #t218.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num*>*) →* void};
else
- #t218.{core::Set::addAll}(listDouble){(core::Iterable<core::num*>*) →* void};
- #t218.{core::Set::add}(null){(core::num*) →* core::bool*};
+ #t218.{core::Set::addAll}{Invariant}(listDouble){(core::Iterable<core::num*>*) →* void};
+ #t218.{core::Set::add}{Invariant}(null){(core::num*) →* core::bool*};
} =>#t218;
core::Map<core::String*, core::num*>* map81 = block {
final core::Map<core::String*, core::num*>* #t219 = <core::String*, core::num*>{};
@@ -1710,34 +1710,34 @@
core::Iterator<core::MapEntry<core::String*, core::num*>>* :sync-for-iterator = mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::num*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::num*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::num*>* #t220 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::num*>};
- #t219.{core::Map::[]=}(#t220.{core::MapEntry::key}{core::String*}, #t220.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
+ #t219.{core::Map::[]=}{Invariant}(#t220.{core::MapEntry::key}{core::String*}, #t220.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
}
}
else {
core::Iterator<core::MapEntry<core::String*, core::num*>>* :sync-for-iterator = mapStringDouble.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::num*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::num*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::num*>* #t221 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::num*>};
- #t219.{core::Map::[]=}(#t221.{core::MapEntry::key}{core::String*}, #t221.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
+ #t219.{core::Map::[]=}{Invariant}(#t221.{core::MapEntry::key}{core::String*}, #t221.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
}
}
- #t219.{core::Map::[]=}("baz", null){(core::String*, core::num*) →* void};
+ #t219.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::num*) →* void};
} =>#t219;
core::List<dynamic>* list82 = block {
final core::List<dynamic>* #t222 = core::_GrowableList::•<dynamic>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t222.{core::List::addAll}(listInt){(core::Iterable<dynamic>*) →* void};
+ #t222.{core::List::addAll}{Invariant}(listInt){(core::Iterable<dynamic>*) →* void};
else
- #t222.{core::List::addAll}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
+ #t222.{core::List::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
} =>#t222;
core::Set<dynamic>* set82 = block {
final core::Set<dynamic>* #t223 = new col::_CompactLinkedHashSet::•<dynamic>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t223.{core::Set::addAll}(listInt){(core::Iterable<dynamic>*) →* void};
+ #t223.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<dynamic>*) →* void};
else
- #t223.{core::Set::addAll}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
- #t223.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t223.{core::Set::addAll}{Invariant}(dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*){(core::Iterable<dynamic>*) →* void};
+ #t223.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t223;
core::Map<dynamic, dynamic>* map82 = block {
final core::Map<dynamic, dynamic>* #t224 = <dynamic, dynamic>{};
@@ -1746,34 +1746,34 @@
core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic>* #t225 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t224.{core::Map::[]=}(#t225.{core::MapEntry::key}{dynamic}, #t225.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t224.{core::Map::[]=}{Invariant}(#t225.{core::MapEntry::key}{dynamic}, #t225.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
}
}
else {
core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic>* #t226 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t224.{core::Map::[]=}(#t226.{core::MapEntry::key}{dynamic}, #t226.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t224.{core::Map::[]=}{Invariant}(#t226.{core::MapEntry::key}{dynamic}, #t226.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
}
}
- #t224.{core::Map::[]=}("baz", null){(dynamic, dynamic) →* void};
+ #t224.{core::Map::[]=}{Invariant}("baz", null){(dynamic, dynamic) →* void};
} =>#t224;
core::List<core::num*>* list83 = block {
final core::List<core::num*>* #t227 = core::_GrowableList::•<core::num*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t227.{core::List::add}(42){(core::num*) →* void};
+ #t227.{core::List::add}{Invariant}(42){(core::num*) →* void};
else
- #t227.{core::List::addAll}(listDouble){(core::Iterable<core::num*>*) →* void};
+ #t227.{core::List::addAll}{Invariant}(listDouble){(core::Iterable<core::num*>*) →* void};
} =>#t227;
core::Set<core::num*>* set83 = block {
final core::Set<core::num*>* #t228 = new col::_CompactLinkedHashSet::•<core::num*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t228.{core::Set::addAll}(listInt){(core::Iterable<core::num*>*) →* void};
+ #t228.{core::Set::addAll}{Invariant}(listInt){(core::Iterable<core::num*>*) →* void};
else
- #t228.{core::Set::add}(3.14){(core::num*) →* core::bool*};
- #t228.{core::Set::add}(null){(core::num*) →* core::bool*};
+ #t228.{core::Set::add}{Invariant}(3.14){(core::num*) →* core::bool*};
+ #t228.{core::Set::add}{Invariant}(null){(core::num*) →* core::bool*};
} =>#t228;
core::Map<core::String*, core::num*>* map83 = block {
final core::Map<core::String*, core::num*>* #t229 = <core::String*, core::num*>{};
@@ -1782,29 +1782,29 @@
core::Iterator<core::MapEntry<core::String*, core::num*>>* :sync-for-iterator = mapStringInt.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::num*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::num*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::num*>* #t230 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::num*>};
- #t229.{core::Map::[]=}(#t230.{core::MapEntry::key}{core::String*}, #t230.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
+ #t229.{core::Map::[]=}{Invariant}(#t230.{core::MapEntry::key}{core::String*}, #t230.{core::MapEntry::value}{core::num*}){(core::String*, core::num*) →* void};
}
}
else
- #t229.{core::Map::[]=}("bar", 3.14){(core::String*, core::num*) →* void};
- #t229.{core::Map::[]=}("baz", null){(core::String*, core::num*) →* void};
+ #t229.{core::Map::[]=}{Invariant}("bar", 3.14){(core::String*, core::num*) →* void};
+ #t229.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::num*) →* void};
} =>#t229;
core::List<core::int*>* list90 = block {
final core::List<core::int*>* #t231 = core::_GrowableList::•<core::int*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t231.{core::List::add}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
+ #t231.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
} =>#t231;
core::Set<core::int*>* set90 = block {
final core::Set<core::int*>* #t232 = new col::_CompactLinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t232.{core::Set::add}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
- #t232.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t232.{core::Set::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
+ #t232.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t232;
core::Map<core::String*, core::int*>* map90 = block {
final core::Map<core::String*, core::int*>* #t233 = <core::String*, core::int*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t233.{core::Map::[]=}("bar", dynVar as{TypeError,ForDynamic} core::int*){(core::String*, core::int*) →* void};
- #t233.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t233.{core::Map::[]=}{Invariant}("bar", dynVar as{TypeError,ForDynamic} core::int*){(core::String*, core::int*) →* void};
+ #t233.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t233;
core::List<core::int*>* list91 = block {
final core::List<core::int*>* #t234 = core::_GrowableList::•<core::int*>(0);
@@ -1814,7 +1814,7 @@
final dynamic #t235 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t236 = #t235 as{TypeError} core::int*;
- #t234.{core::List::add}(#t236){(core::int*) →* void};
+ #t234.{core::List::add}{Invariant}(#t236){(core::int*) →* void};
}
}
}
@@ -1827,11 +1827,11 @@
final dynamic #t238 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t239 = #t238 as{TypeError} core::int*;
- #t237.{core::Set::add}(#t239){(core::int*) →* core::bool*};
+ #t237.{core::Set::add}{Invariant}(#t239){(core::int*) →* core::bool*};
}
}
}
- #t237.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t237.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t237;
core::Map<core::String*, core::int*>* map91 = block {
final core::Map<core::String*, core::int*>* #t240 = <core::String*, core::int*>{};
@@ -1842,26 +1842,26 @@
{
final core::String* #t242 = #t241.{core::MapEntry::key}{dynamic} as{TypeError} core::String*;
final core::int* #t243 = #t241.{core::MapEntry::value}{dynamic} as{TypeError} core::int*;
- #t240.{core::Map::[]=}(#t242, #t243){(core::String*, core::int*) →* void};
+ #t240.{core::Map::[]=}{Invariant}(#t242, #t243){(core::String*, core::int*) →* void};
}
}
}
- #t240.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t240.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t240;
core::List<core::int*>* list100 = block {
final core::List<core::int*>* #t244 = core::_GrowableList::•<core::int*>(0);
for (final core::int* #t245 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1){(core::num*) →* core::int*})
- #t244.{core::List::add}(42){(core::int*) →* void};
+ #t244.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t244;
core::Set<core::int*>* set100 = block {
final core::Set<core::int*>* #t246 = new col::_CompactLinkedHashSet::•<core::int*>();
for (final core::int* #t247 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1){(core::num*) →* core::int*})
- #t246.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t246.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
} =>#t246;
core::Map<core::String*, core::int*>* map100 = block {
final core::Map<core::String*, core::int*>* #t248 = <core::String*, core::int*>{};
for (final core::int* #t249 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1){(core::num*) →* core::int*})
- #t248.{core::Map::[]=}("bar", 42){(core::String*, core::int*) →* void};
+ #t248.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::int*) →* void};
} =>#t248;
core::List<core::int*>* list110 = block {
final core::List<core::int*>* #t250 = core::_GrowableList::•<core::int*>(0);
@@ -1869,7 +1869,7 @@
core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
- #t250.{core::List::add}(i){(core::int*) →* void};
+ #t250.{core::List::add}{Invariant}(i){(core::int*) →* void};
}
}
} =>#t250;
@@ -1879,10 +1879,10 @@
core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
- #t251.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t251.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
}
}
- #t251.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t251.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t251;
core::Map<core::String*, core::int*>* map110 = block {
final core::Map<core::String*, core::int*>* #t252 = <core::String*, core::int*>{};
@@ -1890,10 +1890,10 @@
core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
- #t252.{core::Map::[]=}("bar", i){(core::String*, core::int*) →* void};
+ #t252.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
}
}
- #t252.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t252.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t252;
core::List<core::int*>* list120 = block {
final core::List<core::int*>* #t253 = core::_GrowableList::•<core::int*>(0);
@@ -1901,7 +1901,7 @@
core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic i = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t253.{core::List::add}(i as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
+ #t253.{core::List::add}{Invariant}(i as{TypeError,ForDynamic} core::int*){(core::int*) →* void};
}
}
} =>#t253;
@@ -1911,10 +1911,10 @@
core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic i = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t254.{core::Set::add}(i as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
+ #t254.{core::Set::add}{Invariant}(i as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
}
}
- #t254.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t254.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t254;
core::Map<core::String*, core::int*>* map120 = block {
final core::Map<core::String*, core::int*>* #t255 = <core::String*, core::int*>{};
@@ -1922,25 +1922,25 @@
core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic i = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t255.{core::Map::[]=}("bar", i as{TypeError,ForDynamic} core::int*){(core::String*, core::int*) →* void};
+ #t255.{core::Map::[]=}{Invariant}("bar", i as{TypeError,ForDynamic} core::int*){(core::String*, core::int*) →* void};
}
}
- #t255.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t255.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t255;
core::List<core::int*>* list130 = block {
final core::List<core::int*>* #t256 = core::_GrowableList::•<core::int*>(0);
for (core::int* i = 1; i.{core::num::<}(2){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t256.{core::List::add}(i){(core::int*) →* void};
+ #t256.{core::List::add}{Invariant}(i){(core::int*) →* void};
} =>#t256;
core::Set<core::int*>* set130 = block {
final core::Set<core::int*>* #t257 = new col::_CompactLinkedHashSet::•<core::int*>();
for (core::int* i = 1; i.{core::num::<}(2){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t257.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t257.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
} =>#t257;
core::Map<core::int*, core::int*>* map130 = block {
final core::Map<core::int*, core::int*>* #t258 = <core::int*, core::int*>{};
for (core::int* i = 1; i.{core::num::<}(2){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t258.{core::Map::[]=}(i, i){(core::int*, core::int*) →* void};
+ #t258.{core::Map::[]=}{Invariant}(i, i){(core::int*, core::int*) →* void};
} =>#t258;
}
static method testForElementErrors(core::Map<core::int*, core::int*>* map, core::List<core::int*>* list) → dynamic /* originally async */ {
@@ -1962,44 +1962,44 @@
block {
final core::List<core::int*>* #t259 = core::_GrowableList::•<core::int*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t259.{core::List::add}(let final Never* #t260 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t259.{core::List::add}{Invariant}(let final Never* #t260 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>[for (int i = 0; oracle(\"foo\"); i++) \"bar\"];
^" in "bar" as{TypeError} core::int*){(core::int*) →* void};
} =>#t259;
block {
final core::Set<core::int*>* #t261 = new col::_CompactLinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t261.{core::Set::add}(let final Never* #t262 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:211:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t261.{core::Set::add}{Invariant}(let final Never* #t262 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:211:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\", null};
^" in "bar" as{TypeError} core::int*){(core::int*) →* core::bool*};
- #t261.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t261.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t261;
block {
final core::Map<core::int*, core::int*>* #t263 = <core::int*, core::int*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t263.{core::Map::[]=}(let final Never* #t264 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t263.{core::Map::[]=}{Invariant}(let final Never* #t264 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
^" in "bar" as{TypeError} core::int*, let final Never* #t265 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
^" in "bar" as{TypeError} core::int*){(core::int*, core::int*) →* void};
- #t263.{core::Map::[]=}(let final Never* #t266 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t263.{core::Map::[]=}{Invariant}(let final Never* #t266 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:212:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int, int>{for (int i = 0; oracle(\"foo\"); i++) \"bar\": \"bar\", \"baz\": null};
^" in "baz" as{TypeError} core::int*, null){(core::int*, core::int*) →* void};
} =>#t263;
block {
final core::List<core::int*>* #t267 = core::_GrowableList::•<core::int*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t267.{core::List::addAll}(core::_GrowableList::_literal1<core::int*>(let final Never* #t268 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t267.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(let final Never* #t268 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>[for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"]];
^" in "bar" as{TypeError} core::int*)){(core::Iterable<core::int*>*) →* void};
} =>#t267;
block {
final core::Set<core::int*>* #t269 = new col::_CompactLinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t269.{core::Set::addAll}(core::_GrowableList::_literal1<core::int*>(let final Never* #t270 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t269.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(let final Never* #t270 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int>{for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"], null};
^" in "bar" as{TypeError} core::int*)){(core::Iterable<core::int*>*) →* void};
- #t269.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t269.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t269;
block {
final core::Map<core::int*, core::int*>* #t271 = <core::int*, core::int*>{};
@@ -2011,17 +2011,17 @@
^" in "bar" as{TypeError} core::int*}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int*, core::int*>* #t274 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int*, core::int*>};
- #t271.{core::Map::[]=}(#t274.{core::MapEntry::key}{core::int*}, #t274.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
+ #t271.{core::Map::[]=}{Invariant}(#t274.{core::MapEntry::key}{core::int*}, #t274.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
}
}
- #t271.{core::Map::[]=}(let final Never* #t275 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ #t271.{core::Map::[]=}{Invariant}(let final Never* #t275 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:215:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
<int, int>{for (int i = 0; oracle(\"foo\"); i++) ...{\"bar\": \"bar\"}, \"baz\": null};
^" in "baz" as{TypeError} core::int*, null){(core::int*, core::int*) →* void};
} =>#t271;
block {
final core::List<core::int*>* #t276 = core::_GrowableList::•<core::int*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t276.{core::List::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t276.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>[for (int i = 0; oracle(\"foo\"); i++) ...map];
^"){(core::int*) →* void};
@@ -2029,11 +2029,11 @@
block {
final core::Set<core::int*>* #t277 = new col::_CompactLinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t277.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:48: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t277.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:217:48: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{for (int i = 0; oracle(\"foo\"); i++) ...map, null};
^"){(core::int*) →* core::bool*};
- #t277.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t277.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t277;
<core::int*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:218:53: Error: Unexpected type 'List<int>' of a map spread entry. Expected 'dynamic' or a Map.
- 'List' is from 'dart:core'.
@@ -2046,11 +2046,11 @@
final core::List<core::String*>* #t278 = core::_GrowableList::•<core::String*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t278.{core::List::add}(let final Never* #t279 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t278.{core::List::add}{Invariant}(let final Never* #t279 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
<String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
^" in 42 as{TypeError} core::String*){(core::String*) →* void};
else
- #t278.{core::List::add}(let final Never* #t280 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+ #t278.{core::List::add}{Invariant}(let final Never* #t280 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
<String>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14];
^" in 3.14 as{TypeError} core::String*){(core::String*) →* void};
} =>#t278;
@@ -2058,50 +2058,50 @@
final core::Set<core::String*>* #t281 = new col::_CompactLinkedHashSet::•<core::String*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t281.{core::Set::add}(let final Never* #t282 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t281.{core::Set::add}{Invariant}(let final Never* #t282 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
<String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
^" in 42 as{TypeError} core::String*){(core::String*) →* core::bool*};
else
- #t281.{core::Set::add}(let final Never* #t283 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+ #t281.{core::Set::add}{Invariant}(let final Never* #t283 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:220:70: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
<String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else 3.14, null};
^" in 3.14 as{TypeError} core::String*){(core::String*) →* core::bool*};
- #t281.{core::Set::add}(null){(core::String*) →* core::bool*};
+ #t281.{core::Set::add}{Invariant}(null){(core::String*) →* core::bool*};
} =>#t281;
block {
final core::Map<core::String*, core::String*>* #t284 = <core::String*, core::String*>{};
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t284.{core::Map::[]=}("bar", let final Never* #t285 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ #t284.{core::Map::[]=}{Invariant}("bar", let final Never* #t285 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:77: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
<String, String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
^" in 42 as{TypeError} core::String*){(core::String*, core::String*) →* void};
else
- #t284.{core::Map::[]=}("bar", let final Never* #t286 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+ #t284.{core::Map::[]=}{Invariant}("bar", let final Never* #t286 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:221:92: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
<String, String>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) \"bar\": 42 else \"bar\": 3.14, \"baz\": null};
^" in 3.14 as{TypeError} core::String*){(core::String*, core::String*) →* void};
- #t284.{core::Map::[]=}("baz", null){(core::String*, core::String*) →* void};
+ #t284.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::String*) →* void};
} =>#t284;
block {
final core::List<core::int*>* #t287 = core::_GrowableList::•<core::int*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t287.{core::List::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t287.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42];
^"){(core::int*) →* void};
else
- #t287.{core::List::add}(42){(core::int*) →* void};
+ #t287.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t287;
block {
final core::Set<core::int*>* #t288 = new col::_CompactLinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t288.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:62: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t288.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:223:62: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...map else 42, null};
^"){(core::int*) →* core::bool*};
else
- #t288.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t288.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t288.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t288.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t288;
<core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:224:70: Error: Unexpected type 'List<int>' of a map spread entry. Expected 'dynamic' or a Map.
- 'List' is from 'dart:core'.
@@ -2114,9 +2114,9 @@
final core::List<core::int*>* #t289 = core::_GrowableList::•<core::int*>(0);
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t289.{core::List::add}(42){(core::int*) →* void};
+ #t289.{core::List::add}{Invariant}(42){(core::int*) →* void};
else
- #t289.{core::List::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t289.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:225:70: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>[for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map];
^"){(core::int*) →* void};
@@ -2125,13 +2125,13 @@
final core::Set<core::int*>* #t290 = new col::_CompactLinkedHashSet::•<core::int*>();
for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1){(core::num*) →* core::int*})
if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
- #t290.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t290.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
else
- #t290.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
+ #t290.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:226:70: Error: Unexpected type 'Map<int, int>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) 42 else ...map, null};
^"){(core::int*) →* core::bool*};
- #t290.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t290.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t290;
<core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:227:85: Error: Unexpected type 'List<int>' of a map spread entry. Expected 'dynamic' or a Map.
- 'List' is from 'dart:core'.
@@ -2151,7 +2151,7 @@
invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:230:14: Error: Can't assign to the final variable 'i'.
<int>[for (i in <int>[1]) i];
^";
- #t291.{core::List::add}(i){(core::int*) →* void};
+ #t291.{core::List::add}{Invariant}(i){(core::int*) →* void};
}
}
}
@@ -2166,11 +2166,11 @@
invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:231:14: Error: Can't assign to the final variable 'i'.
<int>{for (i in <int>[1]) i, null};
^";
- #t293.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t293.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
}
}
}
- #t293.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t293.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t293;
block {
final core::Map<core::String*, core::int*>* #t295 = <core::String*, core::int*>{};
@@ -2182,11 +2182,11 @@
invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:232:21: Error: Can't assign to the final variable 'i'.
\t<String, int>{for (i in <int>[1]) \"bar\": i, \"baz\": null};
\t ^";
- #t295.{core::Map::[]=}("bar", i){(core::String*, core::int*) →* void};
+ #t295.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
}
}
}
- #t295.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t295.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t295;
core::List<dynamic>* list10 = block {
final core::List<dynamic>* #t297 = core::_GrowableList::•<dynamic>(0);
@@ -2197,7 +2197,7 @@
^" in "not iterable" as{TypeError} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic i = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t297.{core::List::add}(i){(dynamic) →* void};
+ #t297.{core::List::add}{Invariant}(i){(dynamic) →* void};
}
}
} =>#t297;
@@ -2210,10 +2210,10 @@
^" in "not iterable" as{TypeError} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic i = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t299.{core::Set::add}(i){(dynamic) →* core::bool*};
+ #t299.{core::Set::add}{Invariant}(i){(dynamic) →* core::bool*};
}
}
- #t299.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t299.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t299;
core::Map<core::String*, dynamic>* map10 = block {
final core::Map<core::String*, dynamic>* #t301 = <core::String*, dynamic>{};
@@ -2224,10 +2224,10 @@
^" in "not iterable" as{TypeError} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic i = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t301.{core::Map::[]=}("bar", i){(core::String*, dynamic) →* void};
+ #t301.{core::Map::[]=}{Invariant}("bar", i){(core::String*, dynamic) →* void};
}
}
- #t301.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t301.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t301;
core::List<core::int*>* list20 = block {
final core::List<core::int*>* #t303 = core::_GrowableList::•<core::int*>(0);
@@ -2239,7 +2239,7 @@
^" in "int" as{TypeError} core::int*).{core::Iterable::iterator}{core::Iterator<core::int*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
- #t303.{core::List::add}(i){(core::int*) →* void};
+ #t303.{core::List::add}{Invariant}(i){(core::int*) →* void};
}
}
} =>#t303;
@@ -2253,10 +2253,10 @@
^" in "int" as{TypeError} core::int*).{core::Iterable::iterator}{core::Iterator<core::int*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
- #t306.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t306.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
}
}
- #t306.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t306.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t306;
core::Map<core::String*, core::int*>* map20 = block {
final core::Map<core::String*, core::int*>* #t309 = <core::String*, core::int*>{};
@@ -2268,10 +2268,10 @@
^" in "int" as{TypeError} core::int*).{core::Iterable::iterator}{core::Iterator<core::int*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
- #t309.{core::Map::[]=}("bar", i){(core::String*, core::int*) →* void};
+ #t309.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
}
}
- #t309.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t309.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t309;
final core::List<dynamic>* #t312 = core::_GrowableList::•<dynamic>(0);
{
@@ -2287,7 +2287,7 @@
[yield] let dynamic #t315 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}, :async_op_then, :async_op_error, :async_op) in null;
if(_in::unsafeCast<core::bool>(:result)) {
dynamic i = :for-iterator.{asy::_StreamIterator::current}{dynamic};
- #t312.{core::List::add}(i){(dynamic) →* void};
+ #t312.{core::List::add}{Invariant}(i){(dynamic) →* void};
}
else
break #L2;
@@ -2313,7 +2313,7 @@
[yield] let dynamic #t320 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}, :async_op_then, :async_op_error, :async_op) in null;
if(_in::unsafeCast<core::bool>(:result)) {
dynamic i = :for-iterator.{asy::_StreamIterator::current}{dynamic};
- #t317.{core::Set::add}(i){(dynamic) →* core::bool*};
+ #t317.{core::Set::add}{Invariant}(i){(dynamic) →* core::bool*};
}
else
break #L3;
@@ -2325,7 +2325,7 @@
}
}
core::Set<dynamic>* set30 = block {
- #t317.{core::Set::add}(null){(dynamic) →* core::bool*};
+ #t317.{core::Set::add}{Invariant}(null){(dynamic) →* core::bool*};
} =>#t317;
final core::Map<core::String*, dynamic>* #t322 = <core::String*, dynamic>{};
{
@@ -2341,7 +2341,7 @@
[yield] let dynamic #t325 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}, :async_op_then, :async_op_error, :async_op) in null;
if(_in::unsafeCast<core::bool>(:result)) {
dynamic i = :for-iterator.{asy::_StreamIterator::current}{dynamic};
- #t322.{core::Map::[]=}("bar", i){(core::String*, dynamic) →* void};
+ #t322.{core::Map::[]=}{Invariant}("bar", i){(core::String*, dynamic) →* void};
}
else
break #L4;
@@ -2353,7 +2353,7 @@
}
}
core::Map<core::String*, dynamic>* map30 = block {
- #t322.{core::Map::[]=}("baz", null){(core::String*, dynamic) →* void};
+ #t322.{core::Map::[]=}{Invariant}("baz", null){(core::String*, dynamic) →* void};
} =>#t322;
final core::List<core::int*>* #t327 = core::_GrowableList::•<core::int*>(0);
{
@@ -2370,7 +2370,7 @@
[yield] let dynamic #t331 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}, :async_op_then, :async_op_error, :async_op) in null;
if(_in::unsafeCast<core::bool>(:result)) {
core::int* i = :for-iterator.{asy::_StreamIterator::current}{core::int*};
- #t327.{core::List::add}(i){(core::int*) →* void};
+ #t327.{core::List::add}{Invariant}(i){(core::int*) →* void};
}
else
break #L5;
@@ -2397,7 +2397,7 @@
[yield] let dynamic #t337 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}, :async_op_then, :async_op_error, :async_op) in null;
if(_in::unsafeCast<core::bool>(:result)) {
core::int* i = :for-iterator.{asy::_StreamIterator::current}{core::int*};
- #t333.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t333.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
}
else
break #L6;
@@ -2409,7 +2409,7 @@
}
}
core::Set<core::int*>* set40 = block {
- #t333.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t333.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t333;
final core::Map<core::String*, core::int*>* #t339 = <core::String*, core::int*>{};
{
@@ -2426,7 +2426,7 @@
[yield] let dynamic #t343 = asy::_awaitHelper(:for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}, :async_op_then, :async_op_error, :async_op) in null;
if(_in::unsafeCast<core::bool>(:result)) {
core::int* i = :for-iterator.{asy::_StreamIterator::current}{core::int*};
- #t339.{core::Map::[]=}("bar", i){(core::String*, core::int*) →* void};
+ #t339.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
}
else
break #L7;
@@ -2438,47 +2438,47 @@
}
}
core::Map<core::String*, core::int*>* map40 = block {
- #t339.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t339.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t339;
core::List<core::int*>* list50 = block {
final core::List<core::int*>* #t345 = core::_GrowableList::•<core::int*>(0);
for (; ; )
- #t345.{core::List::add}(42){(core::int*) →* void};
+ #t345.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t345;
core::Set<core::int*>* set50 = block {
final core::Set<core::int*>* #t346 = new col::_CompactLinkedHashSet::•<core::int*>();
for (; ; )
- #t346.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t346.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t346.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t346.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t346;
core::Map<core::String*, core::int*>* map50 = block {
final core::Map<core::String*, core::int*>* #t347 = <core::String*, core::int*>{};
for (; ; )
- #t347.{core::Map::[]=}("bar", 42){(core::String*, core::int*) →* void};
- #t347.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t347.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::int*) →* void};
+ #t347.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t347;
core::List<core::int*>* list60 = block {
final core::List<core::int*>* #t348 = core::_GrowableList::•<core::int*>(0);
for (; let final Never* #t349 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
var list60 = [for (; \"not bool\";) 42];
^" in "not bool" as{TypeError} core::bool*; )
- #t348.{core::List::add}(42){(core::int*) →* void};
+ #t348.{core::List::add}{Invariant}(42){(core::int*) →* void};
} =>#t348;
core::Set<core::int*>* set60 = block {
final core::Set<core::int*>* #t350 = new col::_CompactLinkedHashSet::•<core::int*>();
for (; let final Never* #t351 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:250:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
var set60 = {for (; \"not bool\";) 42, null};
^" in "not bool" as{TypeError} core::bool*; )
- #t350.{core::Set::add}(42){(core::int*) →* core::bool*};
- #t350.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t350.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
+ #t350.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t350;
core::Map<core::String*, core::int*>* map60 = block {
final core::Map<core::String*, core::int*>* #t352 = <core::String*, core::int*>{};
for (; let final Never* #t353 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:251:23: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
var map60 = {for (; \"not bool\";) \"bar\": 42, \"baz\": null};
^" in "not bool" as{TypeError} core::bool*; )
- #t352.{core::Map::[]=}("bar", 42){(core::String*, core::int*) →* void};
- #t352.{core::Map::[]=}("baz", null){(core::String*, core::int*) →* void};
+ #t352.{core::Map::[]=}{Invariant}("bar", 42){(core::String*, core::int*) →* void};
+ #t352.{core::Map::[]=}{Invariant}("baz", null){(core::String*, core::int*) →* void};
} =>#t352;
}
asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
@@ -2497,34 +2497,34 @@
block {
final core::List<core::int*>* #t354 = core::_GrowableList::•<core::int*>(0);
await for (core::int* i in stream)
- #t354.{core::List::add}(i){(core::int*) →* void};
+ #t354.{core::List::add}{Invariant}(i){(core::int*) →* void};
} =>#t354;
block {
final core::Set<core::int*>* #t355 = new col::_CompactLinkedHashSet::•<core::int*>();
await for (core::int* i in stream)
- #t355.{core::Set::add}(i){(core::int*) →* core::bool*};
+ #t355.{core::Set::add}{Invariant}(i){(core::int*) →* core::bool*};
} =>#t355;
block {
final core::Map<core::String*, core::int*>* #t356 = <core::String*, core::int*>{};
await for (core::int* i in stream)
- #t356.{core::Map::[]=}("bar", i){(core::String*, core::int*) →* void};
+ #t356.{core::Map::[]=}{Invariant}("bar", i){(core::String*, core::int*) →* void};
} =>#t356;
}
static method testPromotion(self::A* a) → dynamic {
core::List<core::int*>* list10 = block {
final core::List<core::int*>* #t357 = core::_GrowableList::•<core::int*>(0);
if(a is self::B*)
- #t357.{core::List::add}(a{self::B*}.{self::B::foo}{core::int*}){(core::int*) →* void};
+ #t357.{core::List::add}{Invariant}(a{self::B*}.{self::B::foo}{core::int*}){(core::int*) →* void};
} =>#t357;
core::Set<core::int*>* set10 = block {
final core::Set<core::int*>* #t358 = new col::_CompactLinkedHashSet::•<core::int*>();
if(a is self::B*)
- #t358.{core::Set::add}(a{self::B*}.{self::B::foo}{core::int*}){(core::int*) →* core::bool*};
+ #t358.{core::Set::add}{Invariant}(a{self::B*}.{self::B::foo}{core::int*}){(core::int*) →* core::bool*};
} =>#t358;
core::Map<core::int*, core::int*>* map10 = block {
final core::Map<core::int*, core::int*>* #t359 = <core::int*, core::int*>{};
if(a is self::B*)
- #t359.{core::Map::[]=}(a{self::B*}.{self::B::foo}{core::int*}, a{self::B*}.{self::B::foo}{core::int*}){(core::int*, core::int*) →* void};
+ #t359.{core::Map::[]=}{Invariant}(a{self::B*}.{self::B::foo}{core::int*}, a{self::B*}.{self::B::foo}{core::int*}){(core::int*, core::int*) →* void};
} =>#t359;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.expect b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.expect
index b700240..cc17e25 100644
--- a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.expect
+++ b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.expect
@@ -8,6 +8,6 @@
core::Object* b;
return block {
final core::Set<core::Object*>* #t1 = col::LinkedHashSet::•<core::Object*>();
- #t1.{core::Set::add}(let final core::Object* #t2 = a in #t2 == null ?{core::Object*} b : #t2){(core::Object*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(let final core::Object* #t2 = a in #t2 == null ?{core::Object*} b : #t2){(core::Object*) →* core::bool*};
} =>#t1;
}
diff --git a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.transformed.expect b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.transformed.expect
index 1cdc7aa..f6734712 100644
--- a/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/if_null_in_set_literal.dart.weak.transformed.expect
@@ -8,6 +8,6 @@
core::Object* b;
return block {
final core::Set<core::Object*>* #t1 = new col::_CompactLinkedHashSet::•<core::Object*>();
- #t1.{core::Set::add}(let final core::Object* #t2 = a in #t2 == null ?{core::Object*} b : #t2){(core::Object*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(let final core::Object* #t2 = a in #t2 == null ?{core::Object*} b : #t2){(core::Object*) →* core::bool*};
} =>#t1;
}
diff --git a/pkg/front_end/testcases/general/issue37027.dart.weak.expect b/pkg/front_end/testcases/general/issue37027.dart.weak.expect
index 531f7c1..eeb421b 100644
--- a/pkg/front_end/testcases/general/issue37027.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue37027.dart.weak.expect
@@ -10,7 +10,7 @@
final core::Set<core::int> #t1 = col::LinkedHashSet::•<core::int>();
for (core::int e in ell)
if(e.{core::int::isOdd}{core::bool})
- #t1.{core::Set::add}(2.{core::num::*}(e){(core::num) → core::int}){(core::int) → core::bool};
+ #t1.{core::Set::add}{Invariant}(2.{core::num::*}(e){(core::num) → core::int}){(core::int) → core::bool};
} =>#t1, super core::Object::•()
;
}
diff --git a/pkg/front_end/testcases/general/issue37027.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue37027.dart.weak.transformed.expect
index e32389f..ea3bc5b 100644
--- a/pkg/front_end/testcases/general/issue37027.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/issue37027.dart.weak.transformed.expect
@@ -13,7 +13,7 @@
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int e = :sync-for-iterator.{core::Iterator::current}{core::int};
if(e.{core::int::isOdd}{core::bool})
- #t1.{core::Set::add}(2.{core::num::*}(e){(core::num) → core::int}){(core::int) → core::bool};
+ #t1.{core::Set::add}{Invariant}(2.{core::num::*}(e){(core::num) → core::int}){(core::int) → core::bool};
}
}
} =>#t1, super core::Object::•()
diff --git a/pkg/front_end/testcases/general/null_aware_spread.dart.weak.expect b/pkg/front_end/testcases/general/null_aware_spread.dart.weak.expect
index d64a199..01b31a0 100644
--- a/pkg/front_end/testcases/general/null_aware_spread.dart.weak.expect
+++ b/pkg/front_end/testcases/general/null_aware_spread.dart.weak.expect
@@ -8,26 +8,26 @@
final core::List<core::String*>* #t1 = <core::String*>["foo"];
final core::Iterable<core::String*>* #t2 = list;
if(!(#t2 == null))
- #t1.{core::List::addAll}(#t2){(core::Iterable<core::String*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(#t2){(core::Iterable<core::String*>*) →* void};
} =>#t1;
}
static method nullAwareSetSpread(core::Set<core::String*>* set) → dynamic {
set = block {
final core::Set<core::String*>* #t3 = col::LinkedHashSet::•<core::String*>();
- #t3.{core::Set::add}("foo"){(core::String*) →* core::bool*};
+ #t3.{core::Set::add}{Invariant}("foo"){(core::String*) →* core::bool*};
final core::Iterable<core::String*>* #t4 = set;
if(!(#t4 == null))
- #t3.{core::Set::addAll}(#t4){(core::Iterable<core::String*>*) →* void};
+ #t3.{core::Set::addAll}{Invariant}(#t4){(core::Iterable<core::String*>*) →* void};
} =>#t3;
}
static method nullAwareMapSpread(core::Map<core::int*, core::String*>* map) → dynamic {
map = block {
final core::Map<core::int*, core::String*>* #t5 = <core::int*, core::String*>{};
- #t5.{core::Map::[]=}(0, "foo"){(core::int*, core::String*) →* void};
+ #t5.{core::Map::[]=}{Invariant}(0, "foo"){(core::int*, core::String*) →* void};
final core::Map<core::int*, core::String*>* #t6 = map;
if(!(#t6 == null))
for (final core::MapEntry<core::int*, core::String*>* #t7 in #t6.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::String*>>})
- #t5.{core::Map::[]=}(#t7.{core::MapEntry::key}{core::int*}, #t7.{core::MapEntry::value}{core::String*}){(core::int*, core::String*) →* void};
+ #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{core::int*}, #t7.{core::MapEntry::value}{core::String*}){(core::int*, core::String*) →* void};
} =>#t5;
}
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/general/null_aware_spread.dart.weak.transformed.expect b/pkg/front_end/testcases/general/null_aware_spread.dart.weak.transformed.expect
index a1389b2..1dc0cf1 100644
--- a/pkg/front_end/testcases/general/null_aware_spread.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/null_aware_spread.dart.weak.transformed.expect
@@ -8,28 +8,28 @@
final core::List<core::String*>* #t1 = core::_GrowableList::_literal1<core::String*>("foo");
final core::Iterable<core::String*>* #t2 = list;
if(!(#t2 == null))
- #t1.{core::List::addAll}(#t2){(core::Iterable<core::String*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(#t2){(core::Iterable<core::String*>*) →* void};
} =>#t1;
}
static method nullAwareSetSpread(core::Set<core::String*>* set) → dynamic {
set = block {
final core::Set<core::String*>* #t3 = new col::_CompactLinkedHashSet::•<core::String*>();
- #t3.{core::Set::add}("foo"){(core::String*) →* core::bool*};
+ #t3.{core::Set::add}{Invariant}("foo"){(core::String*) →* core::bool*};
final core::Iterable<core::String*>* #t4 = set;
if(!(#t4 == null))
- #t3.{core::Set::addAll}(#t4){(core::Iterable<core::String*>*) →* void};
+ #t3.{core::Set::addAll}{Invariant}(#t4){(core::Iterable<core::String*>*) →* void};
} =>#t3;
}
static method nullAwareMapSpread(core::Map<core::int*, core::String*>* map) → dynamic {
map = block {
final core::Map<core::int*, core::String*>* #t5 = <core::int*, core::String*>{};
- #t5.{core::Map::[]=}(0, "foo"){(core::int*, core::String*) →* void};
+ #t5.{core::Map::[]=}{Invariant}(0, "foo"){(core::int*, core::String*) →* void};
final core::Map<core::int*, core::String*>* #t6 = map;
if(!(#t6 == null)) {
core::Iterator<core::MapEntry<core::int*, core::String*>>* :sync-for-iterator = #t6.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::String*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int*, core::String*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int*, core::String*>* #t7 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int*, core::String*>};
- #t5.{core::Map::[]=}(#t7.{core::MapEntry::key}{core::int*}, #t7.{core::MapEntry::value}{core::String*}){(core::int*, core::String*) →* void};
+ #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{core::int*}, #t7.{core::MapEntry::value}{core::String*}){(core::int*, core::String*) →* void};
}
}
} =>#t5;
diff --git a/pkg/front_end/testcases/general/spread_collection.dart.weak.expect b/pkg/front_end/testcases/general/spread_collection.dart.weak.expect
index 6200efa..6948e05 100644
--- a/pkg/front_end/testcases/general/spread_collection.dart.weak.expect
+++ b/pkg/front_end/testcases/general/spread_collection.dart.weak.expect
@@ -14,28 +14,28 @@
static method main() → dynamic {
final core::List<core::int*>* aList = block {
final core::List<core::int*>* #t1 = <core::int*>[1];
- #t1.{core::List::addAll}(<core::int*>[2]){(core::Iterable<core::int*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(<core::int*>[2]){(core::Iterable<core::int*>*) →* void};
final core::Iterable<core::int*>* #t2 = <core::int*>[3];
if(!(#t2 == null))
- #t1.{core::List::addAll}(#t2){(core::Iterable<core::int*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(#t2){(core::Iterable<core::int*>*) →* void};
} =>#t1;
final core::Map<core::int*, core::int*>* aMap = block {
final core::Map<core::int*, core::int*>* #t3 = <core::int*, core::int*>{};
- #t3.{core::Map::[]=}(1, 1){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(1, 1){(core::int*, core::int*) →* void};
for (final core::MapEntry<core::int*, core::int*>* #t4 in <core::int*, core::int*>{2: 2}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>})
- #t3.{core::Map::[]=}(#t4.{core::MapEntry::key}{core::int*}, #t4.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}{core::int*}, #t4.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
final core::Map<core::int*, core::int*>* #t5 = <core::int*, core::int*>{3: 3};
if(!(#t5 == null))
for (final core::MapEntry<core::int*, core::int*>* #t6 in #t5.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>})
- #t3.{core::Map::[]=}(#t6.{core::MapEntry::key}{core::int*}, #t6.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}{core::int*}, #t6.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
} =>#t3;
final core::Set<core::int*>* aSet = block {
final core::Set<core::int*>* #t7 = col::LinkedHashSet::•<core::int*>();
- #t7.{core::Set::add}(1){(core::int*) →* core::bool*};
- #t7.{core::Set::addAll}(<core::int*>[2]){(core::Iterable<core::int*>*) →* void};
+ #t7.{core::Set::add}{Invariant}(1){(core::int*) →* core::bool*};
+ #t7.{core::Set::addAll}{Invariant}(<core::int*>[2]){(core::Iterable<core::int*>*) →* void};
final core::Iterable<core::int*>* #t8 = <core::int*>[3];
if(!(#t8 == null))
- #t7.{core::Set::addAll}(#t8){(core::Iterable<core::int*>*) →* void};
+ #t7.{core::Set::addAll}{Invariant}(#t8){(core::Iterable<core::int*>*) →* void};
} =>#t7;
final Never* aSetOrMap = invalid-expression "pkg/front_end/testcases/general/spread_collection.dart:21:21: Error: Not enough type information to disambiguate between literal set and literal map.
Try providing type arguments for the literal explicitly to disambiguate it.
diff --git a/pkg/front_end/testcases/general/spread_collection.dart.weak.transformed.expect b/pkg/front_end/testcases/general/spread_collection.dart.weak.transformed.expect
index b25f44b..29f6481 100644
--- a/pkg/front_end/testcases/general/spread_collection.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/spread_collection.dart.weak.transformed.expect
@@ -14,19 +14,19 @@
static method main() → dynamic {
final core::List<core::int*>* aList = block {
final core::List<core::int*>* #t1 = core::_GrowableList::_literal1<core::int*>(1);
- #t1.{core::List::addAll}(core::_GrowableList::_literal1<core::int*>(2)){(core::Iterable<core::int*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(2)){(core::Iterable<core::int*>*) →* void};
final core::Iterable<core::int*>* #t2 = core::_GrowableList::_literal1<core::int*>(3);
if(!(#t2 == null))
- #t1.{core::List::addAll}(#t2){(core::Iterable<core::int*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(#t2){(core::Iterable<core::int*>*) →* void};
} =>#t1;
final core::Map<core::int*, core::int*>* aMap = block {
final core::Map<core::int*, core::int*>* #t3 = <core::int*, core::int*>{};
- #t3.{core::Map::[]=}(1, 1){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(1, 1){(core::int*, core::int*) →* void};
{
core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = <core::int*, core::int*>{2: 2}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int*, core::int*>* #t4 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int*, core::int*>};
- #t3.{core::Map::[]=}(#t4.{core::MapEntry::key}{core::int*}, #t4.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}{core::int*}, #t4.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
}
}
final core::Map<core::int*, core::int*>* #t5 = <core::int*, core::int*>{3: 3};
@@ -34,17 +34,17 @@
core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = #t5.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int*, core::int*>* #t6 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int*, core::int*>};
- #t3.{core::Map::[]=}(#t6.{core::MapEntry::key}{core::int*}, #t6.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
+ #t3.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}{core::int*}, #t6.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
}
}
} =>#t3;
final core::Set<core::int*>* aSet = block {
final core::Set<core::int*>* #t7 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t7.{core::Set::add}(1){(core::int*) →* core::bool*};
- #t7.{core::Set::addAll}(core::_GrowableList::_literal1<core::int*>(2)){(core::Iterable<core::int*>*) →* void};
+ #t7.{core::Set::add}{Invariant}(1){(core::int*) →* core::bool*};
+ #t7.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(2)){(core::Iterable<core::int*>*) →* void};
final core::Iterable<core::int*>* #t8 = core::_GrowableList::_literal1<core::int*>(3);
if(!(#t8 == null))
- #t7.{core::Set::addAll}(#t8){(core::Iterable<core::int*>*) →* void};
+ #t7.{core::Set::addAll}{Invariant}(#t8){(core::Iterable<core::int*>*) →* void};
} =>#t7;
final Never* aSetOrMap = invalid-expression "pkg/front_end/testcases/general/spread_collection.dart:21:21: Error: Not enough type information to disambiguate between literal set and literal map.
Try providing type arguments for the literal explicitly to disambiguate it.
diff --git a/pkg/front_end/testcases/general/spread_collection_inference.dart.weak.expect b/pkg/front_end/testcases/general/spread_collection_inference.dart.weak.expect
index 44ce1a9..45b2b8f 100644
--- a/pkg/front_end/testcases/general/spread_collection_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/general/spread_collection_inference.dart.weak.expect
@@ -114,50 +114,50 @@
core::Map<dynamic, dynamic>* map10 = block {
final core::Map<dynamic, dynamic>* #t3 = <dynamic, dynamic>{};
for (final core::MapEntry<dynamic, dynamic>* #t4 in <dynamic, dynamic>{}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t3.{core::Map::[]=}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
} =>#t3;
core::Map<dynamic, dynamic>* map10ambiguous = block {
final core::Map<dynamic, dynamic>* #t5 = <dynamic, dynamic>{};
for (final core::MapEntry<dynamic, dynamic>* #t6 in <dynamic, dynamic>{}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t5.{core::Map::[]=}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
} =>#t5;
core::List<core::int*>* lhs20 = block {
final core::List<core::int*>* #t7 = core::List::of<core::int*>(spread);
} =>#t7;
core::Set<core::int*>* set20 = block {
final core::Set<core::int*>* #t8 = col::LinkedHashSet::of<core::int*>(spread);
- #t8.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
} =>#t8;
core::Set<core::int*>* set20ambiguous = block {
final core::Set<core::int*>* #t9 = col::LinkedHashSet::•<core::int*>();
for (final dynamic #t10 in spread) {
final core::int* #t11 = #t10 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t11){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t11){(core::int*) →* core::bool*};
}
} =>#t9;
core::Map<core::String*, core::int*>* map20 = block {
final core::Map<core::String*, core::int*>* #t12 = <core::String*, core::int*>{};
for (final core::MapEntry<core::String*, core::int*>* #t13 in mapSpread.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t12.{core::Map::[]=}(#t13.{core::MapEntry::key}{core::String*}, #t13.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
- #t12.{core::Map::[]=}("baz", 42){(core::String*, core::int*) →* void};
+ #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{core::String*}, #t13.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t12.{core::Map::[]=}{Invariant}("baz", 42){(core::String*, core::int*) →* void};
} =>#t12;
core::Map<core::String*, core::int*>* map20ambiguous = block {
final core::Map<core::String*, core::int*>* #t14 = <core::String*, core::int*>{};
for (final core::MapEntry<core::String*, core::int*>* #t15 in mapSpread.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t14.{core::Map::[]=}(#t15.{core::MapEntry::key}{core::String*}, #t15.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}{core::String*}, #t15.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
} =>#t14;
core::List<dynamic>* lhs21 = block {
final core::List<dynamic>* #t16 = core::List::of<dynamic>((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*);
} =>#t16;
core::Set<dynamic>* set21 = block {
final core::Set<dynamic>* #t17 = col::LinkedHashSet::of<dynamic>((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*);
- #t17.{core::Set::add}(42){(dynamic) →* core::bool*};
+ #t17.{core::Set::add}{Invariant}(42){(dynamic) →* core::bool*};
} =>#t17;
core::Map<dynamic, dynamic>* map21 = block {
final core::Map<dynamic, dynamic>* #t18 = <dynamic, dynamic>{};
for (final core::MapEntry<dynamic, dynamic>* #t19 in ((mapSpread as dynamic) as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t18.{core::Map::[]=}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
- #t18.{core::Map::[]=}("baz", 42){(dynamic, dynamic) →* void};
+ #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t18.{core::Map::[]=}{Invariant}("baz", 42){(dynamic, dynamic) →* void};
} =>#t18;
dynamic map21ambiguous = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:64:28: Error: Not enough type information to disambiguate between literal set and literal map.
Try providing type arguments for the literal explicitly to disambiguate it.
@@ -168,38 +168,38 @@
} =>#t20;
core::Set<core::int*>* set22 = block {
final core::Set<core::int*>* #t21 = col::LinkedHashSet::of<core::int*>(<core::int*>[]);
- #t21.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t21.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
} =>#t21;
core::Set<core::int*>* set22ambiguous = block {
final core::Set<core::int*>* #t22 = col::LinkedHashSet::•<core::int*>();
for (final dynamic #t23 in <core::int*>[]) {
final core::int* #t24 = #t23 as{TypeError} core::int*;
- #t22.{core::Set::add}(#t24){(core::int*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(#t24){(core::int*) →* core::bool*};
}
} =>#t22;
core::Map<core::String*, core::int*>* map22 = block {
final core::Map<core::String*, core::int*>* #t25 = <core::String*, core::int*>{};
for (final core::MapEntry<core::String*, core::int*>* #t26 in <core::String*, core::int*>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t25.{core::Map::[]=}(#t26.{core::MapEntry::key}{core::String*}, #t26.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t25.{core::Map::[]=}{Invariant}(#t26.{core::MapEntry::key}{core::String*}, #t26.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
} =>#t25;
core::List<core::List<core::int*>*>* lhs23 = block {
final core::List<core::List<core::int*>*>* #t27 = core::List::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
} =>#t27;
core::Set<core::List<core::int*>*>* set23 = block {
final core::Set<core::List<core::int*>*>* #t28 = col::LinkedHashSet::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
- #t28.{core::Set::add}(<core::int*>[42]){(core::List<core::int*>*) →* core::bool*};
+ #t28.{core::Set::add}{Invariant}(<core::int*>[42]){(core::List<core::int*>*) →* core::bool*};
} =>#t28;
core::Set<core::List<core::int*>*>* set23ambiguous = block {
final core::Set<core::List<core::int*>*>* #t29 = col::LinkedHashSet::•<core::List<core::int*>*>();
for (final dynamic #t30 in <core::List<core::int*>*>[<core::int*>[]]) {
final core::List<core::int*>* #t31 = #t30 as{TypeError} core::List<core::int*>*;
- #t29.{core::Set::add}(#t31){(core::List<core::int*>*) →* core::bool*};
+ #t29.{core::Set::add}{Invariant}(#t31){(core::List<core::int*>*) →* core::bool*};
}
} =>#t29;
core::Map<core::String*, core::List<core::int*>*>* map23 = block {
final core::Map<core::String*, core::List<core::int*>*>* #t32 = <core::String*, core::List<core::int*>*>{};
for (final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 in <core::String*, core::List<core::int*>*>{"baz": <core::int*>[]}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>})
- #t32.{core::Map::[]=}(#t33.{core::MapEntry::key}{core::String*}, #t33.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}{core::String*}, #t33.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
} =>#t32;
dynamic map24ambiguous = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:96:28: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
dynamic map24ambiguous = {...spread, ...mapSpread};
@@ -215,7 +215,7 @@
int set30 = /*@ typeArgs=int* */ {...spread, 42};
^" in ( block {
final core::Set<core::int*>* #t37 = col::LinkedHashSet::of<core::int*>(spread);
- #t37.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t37.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
} =>#t37) as{TypeError} core::int*;
core::int* set30ambiguous = let final Never* #t38 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:103:7: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
- 'Set' is from 'dart:core'.
@@ -224,7 +224,7 @@
final core::Set<core::int*>* #t39 = col::LinkedHashSet::•<core::int*>();
for (final dynamic #t40 in spread) {
final core::int* #t41 = #t40 as{TypeError} core::int*;
- #t39.{core::Set::add}(#t41){(core::int*) →* core::bool*};
+ #t39.{core::Set::add}{Invariant}(#t41){(core::int*) →* core::bool*};
}
} =>#t39) as{TypeError} core::int*;
core::int* map30 = let final Never* #t42 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:106:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
@@ -233,8 +233,8 @@
^" in ( block {
final core::Map<core::String*, core::int*>* #t43 = <core::String*, core::int*>{};
for (final core::MapEntry<core::String*, core::int*>* #t44 in mapSpread.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t43.{core::Map::[]=}(#t44.{core::MapEntry::key}{core::String*}, #t44.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
- #t43.{core::Map::[]=}("baz", 42){(core::String*, core::int*) →* void};
+ #t43.{core::Map::[]=}{Invariant}(#t44.{core::MapEntry::key}{core::String*}, #t44.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t43.{core::Map::[]=}{Invariant}("baz", 42){(core::String*, core::int*) →* void};
} =>#t43) as{TypeError} core::int*;
core::int* map30ambiguous = let final Never* #t45 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:109:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
- 'Map' is from 'dart:core'.
@@ -242,14 +242,14 @@
^" in ( block {
final core::Map<core::String*, core::int*>* #t46 = <core::String*, core::int*>{};
for (final core::MapEntry<core::String*, core::int*>* #t47 in mapSpread.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t46.{core::Map::[]=}(#t47.{core::MapEntry::key}{core::String*}, #t47.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}{core::String*}, #t47.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
} =>#t46) as{TypeError} core::int*;
core::List<dynamic>* lhs40 = <dynamic>[invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:111:38: Error: Unexpected type 'int' of a spread. Expected 'dynamic' or an Iterable.
List<dynamic> lhs40 = <dynamic>[...notSpreadInt];
^"];
core::Set<dynamic>* set40 = block {
final core::Set<dynamic>* #t48 = col::LinkedHashSet::•<dynamic>();
- #t48.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:113:37: Error: Unexpected type 'int' of a spread. Expected 'dynamic' or an Iterable.
+ #t48.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:113:37: Error: Unexpected type 'int' of a spread. Expected 'dynamic' or an Iterable.
Set<dynamic> set40 = <dynamic>{...notSpreadInt};
^"){(dynamic) →* core::bool*};
} =>#t48;
@@ -261,7 +261,7 @@
^"];
core::Set<dynamic>* set50 = block {
final core::Set<dynamic>* #t49 = col::LinkedHashSet::•<dynamic>();
- #t49.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:119:37: Error: Unexpected type 'int Function()' of a spread. Expected 'dynamic' or an Iterable.
+ #t49.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:119:37: Error: Unexpected type 'int Function()' of a spread. Expected 'dynamic' or an Iterable.
Set<dynamic> set50 = <dynamic>{...notSpreadFunction};
^"){(dynamic) →* core::bool*};
} =>#t49;
@@ -273,7 +273,7 @@
^"];
core::Set<core::String*>* set60 = block {
final core::Set<core::String*>* #t50 = col::LinkedHashSet::•<core::String*>();
- #t50.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:125:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
+ #t50.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:125:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
Set<String> set60 = <String>{...spread};
^"){(core::String*) →* core::bool*};
} =>#t50;
@@ -288,18 +288,18 @@
^"];
core::Set<core::int*>* set70 = block {
final core::Set<core::int*>* #t51 = col::LinkedHashSet::•<core::int*>();
- #t51.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:133:29: Error: Can't spread a value with static type 'Null'.
+ #t51.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:133:29: Error: Can't spread a value with static type 'Null'.
Set<int> set70 = <int>{...null};
^"){(core::int*) →* core::bool*};
} =>#t51;
core::Set<dynamic>* set71ambiguous = block {
final core::Set<dynamic>* #t52 = col::LinkedHashSet::•<dynamic>();
- #t52.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:137:8: Error: Can't spread a value with static type 'Null'.
+ #t52.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:137:8: Error: Can't spread a value with static type 'Null'.
...null,
^"){(dynamic) →* core::bool*};
for (final dynamic #t53 in <dynamic>[]) {
final dynamic #t54 = #t53 as{TypeError} dynamic;
- #t52.{core::Set::add}(#t54){(dynamic) →* core::bool*};
+ #t52.{core::Set::add}{Invariant}(#t54){(dynamic) →* core::bool*};
}
} =>#t52;
core::Map<core::String*, core::int*>* map70 = <core::String*, core::int*>{invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:142:45: Error: Can't spread a value with static type 'Null'.
@@ -309,13 +309,13 @@
final core::List<core::int*>* #t55 = <core::int*>[];
final core::Iterable<core::int*>* #t56 = null;
if(!(#t56 == null))
- #t55.{core::List::addAll}(#t56){(core::Iterable<core::int*>*) →* void};
+ #t55.{core::List::addAll}{Invariant}(#t56){(core::Iterable<core::int*>*) →* void};
} =>#t55;
core::Set<core::int*>* set80 = block {
final core::Set<core::int*>* #t57 = col::LinkedHashSet::•<core::int*>();
final core::Iterable<core::int*>* #t58 = null;
if(!(#t58 == null))
- #t57.{core::Set::addAll}(#t58){(core::Iterable<core::int*>*) →* void};
+ #t57.{core::Set::addAll}{Invariant}(#t58){(core::Iterable<core::int*>*) →* void};
} =>#t57;
core::Set<dynamic>* set81ambiguous = block {
final core::Set<dynamic>* #t59 = col::LinkedHashSet::•<dynamic>();
@@ -323,11 +323,11 @@
if(!(#t60 == null))
for (final dynamic #t61 in #t60) {
final dynamic #t62 = #t61 as{TypeError} dynamic;
- #t59.{core::Set::add}(#t62){(dynamic) →* core::bool*};
+ #t59.{core::Set::add}{Invariant}(#t62){(dynamic) →* core::bool*};
}
for (final dynamic #t63 in <dynamic>[]) {
final dynamic #t64 = #t63 as{TypeError} dynamic;
- #t59.{core::Set::add}(#t64){(dynamic) →* core::bool*};
+ #t59.{core::Set::add}{Invariant}(#t64){(dynamic) →* core::bool*};
}
} =>#t59;
core::Map<core::String*, core::int*>* map80 = block {
@@ -335,18 +335,18 @@
final core::Map<core::String*, core::int*>* #t66 = null;
if(!(#t66 == null))
for (final core::MapEntry<core::String*, core::int*>* #t67 in #t66.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t65.{core::Map::[]=}(#t67.{core::MapEntry::key}{core::String*}, #t67.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t65.{core::Map::[]=}{Invariant}(#t67.{core::MapEntry::key}{core::String*}, #t67.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
} =>#t65;
core::Map<core::String*, core::int*>* map90 = block {
final core::Map<core::String*, core::int*>* #t68 = <core::String*, core::int*>{};
for (final core::MapEntry<core::String*, core::int*>* #t69 in self::bar<core::String*, core::int*>().{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>})
- #t68.{core::Map::[]=}(#t69.{core::MapEntry::key}{core::String*}, #t69.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t68.{core::Map::[]=}{Invariant}(#t69.{core::MapEntry::key}{core::String*}, #t69.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
} =>#t68;
core::List<core::int*>* list100 = block {
final core::List<core::int*>* #t70 = <core::int*>[];
for (final dynamic #t71 in listNum) {
final core::int* #t72 = #t71 as{TypeError} core::int*;
- #t70.{core::List::add}(#t72){(core::int*) →* void};
+ #t70.{core::List::add}{Invariant}(#t72){(core::int*) →* void};
}
} =>#t70;
core::Map<core::num*, core::int*>* map100 = block {
@@ -354,14 +354,14 @@
for (final core::MapEntry<dynamic, dynamic>* #t74 in mapIntNum.{core::Map::entries}{core::Iterable<core::MapEntry<core::num*, core::int*>>}) {
final core::num* #t75 = #t74.{core::MapEntry::key}{dynamic} as{TypeError} core::num*;
final core::int* #t76 = #t74.{core::MapEntry::value}{dynamic} as{TypeError} core::int*;
- #t73.{core::Map::[]=}(#t75, #t76){(core::num*, core::int*) →* void};
+ #t73.{core::Map::[]=}{Invariant}(#t75, #t76){(core::num*, core::int*) →* void};
}
} =>#t73;
core::List<core::int*>* list110 = block {
final core::List<core::int*>* #t77 = <core::int*>[];
for (final dynamic #t78 in dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t79 = #t78 as{TypeError} core::int*;
- #t77.{core::List::add}(#t79){(core::int*) →* void};
+ #t77.{core::List::add}{Invariant}(#t79){(core::int*) →* void};
}
} =>#t77;
core::Map<core::num*, core::int*>* map110 = block {
@@ -369,7 +369,7 @@
for (final core::MapEntry<dynamic, dynamic>* #t81 in (dynVar as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}{core::Iterable<core::MapEntry<core::num*, core::int*>>}) {
final core::num* #t82 = #t81.{core::MapEntry::key}{dynamic} as{TypeError} core::num*;
final core::int* #t83 = #t81.{core::MapEntry::value}{dynamic} as{TypeError} core::int*;
- #t80.{core::Map::[]=}(#t82, #t83){(core::num*, core::int*) →* void};
+ #t80.{core::Map::[]=}{Invariant}(#t82, #t83){(core::num*, core::int*) →* void};
}
} =>#t80;
}
diff --git a/pkg/front_end/testcases/general/spread_collection_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general/spread_collection_inference.dart.weak.transformed.expect
index 82b8b77..05add98 100644
--- a/pkg/front_end/testcases/general/spread_collection_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/spread_collection_inference.dart.weak.transformed.expect
@@ -117,7 +117,7 @@
core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = <dynamic, dynamic>{}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic>* #t4 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t3.{core::Map::[]=}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
}
}
} =>#t3;
@@ -127,7 +127,7 @@
core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = <dynamic, dynamic>{}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic>* #t6 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t5.{core::Map::[]=}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
}
}
} =>#t5;
@@ -136,7 +136,7 @@
} =>#t7;
core::Set<core::int*>* set20 = block {
final core::Set<core::int*>* #t8 = col::LinkedHashSet::of<core::int*>(spread);
- #t8.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
} =>#t8;
core::Set<core::int*>* set20ambiguous = block {
final core::Set<core::int*>* #t9 = new col::_CompactLinkedHashSet::•<core::int*>();
@@ -146,7 +146,7 @@
final dynamic #t10 = :sync-for-iterator.{core::Iterator::current}{core::int*};
{
final core::int* #t11 = #t10 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t11){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t11){(core::int*) →* core::bool*};
}
}
}
@@ -157,10 +157,10 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t13 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t12.{core::Map::[]=}(#t13.{core::MapEntry::key}{core::String*}, #t13.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{core::String*}, #t13.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
- #t12.{core::Map::[]=}("baz", 42){(core::String*, core::int*) →* void};
+ #t12.{core::Map::[]=}{Invariant}("baz", 42){(core::String*, core::int*) →* void};
} =>#t12;
core::Map<core::String*, core::int*>* map20ambiguous = block {
final core::Map<core::String*, core::int*>* #t14 = <core::String*, core::int*>{};
@@ -168,7 +168,7 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t15 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t14.{core::Map::[]=}(#t15.{core::MapEntry::key}{core::String*}, #t15.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}{core::String*}, #t15.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
} =>#t14;
@@ -177,7 +177,7 @@
} =>#t16;
core::Set<dynamic>* set21 = block {
final core::Set<dynamic>* #t17 = col::LinkedHashSet::of<dynamic>((spread as dynamic) as{TypeError,ForDynamic} core::Iterable<dynamic>*);
- #t17.{core::Set::add}(42){(dynamic) →* core::bool*};
+ #t17.{core::Set::add}{Invariant}(42){(dynamic) →* core::bool*};
} =>#t17;
core::Map<dynamic, dynamic>* map21 = block {
final core::Map<dynamic, dynamic>* #t18 = <dynamic, dynamic>{};
@@ -185,10 +185,10 @@
core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = ((mapSpread as dynamic) as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic>* #t19 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t18.{core::Map::[]=}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
}
}
- #t18.{core::Map::[]=}("baz", 42){(dynamic, dynamic) →* void};
+ #t18.{core::Map::[]=}{Invariant}("baz", 42){(dynamic, dynamic) →* void};
} =>#t18;
dynamic map21ambiguous = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:64:28: Error: Not enough type information to disambiguate between literal set and literal map.
Try providing type arguments for the literal explicitly to disambiguate it.
@@ -199,7 +199,7 @@
} =>#t20;
core::Set<core::int*>* set22 = block {
final core::Set<core::int*>* #t21 = col::LinkedHashSet::of<core::int*>(core::_GrowableList::•<core::int*>(0));
- #t21.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t21.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
} =>#t21;
core::Set<core::int*>* set22ambiguous = block {
final core::Set<core::int*>* #t22 = new col::_CompactLinkedHashSet::•<core::int*>();
@@ -209,7 +209,7 @@
final dynamic #t23 = :sync-for-iterator.{core::Iterator::current}{core::int*};
{
final core::int* #t24 = #t23 as{TypeError} core::int*;
- #t22.{core::Set::add}(#t24){(core::int*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(#t24){(core::int*) →* core::bool*};
}
}
}
@@ -220,7 +220,7 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = <core::String*, core::int*>{}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t26 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t25.{core::Map::[]=}(#t26.{core::MapEntry::key}{core::String*}, #t26.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t25.{core::Map::[]=}{Invariant}(#t26.{core::MapEntry::key}{core::String*}, #t26.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
} =>#t25;
@@ -229,7 +229,7 @@
} =>#t27;
core::Set<core::List<core::int*>*>* set23 = block {
final core::Set<core::List<core::int*>*>* #t28 = col::LinkedHashSet::of<core::List<core::int*>*>(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
- #t28.{core::Set::add}(core::_GrowableList::_literal1<core::int*>(42)){(core::List<core::int*>*) →* core::bool*};
+ #t28.{core::Set::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42)){(core::List<core::int*>*) →* core::bool*};
} =>#t28;
core::Set<core::List<core::int*>*>* set23ambiguous = block {
final core::Set<core::List<core::int*>*>* #t29 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
@@ -239,7 +239,7 @@
final dynamic #t30 = :sync-for-iterator.{core::Iterator::current}{core::List<core::int*>*};
{
final core::List<core::int*>* #t31 = #t30 as{TypeError} core::List<core::int*>*;
- #t29.{core::Set::add}(#t31){(core::List<core::int*>*) →* core::bool*};
+ #t29.{core::Set::add}{Invariant}(#t31){(core::List<core::int*>*) →* core::bool*};
}
}
}
@@ -250,7 +250,7 @@
core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"baz": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::List<core::int*>*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::List<core::int*>*>};
- #t32.{core::Map::[]=}(#t33.{core::MapEntry::key}{core::String*}, #t33.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
+ #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}{core::String*}, #t33.{core::MapEntry::value}{core::List<core::int*>*}){(core::String*, core::List<core::int*>*) →* void};
}
}
} =>#t32;
@@ -268,7 +268,7 @@
int set30 = /*@ typeArgs=int* */ {...spread, 42};
^" in ( block {
final core::Set<core::int*>* #t37 = col::LinkedHashSet::of<core::int*>(spread);
- #t37.{core::Set::add}(42){(core::int*) →* core::bool*};
+ #t37.{core::Set::add}{Invariant}(42){(core::int*) →* core::bool*};
} =>#t37) as{TypeError} core::int*;
core::int* set30ambiguous = let final Never* #t38 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:103:7: Error: A value of type 'Set<int>' can't be assigned to a variable of type 'int'.
- 'Set' is from 'dart:core'.
@@ -281,7 +281,7 @@
final dynamic #t40 = :sync-for-iterator.{core::Iterator::current}{core::int*};
{
final core::int* #t41 = #t40 as{TypeError} core::int*;
- #t39.{core::Set::add}(#t41){(core::int*) →* core::bool*};
+ #t39.{core::Set::add}{Invariant}(#t41){(core::int*) →* core::bool*};
}
}
}
@@ -295,10 +295,10 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t44 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t43.{core::Map::[]=}(#t44.{core::MapEntry::key}{core::String*}, #t44.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t43.{core::Map::[]=}{Invariant}(#t44.{core::MapEntry::key}{core::String*}, #t44.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
- #t43.{core::Map::[]=}("baz", 42){(core::String*, core::int*) →* void};
+ #t43.{core::Map::[]=}{Invariant}("baz", 42){(core::String*, core::int*) →* void};
} =>#t43) as{TypeError} core::int*;
core::int* map30ambiguous = let final Never* #t45 = invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:109:7: Error: A value of type 'Map<String, int>' can't be assigned to a variable of type 'int'.
- 'Map' is from 'dart:core'.
@@ -309,7 +309,7 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = mapSpread.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t47 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t46.{core::Map::[]=}(#t47.{core::MapEntry::key}{core::String*}, #t47.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t46.{core::Map::[]=}{Invariant}(#t47.{core::MapEntry::key}{core::String*}, #t47.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
} =>#t46) as{TypeError} core::int*;
@@ -318,7 +318,7 @@
^");
core::Set<dynamic>* set40 = block {
final core::Set<dynamic>* #t48 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t48.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:113:37: Error: Unexpected type 'int' of a spread. Expected 'dynamic' or an Iterable.
+ #t48.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:113:37: Error: Unexpected type 'int' of a spread. Expected 'dynamic' or an Iterable.
Set<dynamic> set40 = <dynamic>{...notSpreadInt};
^"){(dynamic) →* core::bool*};
} =>#t48;
@@ -330,7 +330,7 @@
^");
core::Set<dynamic>* set50 = block {
final core::Set<dynamic>* #t49 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t49.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:119:37: Error: Unexpected type 'int Function()' of a spread. Expected 'dynamic' or an Iterable.
+ #t49.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:119:37: Error: Unexpected type 'int Function()' of a spread. Expected 'dynamic' or an Iterable.
Set<dynamic> set50 = <dynamic>{...notSpreadFunction};
^"){(dynamic) →* core::bool*};
} =>#t49;
@@ -342,7 +342,7 @@
^");
core::Set<core::String*>* set60 = block {
final core::Set<core::String*>* #t50 = new col::_CompactLinkedHashSet::•<core::String*>();
- #t50.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:125:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
+ #t50.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:125:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
Set<String> set60 = <String>{...spread};
^"){(core::String*) →* core::bool*};
} =>#t50;
@@ -357,13 +357,13 @@
^");
core::Set<core::int*>* set70 = block {
final core::Set<core::int*>* #t51 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t51.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:133:29: Error: Can't spread a value with static type 'Null'.
+ #t51.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:133:29: Error: Can't spread a value with static type 'Null'.
Set<int> set70 = <int>{...null};
^"){(core::int*) →* core::bool*};
} =>#t51;
core::Set<dynamic>* set71ambiguous = block {
final core::Set<dynamic>* #t52 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t52.{core::Set::add}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:137:8: Error: Can't spread a value with static type 'Null'.
+ #t52.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:137:8: Error: Can't spread a value with static type 'Null'.
...null,
^"){(dynamic) →* core::bool*};
{
@@ -372,7 +372,7 @@
final dynamic #t53 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final dynamic #t54 = #t53 as{TypeError} dynamic;
- #t52.{core::Set::add}(#t54){(dynamic) →* core::bool*};
+ #t52.{core::Set::add}{Invariant}(#t54){(dynamic) →* core::bool*};
}
}
}
@@ -384,13 +384,13 @@
final core::List<core::int*>* #t55 = core::_GrowableList::•<core::int*>(0);
final core::Iterable<core::int*>* #t56 = null;
if(!(#t56 == null))
- #t55.{core::List::addAll}(#t56){(core::Iterable<core::int*>*) →* void};
+ #t55.{core::List::addAll}{Invariant}(#t56){(core::Iterable<core::int*>*) →* void};
} =>#t55;
core::Set<core::int*>* set80 = block {
final core::Set<core::int*>* #t57 = new col::_CompactLinkedHashSet::•<core::int*>();
final core::Iterable<core::int*>* #t58 = null;
if(!(#t58 == null))
- #t57.{core::Set::addAll}(#t58){(core::Iterable<core::int*>*) →* void};
+ #t57.{core::Set::addAll}{Invariant}(#t58){(core::Iterable<core::int*>*) →* void};
} =>#t57;
core::Set<dynamic>* set81ambiguous = block {
final core::Set<dynamic>* #t59 = new col::_CompactLinkedHashSet::•<dynamic>();
@@ -401,7 +401,7 @@
final dynamic #t61 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final dynamic #t62 = #t61 as{TypeError} dynamic;
- #t59.{core::Set::add}(#t62){(dynamic) →* core::bool*};
+ #t59.{core::Set::add}{Invariant}(#t62){(dynamic) →* core::bool*};
}
}
}
@@ -411,7 +411,7 @@
final dynamic #t63 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final dynamic #t64 = #t63 as{TypeError} dynamic;
- #t59.{core::Set::add}(#t64){(dynamic) →* core::bool*};
+ #t59.{core::Set::add}{Invariant}(#t64){(dynamic) →* core::bool*};
}
}
}
@@ -423,7 +423,7 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = #t66.{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t67 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t65.{core::Map::[]=}(#t67.{core::MapEntry::key}{core::String*}, #t67.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t65.{core::Map::[]=}{Invariant}(#t67.{core::MapEntry::key}{core::String*}, #t67.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
} =>#t65;
@@ -433,7 +433,7 @@
core::Iterator<core::MapEntry<core::String*, core::int*>>* :sync-for-iterator = self::bar<core::String*, core::int*>().{core::Map::entries}{core::Iterable<core::MapEntry<core::String*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String*, core::int*>* #t69 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String*, core::int*>};
- #t68.{core::Map::[]=}(#t69.{core::MapEntry::key}{core::String*}, #t69.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
+ #t68.{core::Map::[]=}{Invariant}(#t69.{core::MapEntry::key}{core::String*}, #t69.{core::MapEntry::value}{core::int*}){(core::String*, core::int*) →* void};
}
}
} =>#t68;
@@ -445,7 +445,7 @@
final dynamic #t71 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t72 = #t71 as{TypeError} core::int*;
- #t70.{core::List::add}(#t72){(core::int*) →* void};
+ #t70.{core::List::add}{Invariant}(#t72){(core::int*) →* void};
}
}
}
@@ -459,7 +459,7 @@
{
final core::num* #t75 = #t74.{core::MapEntry::key}{dynamic} as{TypeError} core::num*;
final core::int* #t76 = #t74.{core::MapEntry::value}{dynamic} as{TypeError} core::int*;
- #t73.{core::Map::[]=}(#t75, #t76){(core::num*, core::int*) →* void};
+ #t73.{core::Map::[]=}{Invariant}(#t75, #t76){(core::num*, core::int*) →* void};
}
}
}
@@ -472,7 +472,7 @@
final dynamic #t78 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t79 = #t78 as{TypeError} core::int*;
- #t77.{core::List::add}(#t79){(core::int*) →* void};
+ #t77.{core::List::add}{Invariant}(#t79){(core::int*) →* void};
}
}
}
@@ -486,7 +486,7 @@
{
final core::num* #t82 = #t81.{core::MapEntry::key}{dynamic} as{TypeError} core::num*;
final core::int* #t83 = #t81.{core::MapEntry::value}{dynamic} as{TypeError} core::int*;
- #t80.{core::Map::[]=}(#t82, #t83){(core::num*, core::int*) →* void};
+ #t80.{core::Map::[]=}{Invariant}(#t82, #t83){(core::num*, core::int*) →* void};
}
}
}
diff --git a/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.strong.expect b/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.strong.expect
index 7906e15..1b6e2a9 100644
--- a/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.strong.expect
+++ b/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.strong.expect
@@ -15,7 +15,7 @@
core::List<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>> y = <<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>>[#C1];
core::Set<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>> z = block {
final core::Set<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>> #t1 = col::LinkedHashSet::•<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>>();
- #t1.{core::Set::add}(y.{core::Iterable::first}{<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>}){(<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>) → core::bool};
+ #t1.{core::Set::add}{Invariant}(y.{core::Iterable::first}{<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>}){(<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>) → core::bool};
} =>#t1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.strong.transformed.expect b/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.strong.transformed.expect
index 45504ea..56b3959 100644
--- a/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.strong.transformed.expect
@@ -15,7 +15,7 @@
core::List<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>> y = core::_GrowableList::_literal1<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>>(#C1);
core::Set<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>> z = block {
final core::Set<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>> #t1 = new col::_CompactLinkedHashSet::•<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>>();
- #t1.{core::Set::add}(y.{core::Iterable::first}{<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>}){(<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>) → core::bool};
+ #t1.{core::Set::add}{Invariant}(y.{core::Iterable::first}{<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>}){(<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>) → core::bool};
} =>#t1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.weak.expect b/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.weak.expect
index 7906e15..1b6e2a9 100644
--- a/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.weak.expect
+++ b/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.weak.expect
@@ -15,7 +15,7 @@
core::List<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>> y = <<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>>[#C1];
core::Set<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>> z = block {
final core::Set<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>> #t1 = col::LinkedHashSet::•<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>>();
- #t1.{core::Set::add}(y.{core::Iterable::first}{<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>}){(<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>) → core::bool};
+ #t1.{core::Set::add}{Invariant}(y.{core::Iterable::first}{<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>}){(<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>) → core::bool};
} =>#t1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.weak.transformed.expect b/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.weak.transformed.expect
index 45504ea..56b3959 100644
--- a/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/inferred_generic_types_in_arguments_and_bounds.dart.weak.transformed.expect
@@ -15,7 +15,7 @@
core::List<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>> y = core::_GrowableList::_literal1<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>>(#C1);
core::Set<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>> z = block {
final core::Set<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>> #t1 = new col::_CompactLinkedHashSet::•<<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>>();
- #t1.{core::Set::add}(y.{core::Iterable::first}{<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>}){(<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>) → core::bool};
+ #t1.{core::Set::add}{Invariant}(y.{core::Iterable::first}{<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>}){(<Y extends core::Object? = dynamic>(Y%) → self::A<Y%>) → core::bool};
} =>#t1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.expect b/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.expect
index 2b4c9cc..b258f3f 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.expect
@@ -135,21 +135,21 @@
}
static method callField(self::Class* c) → dynamic {
self::expect(0, c.{self::Class::field1a}());
- self::expect(0, c.{self::Class::field1b}());
- self::expect(42.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t1 = c in let final core::int* #t2 = self::read(42) in #t1.{self::Class::field2}(#t2));
- self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t3 = c in let final core::int* #t4 = self::read(12) in let final core::int* #t5 = self::read(23) in #t3.{self::Class::field3}(#t4, #t5));
- self::expect(12, let final self::Class* #t6 = c in let final core::int* #t7 = self::read(12) in #t6.{self::Class::field4}(#t7));
- self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t8 = c in let final core::int* #t9 = self::read(12) in let final core::int* #t10 = self::read(23) in #t8.{self::Class::field4}(#t9, #t10));
- self::expect(0, c.{self::Class::field5}());
- self::expect(12, let final self::Class* #t11 = c in let final core::int* #t12 = self::read(12) in #t11.{self::Class::field5}(#t12));
- self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t13 = c in let final core::int* #t14 = self::read(12) in let final core::int* #t15 = self::read(23) in #t13.{self::Class::field5}(#t14, #t15));
- self::expect(12, let final self::Class* #t16 = c in let final core::int* #t17 = self::read(12) in #t16.{self::Class::field6}(#t17));
- self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t18 = c in let final core::int* #t19 = self::read(12) in let final core::int* #t20 = self::read(23) in #t18.{self::Class::field6}(#t19, b: #t20));
- self::expect(0, c.{self::Class::field7}());
- self::expect(12, let final self::Class* #t21 = c in let final core::int* #t22 = self::read(12) in #t21.{self::Class::field7}(a: #t22));
- self::expect(23.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t23 = c in let final core::int* #t24 = self::read(23) in #t23.{self::Class::field7}(b: #t24));
- self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t25 = c in let final core::int* #t26 = self::read(12) in let final core::int* #t27 = self::read(23) in #t25.{self::Class::field7}(a: #t26, b: #t27));
- self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t28 = c in let final core::int* #t29 = self::read(23) in let final core::int* #t30 = self::read(12) in #t28.{self::Class::field7}(b: #t29, a: #t30));
+ self::expect(0, c.{self::Class::field1b}(){() →* core::int*});
+ self::expect(42.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t1 = c in let final core::int* #t2 = self::read(42) in #t1.{self::Class::field2}(#t2){(core::int*) →* core::int*});
+ self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t3 = c in let final core::int* #t4 = self::read(12) in let final core::int* #t5 = self::read(23) in #t3.{self::Class::field3}(#t4, #t5){(core::int*, core::int*) →* core::int*});
+ self::expect(12, let final self::Class* #t6 = c in let final core::int* #t7 = self::read(12) in #t6.{self::Class::field4}(#t7){(core::int*, [core::int*]) →* core::int*});
+ self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t8 = c in let final core::int* #t9 = self::read(12) in let final core::int* #t10 = self::read(23) in #t8.{self::Class::field4}(#t9, #t10){(core::int*, [core::int*]) →* core::int*});
+ self::expect(0, c.{self::Class::field5}(){([core::int*, core::int*]) →* core::int*});
+ self::expect(12, let final self::Class* #t11 = c in let final core::int* #t12 = self::read(12) in #t11.{self::Class::field5}(#t12){([core::int*, core::int*]) →* core::int*});
+ self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t13 = c in let final core::int* #t14 = self::read(12) in let final core::int* #t15 = self::read(23) in #t13.{self::Class::field5}(#t14, #t15){([core::int*, core::int*]) →* core::int*});
+ self::expect(12, let final self::Class* #t16 = c in let final core::int* #t17 = self::read(12) in #t16.{self::Class::field6}(#t17){(core::int*, {b: core::int*}) →* core::int*});
+ self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t18 = c in let final core::int* #t19 = self::read(12) in let final core::int* #t20 = self::read(23) in #t18.{self::Class::field6}(#t19, b: #t20){(core::int*, {b: core::int*}) →* core::int*});
+ self::expect(0, c.{self::Class::field7}(){({a: core::int*, b: core::int*}) →* core::int*});
+ self::expect(12, let final self::Class* #t21 = c in let final core::int* #t22 = self::read(12) in #t21.{self::Class::field7}(a: #t22){({a: core::int*, b: core::int*}) →* core::int*});
+ self::expect(23.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t23 = c in let final core::int* #t24 = self::read(23) in #t23.{self::Class::field7}(b: #t24){({a: core::int*, b: core::int*}) →* core::int*});
+ self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t25 = c in let final core::int* #t26 = self::read(12) in let final core::int* #t27 = self::read(23) in #t25.{self::Class::field7}(a: #t26, b: #t27){({a: core::int*, b: core::int*}) →* core::int*});
+ self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t28 = c in let final core::int* #t29 = self::read(23) in let final core::int* #t30 = self::read(12) in #t28.{self::Class::field7}(b: #t29, a: #t30){({a: core::int*, b: core::int*}) →* core::int*});
}
static method callGetter(self::Class* c) → dynamic {
self::expect(0, c.{self::Class::getter1a}());
diff --git a/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.transformed.expect b/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.transformed.expect
index 3c6b74a..384940b 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/getter_call.dart.weak.transformed.expect
@@ -135,21 +135,21 @@
}
static method callField(self::Class* c) → dynamic {
self::expect(0, c.{self::Class::field1a}());
- self::expect(0, c.{self::Class::field1b}());
- self::expect(42.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t1 = c in let final core::int* #t2 = self::read(42) in #t1.{self::Class::field2}(#t2));
- self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t3 = c in let final core::int* #t4 = self::read(12) in let final core::int* #t5 = self::read(23) in #t3.{self::Class::field3}(#t4, #t5));
- self::expect(12, let final self::Class* #t6 = c in let final core::int* #t7 = self::read(12) in #t6.{self::Class::field4}(#t7));
- self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t8 = c in let final core::int* #t9 = self::read(12) in let final core::int* #t10 = self::read(23) in #t8.{self::Class::field4}(#t9, #t10));
- self::expect(0, c.{self::Class::field5}());
- self::expect(12, let final self::Class* #t11 = c in let final core::int* #t12 = self::read(12) in #t11.{self::Class::field5}(#t12));
- self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t13 = c in let final core::int* #t14 = self::read(12) in let final core::int* #t15 = self::read(23) in #t13.{self::Class::field5}(#t14, #t15));
- self::expect(12, let final self::Class* #t16 = c in let final core::int* #t17 = self::read(12) in #t16.{self::Class::field6}(#t17));
- self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t18 = c in let final core::int* #t19 = self::read(12) in let final core::int* #t20 = self::read(23) in #t18.{self::Class::field6}(#t19, b: #t20));
- self::expect(0, c.{self::Class::field7}());
- self::expect(12, let final self::Class* #t21 = c in let final core::int* #t22 = self::read(12) in #t21.{self::Class::field7}(a: #t22));
- self::expect(23.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t23 = c in let final core::int* #t24 = self::read(23) in #t23.{self::Class::field7}(b: #t24));
- self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t25 = c in let final core::int* #t26 = self::read(12) in let final core::int* #t27 = self::read(23) in #t25.{self::Class::field7}(a: #t26, b: #t27));
- self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t28 = c in let final core::int* #t29 = self::read(23) in let final core::int* #t30 = self::read(12) in #t28.{self::Class::field7}(b: #t29, a: #t30));
+ self::expect(0, c.{self::Class::field1b}(){() →* core::int*});
+ self::expect(42.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t1 = c in let final core::int* #t2 = self::read(42) in #t1.{self::Class::field2}(#t2){(core::int*) →* core::int*});
+ self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t3 = c in let final core::int* #t4 = self::read(12) in let final core::int* #t5 = self::read(23) in #t3.{self::Class::field3}(#t4, #t5){(core::int*, core::int*) →* core::int*});
+ self::expect(12, let final self::Class* #t6 = c in let final core::int* #t7 = self::read(12) in #t6.{self::Class::field4}(#t7){(core::int*, [core::int*]) →* core::int*});
+ self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t8 = c in let final core::int* #t9 = self::read(12) in let final core::int* #t10 = self::read(23) in #t8.{self::Class::field4}(#t9, #t10){(core::int*, [core::int*]) →* core::int*});
+ self::expect(0, c.{self::Class::field5}(){([core::int*, core::int*]) →* core::int*});
+ self::expect(12, let final self::Class* #t11 = c in let final core::int* #t12 = self::read(12) in #t11.{self::Class::field5}(#t12){([core::int*, core::int*]) →* core::int*});
+ self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t13 = c in let final core::int* #t14 = self::read(12) in let final core::int* #t15 = self::read(23) in #t13.{self::Class::field5}(#t14, #t15){([core::int*, core::int*]) →* core::int*});
+ self::expect(12, let final self::Class* #t16 = c in let final core::int* #t17 = self::read(12) in #t16.{self::Class::field6}(#t17){(core::int*, {b: core::int*}) →* core::int*});
+ self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t18 = c in let final core::int* #t19 = self::read(12) in let final core::int* #t20 = self::read(23) in #t18.{self::Class::field6}(#t19, b: #t20){(core::int*, {b: core::int*}) →* core::int*});
+ self::expect(0, c.{self::Class::field7}(){({a: core::int*, b: core::int*}) →* core::int*});
+ self::expect(12, let final self::Class* #t21 = c in let final core::int* #t22 = self::read(12) in #t21.{self::Class::field7}(a: #t22){({a: core::int*, b: core::int*}) →* core::int*});
+ self::expect(23.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t23 = c in let final core::int* #t24 = self::read(23) in #t23.{self::Class::field7}(b: #t24){({a: core::int*, b: core::int*}) →* core::int*});
+ self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t25 = c in let final core::int* #t26 = self::read(12) in let final core::int* #t27 = self::read(23) in #t25.{self::Class::field7}(a: #t26, b: #t27){({a: core::int*, b: core::int*}) →* core::int*});
+ self::expect(11.{core::int::unary-}(){() →* core::int*}, let final self::Class* #t28 = c in let final core::int* #t29 = self::read(23) in let final core::int* #t30 = self::read(12) in #t28.{self::Class::field7}(b: #t29, a: #t30){({a: core::int*, b: core::int*}) →* core::int*});
}
static method callGetter(self::Class* c) → dynamic {
self::expect(0, c.{self::Class::getter1a}());
diff --git a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.expect b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.expect
index 21856f2..5469618 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.expect
@@ -8,7 +8,7 @@
: self::A::f = f, super core::Object::•()
;
method foo(generic-covariant-impl self::A::T* x) → dynamic
- return let final self::A::T* #t1 = x in this.{self::A::f}(#t1);
+ return let final self::A::T* #t1 = x in this.{self::A::f}(#t1){(self::A::T*) →* void};
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
diff --git a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.transformed.expect b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.transformed.expect
index 21856f2..5469618 100644
--- a/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/implicit_getter_calls/this_field_call.dart.weak.transformed.expect
@@ -8,7 +8,7 @@
: self::A::f = f, super core::Object::•()
;
method foo(generic-covariant-impl self::A::T* x) → dynamic
- return let final self::A::T* #t1 = x in this.{self::A::f}(#t1);
+ return let final self::A::T* #t1 = x in this.{self::A::f}(#t1){(self::A::T*) →* void};
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
diff --git a/pkg/front_end/testcases/late_lowering/later.dart.strong.expect b/pkg/front_end/testcases/late_lowering/later.dart.strong.expect
index 956e810..d5af00b 100644
--- a/pkg/front_end/testcases/late_lowering/later.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/later.dart.strong.expect
@@ -127,7 +127,7 @@
block {
final core::List<core::int> #t7 = <core::int>[];
for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t7.{core::List::add}(i){(core::int) → void};
+ #t7.{core::List::add}{Invariant}(i){(core::int) → void};
} =>#t7;
}
static method hest() → dynamic async {
diff --git a/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect
index 3e60aa9..95d50a9 100644
--- a/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect
@@ -133,7 +133,7 @@
block {
final core::List<core::int> #t7 = core::_GrowableList::•<core::int>(0);
for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t7.{core::List::add}(i){(core::int) → void};
+ #t7.{core::List::add}{Invariant}(i){(core::int) → void};
} =>#t7;
}
static method hest() → dynamic /* originally async */ {
diff --git a/pkg/front_end/testcases/late_lowering/later.dart.weak.expect b/pkg/front_end/testcases/late_lowering/later.dart.weak.expect
index 4ce79cc..00a9a68 100644
--- a/pkg/front_end/testcases/late_lowering/later.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/later.dart.weak.expect
@@ -147,7 +147,7 @@
block {
final core::List<core::int> #t7 = <core::int>[];
for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t7.{core::List::add}(i){(core::int) → void};
+ #t7.{core::List::add}{Invariant}(i){(core::int) → void};
} =>#t7;
}
static method hest() → dynamic async {
diff --git a/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect
index 53b5f1b..7c57520 100644
--- a/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect
@@ -153,7 +153,7 @@
block {
final core::List<core::int> #t7 = core::_GrowableList::•<core::int>(0);
for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t7.{core::List::add}(i){(core::int) → void};
+ #t7.{core::List::add}{Invariant}(i){(core::int) → void};
} =>#t7;
}
static method hest() → dynamic /* originally async */ {
diff --git a/pkg/front_end/testcases/nnbd/assignability.dart.strong.expect b/pkg/front_end/testcases/nnbd/assignability.dart.strong.expect
index 6318674..6dec7c2 100644
--- a/pkg/front_end/testcases/nnbd/assignability.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/assignability.dart.strong.expect
@@ -1014,10 +1014,10 @@
core::Function functionVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} core::Function;
functionVar = functionArg;
functionVar = toVoidArg;
- functionVar = let final self::Tearoffable #t1 = tearoffableArg in #t1 == null ?{() → void} null : #t1.{self::Tearoffable::call};
+ functionVar = let final self::Tearoffable #t1 = tearoffableArg in #t1 == null ?{() → void} null : #t1.{self::Tearoffable::call}{() → void};
() → void toVoidVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} () → void;
toVoidVar = toVoidArg;
- toVoidVar = let final self::Tearoffable #t2 = tearoffableArg in #t2 == null ?{() → void} null : #t2.{self::Tearoffable::call};
+ toVoidVar = let final self::Tearoffable #t2 = tearoffableArg in #t2 == null ?{() → void} null : #t2.{self::Tearoffable::call}{() → void};
self::Tearoffable tearoffableVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} self::Tearoffable;
tearoffableVar = tearoffableArg;
self::ok::XnonNull xNonNullVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} self::ok::XnonNull;
diff --git a/pkg/front_end/testcases/nnbd/assignability.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/assignability.dart.strong.transformed.expect
index 0bef535..8a79a2f 100644
--- a/pkg/front_end/testcases/nnbd/assignability.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/assignability.dart.strong.transformed.expect
@@ -1014,10 +1014,10 @@
core::Function functionVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} core::Function;
functionVar = functionArg;
functionVar = toVoidArg;
- functionVar = let final self::Tearoffable #t2 = tearoffableArg in #t2 == null ?{() → void} null : #t2.{self::Tearoffable::call};
+ functionVar = let final self::Tearoffable #t2 = tearoffableArg in #t2 == null ?{() → void} null : #t2.{self::Tearoffable::call}{() → void};
() → void toVoidVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} () → void;
toVoidVar = toVoidArg;
- toVoidVar = let final self::Tearoffable #t3 = tearoffableArg in #t3 == null ?{() → void} null : #t3.{self::Tearoffable::call};
+ toVoidVar = let final self::Tearoffable #t3 = tearoffableArg in #t3 == null ?{() → void} null : #t3.{self::Tearoffable::call}{() → void};
self::Tearoffable tearoffableVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} self::Tearoffable;
tearoffableVar = tearoffableArg;
self::ok::XnonNull xNonNullVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} self::ok::XnonNull;
diff --git a/pkg/front_end/testcases/nnbd/assignability.dart.weak.expect b/pkg/front_end/testcases/nnbd/assignability.dart.weak.expect
index 6318674..6dec7c2 100644
--- a/pkg/front_end/testcases/nnbd/assignability.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/assignability.dart.weak.expect
@@ -1014,10 +1014,10 @@
core::Function functionVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} core::Function;
functionVar = functionArg;
functionVar = toVoidArg;
- functionVar = let final self::Tearoffable #t1 = tearoffableArg in #t1 == null ?{() → void} null : #t1.{self::Tearoffable::call};
+ functionVar = let final self::Tearoffable #t1 = tearoffableArg in #t1 == null ?{() → void} null : #t1.{self::Tearoffable::call}{() → void};
() → void toVoidVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} () → void;
toVoidVar = toVoidArg;
- toVoidVar = let final self::Tearoffable #t2 = tearoffableArg in #t2 == null ?{() → void} null : #t2.{self::Tearoffable::call};
+ toVoidVar = let final self::Tearoffable #t2 = tearoffableArg in #t2 == null ?{() → void} null : #t2.{self::Tearoffable::call}{() → void};
self::Tearoffable tearoffableVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} self::Tearoffable;
tearoffableVar = tearoffableArg;
self::ok::XnonNull xNonNullVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} self::ok::XnonNull;
diff --git a/pkg/front_end/testcases/nnbd/assignability.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/assignability.dart.weak.transformed.expect
index e558c54..906e01c 100644
--- a/pkg/front_end/testcases/nnbd/assignability.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/assignability.dart.weak.transformed.expect
@@ -1014,10 +1014,10 @@
core::Function functionVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} core::Function;
functionVar = functionArg;
functionVar = toVoidArg;
- functionVar = let final self::Tearoffable #t1 = tearoffableArg in #t1 == null ?{() → void} null : #t1.{self::Tearoffable::call};
+ functionVar = let final self::Tearoffable #t1 = tearoffableArg in #t1 == null ?{() → void} null : #t1.{self::Tearoffable::call}{() → void};
() → void toVoidVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} () → void;
toVoidVar = toVoidArg;
- toVoidVar = let final self::Tearoffable #t2 = tearoffableArg in #t2 == null ?{() → void} null : #t2.{self::Tearoffable::call};
+ toVoidVar = let final self::Tearoffable #t2 = tearoffableArg in #t2 == null ?{() → void} null : #t2.{self::Tearoffable::call}{() → void};
self::Tearoffable tearoffableVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} self::Tearoffable;
tearoffableVar = tearoffableArg;
self::ok::XnonNull xNonNullVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} self::ok::XnonNull;
diff --git a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.expect b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.expect
index 4b9bd7e..b5c4d02 100644
--- a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.expect
@@ -333,7 +333,7 @@
static method baz(self::C c) → void {
self::bazContext(let final Never #t14 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:62:14: Error: The argument type 'num? Function()' can't be assigned to the parameter type 'num Function()' because 'num?' is nullable and 'num' isn't.
bazContext(c);
- ^" in (let final self::C #t15 = c in #t15 == null ?{() → core::num?} null : #t15.{self::C::call}) as{TypeError,ForNonNullableByDefault} () → core::num);
+ ^" in (let final self::C #t15 = c in #t15 == null ?{() → core::num?} null : #t15.{self::C::call}{() → core::num?}) as{TypeError,ForNonNullableByDefault} () → core::num);
}
static method boz(Null x) → self::A {
self::fooContext(let final Never #t16 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:66:14: Error: The argument type 'Null' can't be assigned to the parameter type 'A' because 'A' is not nullable.
diff --git a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect
index ca909b2..74f4fa8 100644
--- a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect
@@ -375,7 +375,7 @@
static method baz(self::C c) → void {
self::bazContext(let final Never #t20 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:62:14: Error: The argument type 'num? Function()' can't be assigned to the parameter type 'num Function()' because 'num?' is nullable and 'num' isn't.
bazContext(c);
- ^" in (let final self::C #t21 = c in #t21 == null ?{() → core::num?} null : #t21.{self::C::call}) as{TypeError,ForNonNullableByDefault} () → core::num);
+ ^" in (let final self::C #t21 = c in #t21 == null ?{() → core::num?} null : #t21.{self::C::call}{() → core::num?}) as{TypeError,ForNonNullableByDefault} () → core::num);
}
static method boz(Null x) → self::A {
self::fooContext(let final Never #t22 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:66:14: Error: The argument type 'Null' can't be assigned to the parameter type 'A' because 'A' is not nullable.
diff --git a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.expect b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.expect
index 4b9bd7e..b5c4d02 100644
--- a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.expect
@@ -333,7 +333,7 @@
static method baz(self::C c) → void {
self::bazContext(let final Never #t14 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:62:14: Error: The argument type 'num? Function()' can't be assigned to the parameter type 'num Function()' because 'num?' is nullable and 'num' isn't.
bazContext(c);
- ^" in (let final self::C #t15 = c in #t15 == null ?{() → core::num?} null : #t15.{self::C::call}) as{TypeError,ForNonNullableByDefault} () → core::num);
+ ^" in (let final self::C #t15 = c in #t15 == null ?{() → core::num?} null : #t15.{self::C::call}{() → core::num?}) as{TypeError,ForNonNullableByDefault} () → core::num);
}
static method boz(Null x) → self::A {
self::fooContext(let final Never #t16 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:66:14: Error: The argument type 'Null' can't be assigned to the parameter type 'A' because 'A' is not nullable.
diff --git a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect
index b693442..454dea3 100644
--- a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect
@@ -375,7 +375,7 @@
static method baz(self::C c) → void {
self::bazContext(let final Never #t14 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:62:14: Error: The argument type 'num? Function()' can't be assigned to the parameter type 'num Function()' because 'num?' is nullable and 'num' isn't.
bazContext(c);
- ^" in let final self::C #t15 = c in #t15 == null ?{() → core::num?} null : #t15.{self::C::call});
+ ^" in let final self::C #t15 = c in #t15 == null ?{() → core::num?} null : #t15.{self::C::call}{() → core::num?});
}
static method boz(Null x) → self::A {
self::fooContext(let final Never #t16 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:66:14: Error: The argument type 'Null' can't be assigned to the parameter type 'A' because 'A' is not nullable.
diff --git a/pkg/front_end/testcases/nnbd/forin.dart.strong.expect b/pkg/front_end/testcases/nnbd/forin.dart.strong.expect
index a1bd97a..8b35773 100644
--- a/pkg/front_end/testcases/nnbd/forin.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/forin.dart.strong.expect
@@ -63,7 +63,7 @@
- 'Iterable' is from 'dart:core'.
[for (int x in i2) x];
^" in i2 as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>)
- #t2.{core::List::add}(x){(core::int) → void};
+ #t2.{core::List::add}{Invariant}(x){(core::int) → void};
} =>#t2;
for (core::int x in let final Never #t4 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:12:17: Error: The type 'List<int>?' used in the 'for' loop must implement 'Iterable<dynamic>' because 'List<int>?' is nullable and 'Iterable<dynamic>' isn't.
- 'List' is from 'dart:core'.
@@ -78,7 +78,7 @@
- 'Iterable' is from 'dart:core'.
[for (int x in l2) x];
^" in l2 as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>)
- #t5.{core::List::add}(x){(core::int) → void};
+ #t5.{core::List::add}{Invariant}(x){(core::int) → void};
} =>#t5;
for (final dynamic #t7 in let final Never #t8 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:15:17: Error: The type 'Object' used in the 'for' loop must implement 'Iterable<dynamic>'.
- 'Object' is from 'dart:core'.
@@ -96,7 +96,7 @@
[for (int x in o1) x];
^" in o1 as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
core::int x = #t10 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
- #t9.{core::List::add}(x){(core::int) → void};
+ #t9.{core::List::add}{Invariant}(x){(core::int) → void};
}
} =>#t9;
for (final dynamic #t12 in let final Never #t13 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:18:17: Error: The type 'Object?' used in the 'for' loop must implement 'Iterable<dynamic>'.
@@ -115,7 +115,7 @@
[for (int x in o2) x];
^" in o2 as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
core::int x = #t15 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
- #t14.{core::List::add}(x){(core::int) → void};
+ #t14.{core::List::add}{Invariant}(x){(core::int) → void};
}
} =>#t14;
}
@@ -125,14 +125,14 @@
block {
final core::List<core::int> #t17 = <core::int>[];
for (core::int x in i1)
- #t17.{core::List::add}(x){(core::int) → void};
+ #t17.{core::List::add}{Invariant}(x){(core::int) → void};
} =>#t17;
for (core::int x in l1)
x;
block {
final core::List<core::int> #t18 = <core::int>[];
for (core::int x in l1)
- #t18.{core::List::add}(x){(core::int) → void};
+ #t18.{core::List::add}{Invariant}(x){(core::int) → void};
} =>#t18;
for (final dynamic #t19 in d as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
core::int x = #t19 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
@@ -142,7 +142,7 @@
final core::List<core::int> #t20 = <core::int>[];
for (final dynamic #t21 in d as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
core::int x = #t21 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
- #t20.{core::List::add}(x){(core::int) → void};
+ #t20.{core::List::add}{Invariant}(x){(core::int) → void};
}
} =>#t20;
}
diff --git a/pkg/front_end/testcases/nnbd/forin.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/forin.dart.strong.transformed.expect
index 4eda5c5..89a6493 100644
--- a/pkg/front_end/testcases/nnbd/forin.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/forin.dart.strong.transformed.expect
@@ -71,7 +71,7 @@
^" in let core::Iterable<core::int>? #t5 = i2 in #t5 == null ?{core::Iterable<dynamic>} #t5 as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic> : #t5{core::Iterable<dynamic>}).{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t3.{core::List::add}(x){(core::int) → void};
+ #t3.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
} =>#t3;
@@ -96,7 +96,7 @@
^" in let core::List<core::int>? #t10 = l2 in #t10 == null ?{core::Iterable<dynamic>} #t10 as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic> : #t10{core::Iterable<dynamic>}).{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t8.{core::List::add}(x){(core::int) → void};
+ #t8.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
} =>#t8;
@@ -126,7 +126,7 @@
final dynamic #t15 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
core::int x = #t15 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
- #t13.{core::List::add}(x){(core::int) → void};
+ #t13.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
@@ -157,7 +157,7 @@
final dynamic #t20 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
core::int x = #t20 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
- #t18.{core::List::add}(x){(core::int) → void};
+ #t18.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
@@ -177,7 +177,7 @@
core::Iterator<core::int> :sync-for-iterator = i1.{core::Iterable::iterator}{core::Iterator<core::int>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{core::int};
- #t21.{core::List::add}(x){(core::int) → void};
+ #t21.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
} =>#t21;
@@ -194,7 +194,7 @@
core::Iterator<core::int> :sync-for-iterator = l1.{core::Iterable::iterator}{core::Iterator<core::int>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{core::int};
- #t22.{core::List::add}(x){(core::int) → void};
+ #t22.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
} =>#t22;
@@ -216,7 +216,7 @@
final dynamic #t25 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
core::int x = #t25 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
- #t24.{core::List::add}(x){(core::int) → void};
+ #t24.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
diff --git a/pkg/front_end/testcases/nnbd/forin.dart.weak.expect b/pkg/front_end/testcases/nnbd/forin.dart.weak.expect
index a1bd97a..8b35773 100644
--- a/pkg/front_end/testcases/nnbd/forin.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/forin.dart.weak.expect
@@ -63,7 +63,7 @@
- 'Iterable' is from 'dart:core'.
[for (int x in i2) x];
^" in i2 as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>)
- #t2.{core::List::add}(x){(core::int) → void};
+ #t2.{core::List::add}{Invariant}(x){(core::int) → void};
} =>#t2;
for (core::int x in let final Never #t4 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:12:17: Error: The type 'List<int>?' used in the 'for' loop must implement 'Iterable<dynamic>' because 'List<int>?' is nullable and 'Iterable<dynamic>' isn't.
- 'List' is from 'dart:core'.
@@ -78,7 +78,7 @@
- 'Iterable' is from 'dart:core'.
[for (int x in l2) x];
^" in l2 as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>)
- #t5.{core::List::add}(x){(core::int) → void};
+ #t5.{core::List::add}{Invariant}(x){(core::int) → void};
} =>#t5;
for (final dynamic #t7 in let final Never #t8 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:15:17: Error: The type 'Object' used in the 'for' loop must implement 'Iterable<dynamic>'.
- 'Object' is from 'dart:core'.
@@ -96,7 +96,7 @@
[for (int x in o1) x];
^" in o1 as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
core::int x = #t10 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
- #t9.{core::List::add}(x){(core::int) → void};
+ #t9.{core::List::add}{Invariant}(x){(core::int) → void};
}
} =>#t9;
for (final dynamic #t12 in let final Never #t13 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:18:17: Error: The type 'Object?' used in the 'for' loop must implement 'Iterable<dynamic>'.
@@ -115,7 +115,7 @@
[for (int x in o2) x];
^" in o2 as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
core::int x = #t15 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
- #t14.{core::List::add}(x){(core::int) → void};
+ #t14.{core::List::add}{Invariant}(x){(core::int) → void};
}
} =>#t14;
}
@@ -125,14 +125,14 @@
block {
final core::List<core::int> #t17 = <core::int>[];
for (core::int x in i1)
- #t17.{core::List::add}(x){(core::int) → void};
+ #t17.{core::List::add}{Invariant}(x){(core::int) → void};
} =>#t17;
for (core::int x in l1)
x;
block {
final core::List<core::int> #t18 = <core::int>[];
for (core::int x in l1)
- #t18.{core::List::add}(x){(core::int) → void};
+ #t18.{core::List::add}{Invariant}(x){(core::int) → void};
} =>#t18;
for (final dynamic #t19 in d as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
core::int x = #t19 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
@@ -142,7 +142,7 @@
final core::List<core::int> #t20 = <core::int>[];
for (final dynamic #t21 in d as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
core::int x = #t21 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
- #t20.{core::List::add}(x){(core::int) → void};
+ #t20.{core::List::add}{Invariant}(x){(core::int) → void};
}
} =>#t20;
}
diff --git a/pkg/front_end/testcases/nnbd/forin.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/forin.dart.weak.transformed.expect
index 9195703..b242ebb 100644
--- a/pkg/front_end/testcases/nnbd/forin.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/forin.dart.weak.transformed.expect
@@ -71,7 +71,7 @@
^" in i2).{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t2.{core::List::add}(x){(core::int) → void};
+ #t2.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
} =>#t2;
@@ -96,7 +96,7 @@
^" in l2).{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t5.{core::List::add}(x){(core::int) → void};
+ #t5.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
} =>#t5;
@@ -126,7 +126,7 @@
final dynamic #t11 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
core::int x = #t11 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
- #t9.{core::List::add}(x){(core::int) → void};
+ #t9.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
@@ -157,7 +157,7 @@
final dynamic #t16 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
core::int x = #t16 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
- #t14.{core::List::add}(x){(core::int) → void};
+ #t14.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
@@ -177,7 +177,7 @@
core::Iterator<core::int> :sync-for-iterator = i1.{core::Iterable::iterator}{core::Iterator<core::int>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{core::int};
- #t17.{core::List::add}(x){(core::int) → void};
+ #t17.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
} =>#t17;
@@ -194,7 +194,7 @@
core::Iterator<core::int> :sync-for-iterator = l1.{core::Iterable::iterator}{core::Iterator<core::int>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{core::int};
- #t18.{core::List::add}(x){(core::int) → void};
+ #t18.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
} =>#t18;
@@ -216,7 +216,7 @@
final dynamic #t21 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
core::int x = #t21 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
- #t20.{core::List::add}(x){(core::int) → void};
+ #t20.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect
index 074a1a0..9064030 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect
@@ -86,7 +86,7 @@
final core::List<Never> #t2 = <Never>[];
final core::Iterable<Never>? #t3 = n1;
if(!(#t3 == null))
- #t2.{core::List::addAll}(#t3{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t2.{core::List::addAll}{Invariant}(#t3{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t2;
core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:8:16: Error: Can't spread a value with static type 'Never?'.
var l3 = [...n2];
@@ -95,7 +95,7 @@
final core::List<Never> #t4 = <Never>[];
final core::Iterable<Never>? #t5 = n2;
if(!(#t5 == null))
- #t4.{core::List::addAll}(#t5{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t4.{core::List::addAll}{Invariant}(#t5{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t4;
core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:10:16: Error: Can't spread a value with static type 'Null'.
var l5 = [...n3];
@@ -104,60 +104,60 @@
final core::List<Never> #t6 = <Never>[];
final core::Iterable<Never>? #t7 = n3;
if(!(#t7 == null))
- #t6.{core::List::addAll}(#t7{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t6.{core::List::addAll}{Invariant}(#t7{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t6;
core::Set<Never> s1 = block {
final core::Set<Never> #t8 = col::LinkedHashSet::of<Never>(n1);
- #t8.{core::Set::add}(n1){(Never) → core::bool};
+ #t8.{core::Set::add}{Invariant}(n1){(Never) → core::bool};
} =>#t8;
core::Set<Never> s2 = block {
final core::Set<Never> #t9 = col::LinkedHashSet::•<Never>();
final core::Iterable<Never>? #t10 = n1;
if(!(#t10 == null))
- #t9.{core::Set::addAll}(#t10{core::Iterable<Never>}){(core::Iterable<Never>) → void};
- #t9.{core::Set::add}(n1){(Never) → core::bool};
+ #t9.{core::Set::addAll}{Invariant}(#t10{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t9.{core::Set::add}{Invariant}(n1){(Never) → core::bool};
} =>#t9;
core::Set<dynamic> s3 = block {
final core::Set<dynamic> #t11 = col::LinkedHashSet::•<dynamic>();
- #t11.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
+ #t11.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
var s3 = {...n2, n1};
^"){(dynamic) → core::bool};
- #t11.{core::Set::add}(n1){(dynamic) → core::bool};
+ #t11.{core::Set::add}{Invariant}(n1){(dynamic) → core::bool};
} =>#t11;
core::Set<Never> s4 = block {
final core::Set<Never> #t12 = col::LinkedHashSet::•<Never>();
final core::Iterable<Never>? #t13 = n2;
if(!(#t13 == null))
- #t12.{core::Set::addAll}(#t13{core::Iterable<Never>}){(core::Iterable<Never>) → void};
- #t12.{core::Set::add}(n1){(Never) → core::bool};
+ #t12.{core::Set::addAll}{Invariant}(#t13{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t12.{core::Set::add}{Invariant}(n1){(Never) → core::bool};
} =>#t12;
core::Set<dynamic> s5 = block {
final core::Set<dynamic> #t14 = col::LinkedHashSet::•<dynamic>();
- #t14.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
+ #t14.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
var s5 = {...n3, n1};
^"){(dynamic) → core::bool};
- #t14.{core::Set::add}(n1){(dynamic) → core::bool};
+ #t14.{core::Set::add}{Invariant}(n1){(dynamic) → core::bool};
} =>#t14;
core::Set<Never> s6 = block {
final core::Set<Never> #t15 = col::LinkedHashSet::•<Never>();
final core::Iterable<Never>? #t16 = n3;
if(!(#t16 == null))
- #t15.{core::Set::addAll}(#t16{core::Iterable<Never>}){(core::Iterable<Never>) → void};
- #t15.{core::Set::add}(n1){(Never) → core::bool};
+ #t15.{core::Set::addAll}{Invariant}(#t16{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t15.{core::Set::add}{Invariant}(n1){(Never) → core::bool};
} =>#t15;
core::Map<Never, Never> m1 = block {
final core::Map<Never, Never> #t17 = <Never, Never>{};
for (final core::MapEntry<Never, Never> #t18 in n1.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>})
- #t17.{core::Map::[]=}(#t18.{core::MapEntry::key}{Never}, #t18.{core::MapEntry::value}{Never}){(Never, Never) → void};
- #t17.{core::Map::[]=}(n1, n1){(Never, Never) → void};
+ #t17.{core::Map::[]=}{Invariant}(#t18.{core::MapEntry::key}{Never}, #t18.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t17.{core::Map::[]=}{Invariant}(n1, n1){(Never, Never) → void};
} =>#t17;
core::Map<Never, Never> m2 = block {
final core::Map<Never, Never> #t19 = <Never, Never>{};
final core::Map<Never, Never>? #t20 = n1;
if(!(#t20 == null))
for (final core::MapEntry<Never, Never> #t21 in #t20{core::Map<Never, Never>}.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>})
- #t19.{core::Map::[]=}(#t21.{core::MapEntry::key}{Never}, #t21.{core::MapEntry::value}{Never}){(Never, Never) → void};
- #t19.{core::Map::[]=}(n1, n1){(Never, Never) → void};
+ #t19.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{Never}, #t21.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t19.{core::Map::[]=}{Invariant}(n1, n1){(Never, Never) → void};
} =>#t19;
core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:20:16: Error: Can't spread a value with static type 'Never?'.
var m3 = {...n2, n1: n1};
@@ -167,8 +167,8 @@
final core::Map<Never, Never>? #t23 = n2;
if(!(#t23 == null))
for (final core::MapEntry<Never, Never> #t24 in #t23{core::Map<Never, Never>}.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>})
- #t22.{core::Map::[]=}(#t24.{core::MapEntry::key}{Never}, #t24.{core::MapEntry::value}{Never}){(Never, Never) → void};
- #t22.{core::Map::[]=}(n1, n1){(Never, Never) → void};
+ #t22.{core::Map::[]=}{Invariant}(#t24.{core::MapEntry::key}{Never}, #t24.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t22.{core::Map::[]=}{Invariant}(n1, n1){(Never, Never) → void};
} =>#t22;
core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:22:16: Error: Can't spread a value with static type 'Null'.
var m5 = {...n3, n1: n1};
@@ -178,8 +178,8 @@
final core::Map<Never, Never>? #t26 = n3;
if(!(#t26 == null))
for (final core::MapEntry<Never, Never> #t27 in #t26{core::Map<Never, Never>}.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>})
- #t25.{core::Map::[]=}(#t27.{core::MapEntry::key}{Never}, #t27.{core::MapEntry::value}{Never}){(Never, Never) → void};
- #t25.{core::Map::[]=}(n1, n1){(Never, Never) → void};
+ #t25.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}{Never}, #t27.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t25.{core::Map::[]=}{Invariant}(n1, n1){(Never, Never) → void};
} =>#t25;
}
static method test2<N1 extends Never, N2 extends Never?, N3 extends Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
@@ -190,7 +190,7 @@
final core::List<Never> #t29 = <Never>[];
final core::Iterable<Never>? #t30 = n1;
if(!(#t30 == null))
- #t29.{core::List::addAll}(#t30{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t29.{core::List::addAll}{Invariant}(#t30{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t29;
core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:30:16: Error: Can't spread a value with static type 'N2'.
var l3 = [...n2];
@@ -199,7 +199,7 @@
final core::List<Never> #t31 = <Never>[];
final core::Iterable<Never>? #t32 = n2;
if(!(#t32 == null))
- #t31.{core::List::addAll}(#t32{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t31.{core::List::addAll}{Invariant}(#t32{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t31;
core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:32:16: Error: Can't spread a value with static type 'N3'.
var l5 = [...n3];
@@ -208,60 +208,60 @@
final core::List<Never> #t33 = <Never>[];
final core::Iterable<Never>? #t34 = n3;
if(!(#t34 == null))
- #t33.{core::List::addAll}(#t34{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t33.{core::List::addAll}{Invariant}(#t34{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t33;
core::Set<self::test2::N1> s1 = block {
final core::Set<self::test2::N1> #t35 = col::LinkedHashSet::of<self::test2::N1>(n1);
- #t35.{core::Set::add}(n1){(self::test2::N1) → core::bool};
+ #t35.{core::Set::add}{Invariant}(n1){(self::test2::N1) → core::bool};
} =>#t35;
core::Set<self::test2::N1> s2 = block {
final core::Set<self::test2::N1> #t36 = col::LinkedHashSet::•<self::test2::N1>();
final core::Iterable<self::test2::N1>? #t37 = n1;
if(!(#t37 == null))
- #t36.{core::Set::addAll}(#t37{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
- #t36.{core::Set::add}(n1){(self::test2::N1) → core::bool};
+ #t36.{core::Set::addAll}{Invariant}(#t37{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
+ #t36.{core::Set::add}{Invariant}(n1){(self::test2::N1) → core::bool};
} =>#t36;
core::Set<dynamic> s3 = block {
final core::Set<dynamic> #t38 = col::LinkedHashSet::•<dynamic>();
- #t38.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
+ #t38.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
var s3 = {...n2, n1};
^"){(dynamic) → core::bool};
- #t38.{core::Set::add}(n1){(dynamic) → core::bool};
+ #t38.{core::Set::add}{Invariant}(n1){(dynamic) → core::bool};
} =>#t38;
core::Set<self::test2::N1> s4 = block {
final core::Set<self::test2::N1> #t39 = col::LinkedHashSet::•<self::test2::N1>();
final core::Iterable<self::test2::N1>? #t40 = n2;
if(!(#t40 == null))
- #t39.{core::Set::addAll}(#t40{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
- #t39.{core::Set::add}(n1){(self::test2::N1) → core::bool};
+ #t39.{core::Set::addAll}{Invariant}(#t40{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
+ #t39.{core::Set::add}{Invariant}(n1){(self::test2::N1) → core::bool};
} =>#t39;
core::Set<dynamic> s5 = block {
final core::Set<dynamic> #t41 = col::LinkedHashSet::•<dynamic>();
- #t41.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
+ #t41.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
var s5 = {...n3, n1};
^"){(dynamic) → core::bool};
- #t41.{core::Set::add}(n1){(dynamic) → core::bool};
+ #t41.{core::Set::add}{Invariant}(n1){(dynamic) → core::bool};
} =>#t41;
core::Set<self::test2::N1> s6 = block {
final core::Set<self::test2::N1> #t42 = col::LinkedHashSet::•<self::test2::N1>();
final core::Iterable<self::test2::N1>? #t43 = n3;
if(!(#t43 == null))
- #t42.{core::Set::addAll}(#t43{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
- #t42.{core::Set::add}(n1){(self::test2::N1) → core::bool};
+ #t42.{core::Set::addAll}{Invariant}(#t43{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
+ #t42.{core::Set::add}{Invariant}(n1){(self::test2::N1) → core::bool};
} =>#t42;
core::Map<self::test2::N1, self::test2::N1> m1 = block {
final core::Map<self::test2::N1, self::test2::N1> #t44 = <self::test2::N1, self::test2::N1>{};
for (final core::MapEntry<self::test2::N1, self::test2::N1> #t45 in n1.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>})
- #t44.{core::Map::[]=}(#t45.{core::MapEntry::key}{self::test2::N1}, #t45.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
- #t44.{core::Map::[]=}(n1, n1){(self::test2::N1, self::test2::N1) → void};
+ #t44.{core::Map::[]=}{Invariant}(#t45.{core::MapEntry::key}{self::test2::N1}, #t45.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t44.{core::Map::[]=}{Invariant}(n1, n1){(self::test2::N1, self::test2::N1) → void};
} =>#t44;
core::Map<self::test2::N1, self::test2::N1> m2 = block {
final core::Map<self::test2::N1, self::test2::N1> #t46 = <self::test2::N1, self::test2::N1>{};
final core::Map<self::test2::N1, self::test2::N1>? #t47 = n1;
if(!(#t47 == null))
for (final core::MapEntry<self::test2::N1, self::test2::N1> #t48 in #t47{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>})
- #t46.{core::Map::[]=}(#t48.{core::MapEntry::key}{self::test2::N1}, #t48.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
- #t46.{core::Map::[]=}(n1, n1){(self::test2::N1, self::test2::N1) → void};
+ #t46.{core::Map::[]=}{Invariant}(#t48.{core::MapEntry::key}{self::test2::N1}, #t48.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t46.{core::Map::[]=}{Invariant}(n1, n1){(self::test2::N1, self::test2::N1) → void};
} =>#t46;
core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:42:16: Error: Can't spread a value with static type 'N2'.
var m3 = {...n2, n1: n1};
@@ -271,8 +271,8 @@
final core::Map<self::test2::N1, self::test2::N1>? #t50 = n2;
if(!(#t50 == null))
for (final core::MapEntry<self::test2::N1, self::test2::N1> #t51 in #t50{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>})
- #t49.{core::Map::[]=}(#t51.{core::MapEntry::key}{self::test2::N1}, #t51.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
- #t49.{core::Map::[]=}(n1, n1){(self::test2::N1, self::test2::N1) → void};
+ #t49.{core::Map::[]=}{Invariant}(#t51.{core::MapEntry::key}{self::test2::N1}, #t51.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t49.{core::Map::[]=}{Invariant}(n1, n1){(self::test2::N1, self::test2::N1) → void};
} =>#t49;
core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:44:16: Error: Can't spread a value with static type 'N3'.
var m5 = {...n3, n1: n1};
@@ -282,8 +282,8 @@
final core::Map<self::test2::N1, self::test2::N1>? #t53 = n3;
if(!(#t53 == null))
for (final core::MapEntry<self::test2::N1, self::test2::N1> #t54 in #t53{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>})
- #t52.{core::Map::[]=}(#t54.{core::MapEntry::key}{self::test2::N1}, #t54.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
- #t52.{core::Map::[]=}(n1, n1){(self::test2::N1, self::test2::N1) → void};
+ #t52.{core::Map::[]=}{Invariant}(#t54.{core::MapEntry::key}{self::test2::N1}, #t54.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t52.{core::Map::[]=}{Invariant}(n1, n1){(self::test2::N1, self::test2::N1) → void};
} =>#t52;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
index 7b9a1bb..a7b418d 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
@@ -86,7 +86,7 @@
final core::List<Never> #t2 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t3 = n1;
if(!(#t3 == null))
- #t2.{core::List::addAll}(#t3{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t2.{core::List::addAll}{Invariant}(#t3{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t2;
core::List<dynamic> l3 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:8:16: Error: Can't spread a value with static type 'Never?'.
var l3 = [...n2];
@@ -95,7 +95,7 @@
final core::List<Never> #t4 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t5 = n2;
if(!(#t5 == null))
- #t4.{core::List::addAll}(#t5{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t4.{core::List::addAll}{Invariant}(#t5{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t4;
core::List<dynamic> l5 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:10:16: Error: Can't spread a value with static type 'Null'.
var l5 = [...n3];
@@ -104,46 +104,46 @@
final core::List<Never> #t6 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t7 = n3;
if(!(#t7 == null))
- #t6.{core::List::addAll}(#t7{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t6.{core::List::addAll}{Invariant}(#t7{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t6;
core::Set<Never> s1 = block {
final core::Set<Never> #t8 = col::LinkedHashSet::of<Never>(n1);
- #t8.{core::Set::add}(n1){(Never) → core::bool};
+ #t8.{core::Set::add}{Invariant}(n1){(Never) → core::bool};
} =>#t8;
core::Set<Never> s2 = block {
final core::Set<Never> #t9 = new col::_CompactLinkedHashSet::•<Never>();
final core::Iterable<Never>? #t10 = n1;
if(!(#t10 == null))
- #t9.{core::Set::addAll}(#t10{core::Iterable<Never>}){(core::Iterable<Never>) → void};
- #t9.{core::Set::add}(n1){(Never) → core::bool};
+ #t9.{core::Set::addAll}{Invariant}(#t10{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t9.{core::Set::add}{Invariant}(n1){(Never) → core::bool};
} =>#t9;
core::Set<dynamic> s3 = block {
final core::Set<dynamic> #t11 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t11.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
+ #t11.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
var s3 = {...n2, n1};
^"){(dynamic) → core::bool};
- #t11.{core::Set::add}(n1){(dynamic) → core::bool};
+ #t11.{core::Set::add}{Invariant}(n1){(dynamic) → core::bool};
} =>#t11;
core::Set<Never> s4 = block {
final core::Set<Never> #t12 = new col::_CompactLinkedHashSet::•<Never>();
final core::Iterable<Never>? #t13 = n2;
if(!(#t13 == null))
- #t12.{core::Set::addAll}(#t13{core::Iterable<Never>}){(core::Iterable<Never>) → void};
- #t12.{core::Set::add}(n1){(Never) → core::bool};
+ #t12.{core::Set::addAll}{Invariant}(#t13{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t12.{core::Set::add}{Invariant}(n1){(Never) → core::bool};
} =>#t12;
core::Set<dynamic> s5 = block {
final core::Set<dynamic> #t14 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t14.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
+ #t14.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
var s5 = {...n3, n1};
^"){(dynamic) → core::bool};
- #t14.{core::Set::add}(n1){(dynamic) → core::bool};
+ #t14.{core::Set::add}{Invariant}(n1){(dynamic) → core::bool};
} =>#t14;
core::Set<Never> s6 = block {
final core::Set<Never> #t15 = new col::_CompactLinkedHashSet::•<Never>();
final core::Iterable<Never>? #t16 = n3;
if(!(#t16 == null))
- #t15.{core::Set::addAll}(#t16{core::Iterable<Never>}){(core::Iterable<Never>) → void};
- #t15.{core::Set::add}(n1){(Never) → core::bool};
+ #t15.{core::Set::addAll}{Invariant}(#t16{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t15.{core::Set::add}{Invariant}(n1){(Never) → core::bool};
} =>#t15;
core::Map<Never, Never> m1 = block {
final core::Map<Never, Never> #t17 = <Never, Never>{};
@@ -151,10 +151,10 @@
core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = n1.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<Never, Never>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<Never, Never> #t18 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<Never, Never>};
- #t17.{core::Map::[]=}(#t18.{core::MapEntry::key}{Never}, #t18.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t17.{core::Map::[]=}{Invariant}(#t18.{core::MapEntry::key}{Never}, #t18.{core::MapEntry::value}{Never}){(Never, Never) → void};
}
}
- #t17.{core::Map::[]=}(n1, n1){(Never, Never) → void};
+ #t17.{core::Map::[]=}{Invariant}(n1, n1){(Never, Never) → void};
} =>#t17;
core::Map<Never, Never> m2 = block {
final core::Map<Never, Never> #t19 = <Never, Never>{};
@@ -163,10 +163,10 @@
core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t20{core::Map<Never, Never>}.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<Never, Never>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<Never, Never> #t21 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<Never, Never>};
- #t19.{core::Map::[]=}(#t21.{core::MapEntry::key}{Never}, #t21.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t19.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{Never}, #t21.{core::MapEntry::value}{Never}){(Never, Never) → void};
}
}
- #t19.{core::Map::[]=}(n1, n1){(Never, Never) → void};
+ #t19.{core::Map::[]=}{Invariant}(n1, n1){(Never, Never) → void};
} =>#t19;
core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:20:16: Error: Can't spread a value with static type 'Never?'.
var m3 = {...n2, n1: n1};
@@ -178,10 +178,10 @@
core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t23{core::Map<Never, Never>}.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<Never, Never>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<Never, Never> #t24 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<Never, Never>};
- #t22.{core::Map::[]=}(#t24.{core::MapEntry::key}{Never}, #t24.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t22.{core::Map::[]=}{Invariant}(#t24.{core::MapEntry::key}{Never}, #t24.{core::MapEntry::value}{Never}){(Never, Never) → void};
}
}
- #t22.{core::Map::[]=}(n1, n1){(Never, Never) → void};
+ #t22.{core::Map::[]=}{Invariant}(n1, n1){(Never, Never) → void};
} =>#t22;
core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:22:16: Error: Can't spread a value with static type 'Null'.
var m5 = {...n3, n1: n1};
@@ -193,10 +193,10 @@
core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t26{core::Map<Never, Never>}.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<Never, Never>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<Never, Never> #t27 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<Never, Never>};
- #t25.{core::Map::[]=}(#t27.{core::MapEntry::key}{Never}, #t27.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t25.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}{Never}, #t27.{core::MapEntry::value}{Never}){(Never, Never) → void};
}
}
- #t25.{core::Map::[]=}(n1, n1){(Never, Never) → void};
+ #t25.{core::Map::[]=}{Invariant}(n1, n1){(Never, Never) → void};
} =>#t25;
}
static method test2<N1 extends Never, N2 extends Never?, N3 extends Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
@@ -207,7 +207,7 @@
final core::List<Never> #t29 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t30 = n1;
if(!(#t30 == null))
- #t29.{core::List::addAll}(#t30{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t29.{core::List::addAll}{Invariant}(#t30{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t29;
core::List<dynamic> l3 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:30:16: Error: Can't spread a value with static type 'N2'.
var l3 = [...n2];
@@ -216,7 +216,7 @@
final core::List<Never> #t31 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t32 = n2;
if(!(#t32 == null))
- #t31.{core::List::addAll}(#t32{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t31.{core::List::addAll}{Invariant}(#t32{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t31;
core::List<dynamic> l5 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:32:16: Error: Can't spread a value with static type 'N3'.
var l5 = [...n3];
@@ -225,46 +225,46 @@
final core::List<Never> #t33 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t34 = n3;
if(!(#t34 == null))
- #t33.{core::List::addAll}(#t34{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t33.{core::List::addAll}{Invariant}(#t34{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t33;
core::Set<self::test2::N1> s1 = block {
final core::Set<self::test2::N1> #t35 = col::LinkedHashSet::of<self::test2::N1>(n1);
- #t35.{core::Set::add}(n1){(self::test2::N1) → core::bool};
+ #t35.{core::Set::add}{Invariant}(n1){(self::test2::N1) → core::bool};
} =>#t35;
core::Set<self::test2::N1> s2 = block {
final core::Set<self::test2::N1> #t36 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
final core::Iterable<self::test2::N1>? #t37 = n1;
if(!(#t37 == null))
- #t36.{core::Set::addAll}(#t37{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
- #t36.{core::Set::add}(n1){(self::test2::N1) → core::bool};
+ #t36.{core::Set::addAll}{Invariant}(#t37{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
+ #t36.{core::Set::add}{Invariant}(n1){(self::test2::N1) → core::bool};
} =>#t36;
core::Set<dynamic> s3 = block {
final core::Set<dynamic> #t38 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t38.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
+ #t38.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
var s3 = {...n2, n1};
^"){(dynamic) → core::bool};
- #t38.{core::Set::add}(n1){(dynamic) → core::bool};
+ #t38.{core::Set::add}{Invariant}(n1){(dynamic) → core::bool};
} =>#t38;
core::Set<self::test2::N1> s4 = block {
final core::Set<self::test2::N1> #t39 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
final core::Iterable<self::test2::N1>? #t40 = n2;
if(!(#t40 == null))
- #t39.{core::Set::addAll}(#t40{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
- #t39.{core::Set::add}(n1){(self::test2::N1) → core::bool};
+ #t39.{core::Set::addAll}{Invariant}(#t40{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
+ #t39.{core::Set::add}{Invariant}(n1){(self::test2::N1) → core::bool};
} =>#t39;
core::Set<dynamic> s5 = block {
final core::Set<dynamic> #t41 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t41.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
+ #t41.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
var s5 = {...n3, n1};
^"){(dynamic) → core::bool};
- #t41.{core::Set::add}(n1){(dynamic) → core::bool};
+ #t41.{core::Set::add}{Invariant}(n1){(dynamic) → core::bool};
} =>#t41;
core::Set<self::test2::N1> s6 = block {
final core::Set<self::test2::N1> #t42 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
final core::Iterable<self::test2::N1>? #t43 = n3;
if(!(#t43 == null))
- #t42.{core::Set::addAll}(#t43{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
- #t42.{core::Set::add}(n1){(self::test2::N1) → core::bool};
+ #t42.{core::Set::addAll}{Invariant}(#t43{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
+ #t42.{core::Set::add}{Invariant}(n1){(self::test2::N1) → core::bool};
} =>#t42;
core::Map<self::test2::N1, self::test2::N1> m1 = block {
final core::Map<self::test2::N1, self::test2::N1> #t44 = <self::test2::N1, self::test2::N1>{};
@@ -272,10 +272,10 @@
core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = n1.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<self::test2::N1, self::test2::N1> #t45 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<self::test2::N1, self::test2::N1>};
- #t44.{core::Map::[]=}(#t45.{core::MapEntry::key}{self::test2::N1}, #t45.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t44.{core::Map::[]=}{Invariant}(#t45.{core::MapEntry::key}{self::test2::N1}, #t45.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
}
}
- #t44.{core::Map::[]=}(n1, n1){(self::test2::N1, self::test2::N1) → void};
+ #t44.{core::Map::[]=}{Invariant}(n1, n1){(self::test2::N1, self::test2::N1) → void};
} =>#t44;
core::Map<self::test2::N1, self::test2::N1> m2 = block {
final core::Map<self::test2::N1, self::test2::N1> #t46 = <self::test2::N1, self::test2::N1>{};
@@ -284,10 +284,10 @@
core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t47{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<self::test2::N1, self::test2::N1> #t48 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<self::test2::N1, self::test2::N1>};
- #t46.{core::Map::[]=}(#t48.{core::MapEntry::key}{self::test2::N1}, #t48.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t46.{core::Map::[]=}{Invariant}(#t48.{core::MapEntry::key}{self::test2::N1}, #t48.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
}
}
- #t46.{core::Map::[]=}(n1, n1){(self::test2::N1, self::test2::N1) → void};
+ #t46.{core::Map::[]=}{Invariant}(n1, n1){(self::test2::N1, self::test2::N1) → void};
} =>#t46;
core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:42:16: Error: Can't spread a value with static type 'N2'.
var m3 = {...n2, n1: n1};
@@ -299,10 +299,10 @@
core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t50{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<self::test2::N1, self::test2::N1> #t51 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<self::test2::N1, self::test2::N1>};
- #t49.{core::Map::[]=}(#t51.{core::MapEntry::key}{self::test2::N1}, #t51.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t49.{core::Map::[]=}{Invariant}(#t51.{core::MapEntry::key}{self::test2::N1}, #t51.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
}
}
- #t49.{core::Map::[]=}(n1, n1){(self::test2::N1, self::test2::N1) → void};
+ #t49.{core::Map::[]=}{Invariant}(n1, n1){(self::test2::N1, self::test2::N1) → void};
} =>#t49;
core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:44:16: Error: Can't spread a value with static type 'N3'.
var m5 = {...n3, n1: n1};
@@ -314,10 +314,10 @@
core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t53{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<self::test2::N1, self::test2::N1> #t54 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<self::test2::N1, self::test2::N1>};
- #t52.{core::Map::[]=}(#t54.{core::MapEntry::key}{self::test2::N1}, #t54.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t52.{core::Map::[]=}{Invariant}(#t54.{core::MapEntry::key}{self::test2::N1}, #t54.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
}
}
- #t52.{core::Map::[]=}(n1, n1){(self::test2::N1, self::test2::N1) → void};
+ #t52.{core::Map::[]=}{Invariant}(n1, n1){(self::test2::N1, self::test2::N1) → void};
} =>#t52;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect
index 1126a7e..7478ccc 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect
@@ -87,7 +87,7 @@
final core::List<Never> #t3 = <Never>[];
final core::Iterable<Never>? #t4 = let final Never #t5 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
if(!(#t4 == null))
- #t3.{core::List::addAll}(#t4{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t3;
core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:8:16: Error: Can't spread a value with static type 'Never?'.
var l3 = [...n2];
@@ -96,7 +96,7 @@
final core::List<Never> #t6 = <Never>[];
final core::Iterable<Never>? #t7 = n2;
if(!(#t7 == null))
- #t6.{core::List::addAll}(#t7{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t6.{core::List::addAll}{Invariant}(#t7{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t6;
core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:10:16: Error: Can't spread a value with static type 'Null'.
var l5 = [...n3];
@@ -105,60 +105,60 @@
final core::List<Never> #t8 = <Never>[];
final core::Iterable<Never>? #t9 = n3;
if(!(#t9 == null))
- #t8.{core::List::addAll}(#t9{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t8.{core::List::addAll}{Invariant}(#t9{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t8;
core::Set<Never> s1 = block {
final core::Set<Never> #t10 = col::LinkedHashSet::of<Never>(let final Never #t11 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
- #t10.{core::Set::add}(let final Never #t12 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
+ #t10.{core::Set::add}{Invariant}(let final Never #t12 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
} =>#t10;
core::Set<Never> s2 = block {
final core::Set<Never> #t13 = col::LinkedHashSet::•<Never>();
final core::Iterable<Never>? #t14 = let final Never #t15 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
if(!(#t14 == null))
- #t13.{core::Set::addAll}(#t14{core::Iterable<Never>}){(core::Iterable<Never>) → void};
- #t13.{core::Set::add}(let final Never #t16 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
+ #t13.{core::Set::addAll}{Invariant}(#t14{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t13.{core::Set::add}{Invariant}(let final Never #t16 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
} =>#t13;
core::Set<dynamic> s3 = block {
final core::Set<dynamic> #t17 = col::LinkedHashSet::•<dynamic>();
- #t17.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
+ #t17.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
var s3 = {...n2, n1};
^"){(dynamic) → core::bool};
- #t17.{core::Set::add}(let final Never #t18 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
+ #t17.{core::Set::add}{Invariant}(let final Never #t18 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
} =>#t17;
core::Set<Never> s4 = block {
final core::Set<Never> #t19 = col::LinkedHashSet::•<Never>();
final core::Iterable<Never>? #t20 = n2;
if(!(#t20 == null))
- #t19.{core::Set::addAll}(#t20{core::Iterable<Never>}){(core::Iterable<Never>) → void};
- #t19.{core::Set::add}(let final Never #t21 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
+ #t19.{core::Set::addAll}{Invariant}(#t20{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t19.{core::Set::add}{Invariant}(let final Never #t21 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
} =>#t19;
core::Set<dynamic> s5 = block {
final core::Set<dynamic> #t22 = col::LinkedHashSet::•<dynamic>();
- #t22.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
+ #t22.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
var s5 = {...n3, n1};
^"){(dynamic) → core::bool};
- #t22.{core::Set::add}(let final Never #t23 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
+ #t22.{core::Set::add}{Invariant}(let final Never #t23 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
} =>#t22;
core::Set<Never> s6 = block {
final core::Set<Never> #t24 = col::LinkedHashSet::•<Never>();
final core::Iterable<Never>? #t25 = n3;
if(!(#t25 == null))
- #t24.{core::Set::addAll}(#t25{core::Iterable<Never>}){(core::Iterable<Never>) → void};
- #t24.{core::Set::add}(let final Never #t26 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
+ #t24.{core::Set::addAll}{Invariant}(#t25{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t24.{core::Set::add}{Invariant}(let final Never #t26 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
} =>#t24;
core::Map<Never, Never> m1 = block {
final core::Map<Never, Never> #t27 = <Never, Never>{};
for (final core::MapEntry<Never, Never> #t28 in (let final Never #t29 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>})
- #t27.{core::Map::[]=}(#t28.{core::MapEntry::key}{Never}, #t28.{core::MapEntry::value}{Never}){(Never, Never) → void};
- #t27.{core::Map::[]=}(let final Never #t30 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t31 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
+ #t27.{core::Map::[]=}{Invariant}(#t28.{core::MapEntry::key}{Never}, #t28.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t27.{core::Map::[]=}{Invariant}(let final Never #t30 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t31 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
} =>#t27;
core::Map<Never, Never> m2 = block {
final core::Map<Never, Never> #t32 = <Never, Never>{};
final core::Map<Never, Never>? #t33 = let final Never #t34 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
if(!(#t33 == null))
for (final core::MapEntry<Never, Never> #t35 in #t33{core::Map<Never, Never>}.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>})
- #t32.{core::Map::[]=}(#t35.{core::MapEntry::key}{Never}, #t35.{core::MapEntry::value}{Never}){(Never, Never) → void};
- #t32.{core::Map::[]=}(let final Never #t36 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t37 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
+ #t32.{core::Map::[]=}{Invariant}(#t35.{core::MapEntry::key}{Never}, #t35.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t32.{core::Map::[]=}{Invariant}(let final Never #t36 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t37 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
} =>#t32;
core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:20:16: Error: Can't spread a value with static type 'Never?'.
var m3 = {...n2, n1: n1};
@@ -168,8 +168,8 @@
final core::Map<Never, Never>? #t41 = n2;
if(!(#t41 == null))
for (final core::MapEntry<Never, Never> #t42 in #t41{core::Map<Never, Never>}.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>})
- #t40.{core::Map::[]=}(#t42.{core::MapEntry::key}{Never}, #t42.{core::MapEntry::value}{Never}){(Never, Never) → void};
- #t40.{core::Map::[]=}(let final Never #t43 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t44 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
+ #t40.{core::Map::[]=}{Invariant}(#t42.{core::MapEntry::key}{Never}, #t42.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t40.{core::Map::[]=}{Invariant}(let final Never #t43 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t44 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
} =>#t40;
core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:22:16: Error: Can't spread a value with static type 'Null'.
var m5 = {...n3, n1: n1};
@@ -179,8 +179,8 @@
final core::Map<Never, Never>? #t48 = n3;
if(!(#t48 == null))
for (final core::MapEntry<Never, Never> #t49 in #t48{core::Map<Never, Never>}.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>})
- #t47.{core::Map::[]=}(#t49.{core::MapEntry::key}{Never}, #t49.{core::MapEntry::value}{Never}){(Never, Never) → void};
- #t47.{core::Map::[]=}(let final Never #t50 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t51 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
+ #t47.{core::Map::[]=}{Invariant}(#t49.{core::MapEntry::key}{Never}, #t49.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t47.{core::Map::[]=}{Invariant}(let final Never #t50 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t51 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
} =>#t47;
}
static method test2<N1 extends Never, N2 extends Never?, N3 extends Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
@@ -191,7 +191,7 @@
final core::List<Never> #t54 = <Never>[];
final core::Iterable<Never>? #t55 = let final self::test2::N1 #t56 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
if(!(#t55 == null))
- #t54.{core::List::addAll}(#t55{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t54.{core::List::addAll}{Invariant}(#t55{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t54;
core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:30:16: Error: Can't spread a value with static type 'N2'.
var l3 = [...n2];
@@ -200,7 +200,7 @@
final core::List<Never> #t57 = <Never>[];
final core::Iterable<Never>? #t58 = n2;
if(!(#t58 == null))
- #t57.{core::List::addAll}(#t58{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t57.{core::List::addAll}{Invariant}(#t58{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t57;
core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:32:16: Error: Can't spread a value with static type 'N3'.
var l5 = [...n3];
@@ -209,60 +209,60 @@
final core::List<Never> #t59 = <Never>[];
final core::Iterable<Never>? #t60 = n3;
if(!(#t60 == null))
- #t59.{core::List::addAll}(#t60{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t59.{core::List::addAll}{Invariant}(#t60{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t59;
core::Set<self::test2::N1> s1 = block {
final core::Set<self::test2::N1> #t61 = col::LinkedHashSet::of<self::test2::N1>(let final self::test2::N1 #t62 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
- #t61.{core::Set::add}(let final self::test2::N1 #t63 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
+ #t61.{core::Set::add}{Invariant}(let final self::test2::N1 #t63 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
} =>#t61;
core::Set<self::test2::N1> s2 = block {
final core::Set<self::test2::N1> #t64 = col::LinkedHashSet::•<self::test2::N1>();
final core::Iterable<self::test2::N1>? #t65 = let final self::test2::N1 #t66 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
if(!(#t65 == null))
- #t64.{core::Set::addAll}(#t65{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
- #t64.{core::Set::add}(let final self::test2::N1 #t67 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
+ #t64.{core::Set::addAll}{Invariant}(#t65{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
+ #t64.{core::Set::add}{Invariant}(let final self::test2::N1 #t67 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
} =>#t64;
core::Set<dynamic> s3 = block {
final core::Set<dynamic> #t68 = col::LinkedHashSet::•<dynamic>();
- #t68.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
+ #t68.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
var s3 = {...n2, n1};
^"){(dynamic) → core::bool};
- #t68.{core::Set::add}(let final self::test2::N1 #t69 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
+ #t68.{core::Set::add}{Invariant}(let final self::test2::N1 #t69 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
} =>#t68;
core::Set<self::test2::N1> s4 = block {
final core::Set<self::test2::N1> #t70 = col::LinkedHashSet::•<self::test2::N1>();
final core::Iterable<self::test2::N1>? #t71 = n2;
if(!(#t71 == null))
- #t70.{core::Set::addAll}(#t71{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
- #t70.{core::Set::add}(let final self::test2::N1 #t72 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
+ #t70.{core::Set::addAll}{Invariant}(#t71{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
+ #t70.{core::Set::add}{Invariant}(let final self::test2::N1 #t72 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
} =>#t70;
core::Set<dynamic> s5 = block {
final core::Set<dynamic> #t73 = col::LinkedHashSet::•<dynamic>();
- #t73.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
+ #t73.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
var s5 = {...n3, n1};
^"){(dynamic) → core::bool};
- #t73.{core::Set::add}(let final self::test2::N1 #t74 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
+ #t73.{core::Set::add}{Invariant}(let final self::test2::N1 #t74 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
} =>#t73;
core::Set<self::test2::N1> s6 = block {
final core::Set<self::test2::N1> #t75 = col::LinkedHashSet::•<self::test2::N1>();
final core::Iterable<self::test2::N1>? #t76 = n3;
if(!(#t76 == null))
- #t75.{core::Set::addAll}(#t76{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
- #t75.{core::Set::add}(let final self::test2::N1 #t77 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
+ #t75.{core::Set::addAll}{Invariant}(#t76{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
+ #t75.{core::Set::add}{Invariant}(let final self::test2::N1 #t77 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
} =>#t75;
core::Map<self::test2::N1, self::test2::N1> m1 = block {
final core::Map<self::test2::N1, self::test2::N1> #t78 = <self::test2::N1, self::test2::N1>{};
for (final core::MapEntry<self::test2::N1, self::test2::N1> #t79 in (let final self::test2::N1 #t80 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>})
- #t78.{core::Map::[]=}(#t79.{core::MapEntry::key}{self::test2::N1}, #t79.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
- #t78.{core::Map::[]=}(let final self::test2::N1 #t81 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t82 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
+ #t78.{core::Map::[]=}{Invariant}(#t79.{core::MapEntry::key}{self::test2::N1}, #t79.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t78.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t81 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t82 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
} =>#t78;
core::Map<self::test2::N1, self::test2::N1> m2 = block {
final core::Map<self::test2::N1, self::test2::N1> #t83 = <self::test2::N1, self::test2::N1>{};
final core::Map<self::test2::N1, self::test2::N1>? #t84 = let final self::test2::N1 #t85 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
if(!(#t84 == null))
for (final core::MapEntry<self::test2::N1, self::test2::N1> #t86 in #t84{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>})
- #t83.{core::Map::[]=}(#t86.{core::MapEntry::key}{self::test2::N1}, #t86.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
- #t83.{core::Map::[]=}(let final self::test2::N1 #t87 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t88 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
+ #t83.{core::Map::[]=}{Invariant}(#t86.{core::MapEntry::key}{self::test2::N1}, #t86.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t83.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t87 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t88 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
} =>#t83;
core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:42:16: Error: Can't spread a value with static type 'N2'.
var m3 = {...n2, n1: n1};
@@ -272,8 +272,8 @@
final core::Map<self::test2::N1, self::test2::N1>? #t92 = n2;
if(!(#t92 == null))
for (final core::MapEntry<self::test2::N1, self::test2::N1> #t93 in #t92{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>})
- #t91.{core::Map::[]=}(#t93.{core::MapEntry::key}{self::test2::N1}, #t93.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
- #t91.{core::Map::[]=}(let final self::test2::N1 #t94 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t95 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
+ #t91.{core::Map::[]=}{Invariant}(#t93.{core::MapEntry::key}{self::test2::N1}, #t93.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t91.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t94 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t95 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
} =>#t91;
core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:44:16: Error: Can't spread a value with static type 'N3'.
var m5 = {...n3, n1: n1};
@@ -283,8 +283,8 @@
final core::Map<self::test2::N1, self::test2::N1>? #t99 = n3;
if(!(#t99 == null))
for (final core::MapEntry<self::test2::N1, self::test2::N1> #t100 in #t99{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>})
- #t98.{core::Map::[]=}(#t100.{core::MapEntry::key}{self::test2::N1}, #t100.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
- #t98.{core::Map::[]=}(let final self::test2::N1 #t101 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t102 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
+ #t98.{core::Map::[]=}{Invariant}(#t100.{core::MapEntry::key}{self::test2::N1}, #t100.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t98.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t101 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t102 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
} =>#t98;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
index 6652f27..20109c7 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
@@ -87,7 +87,7 @@
final core::List<Never> #t3 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t4 = let final Never #t5 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
if(!(#t4 == null))
- #t3.{core::List::addAll}(#t4{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t3;
core::List<dynamic> l3 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:8:16: Error: Can't spread a value with static type 'Never?'.
var l3 = [...n2];
@@ -96,7 +96,7 @@
final core::List<Never> #t6 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t7 = n2;
if(!(#t7 == null))
- #t6.{core::List::addAll}(#t7{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t6.{core::List::addAll}{Invariant}(#t7{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t6;
core::List<dynamic> l5 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:10:16: Error: Can't spread a value with static type 'Null'.
var l5 = [...n3];
@@ -105,46 +105,46 @@
final core::List<Never> #t8 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t9 = n3;
if(!(#t9 == null))
- #t8.{core::List::addAll}(#t9{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t8.{core::List::addAll}{Invariant}(#t9{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t8;
core::Set<Never> s1 = block {
final core::Set<Never> #t10 = col::LinkedHashSet::of<Never>(let final Never #t11 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
- #t10.{core::Set::add}(let final Never #t12 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
+ #t10.{core::Set::add}{Invariant}(let final Never #t12 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
} =>#t10;
core::Set<Never> s2 = block {
final core::Set<Never> #t13 = new col::_CompactLinkedHashSet::•<Never>();
final core::Iterable<Never>? #t14 = let final Never #t15 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
if(!(#t14 == null))
- #t13.{core::Set::addAll}(#t14{core::Iterable<Never>}){(core::Iterable<Never>) → void};
- #t13.{core::Set::add}(let final Never #t16 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
+ #t13.{core::Set::addAll}{Invariant}(#t14{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t13.{core::Set::add}{Invariant}(let final Never #t16 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
} =>#t13;
core::Set<dynamic> s3 = block {
final core::Set<dynamic> #t17 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t17.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
+ #t17.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:14:16: Error: Can't spread a value with static type 'Never?'.
var s3 = {...n2, n1};
^"){(dynamic) → core::bool};
- #t17.{core::Set::add}(let final Never #t18 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
+ #t17.{core::Set::add}{Invariant}(let final Never #t18 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
} =>#t17;
core::Set<Never> s4 = block {
final core::Set<Never> #t19 = new col::_CompactLinkedHashSet::•<Never>();
final core::Iterable<Never>? #t20 = n2;
if(!(#t20 == null))
- #t19.{core::Set::addAll}(#t20{core::Iterable<Never>}){(core::Iterable<Never>) → void};
- #t19.{core::Set::add}(let final Never #t21 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
+ #t19.{core::Set::addAll}{Invariant}(#t20{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t19.{core::Set::add}{Invariant}(let final Never #t21 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
} =>#t19;
core::Set<dynamic> s5 = block {
final core::Set<dynamic> #t22 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t22.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
+ #t22.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:16:16: Error: Can't spread a value with static type 'Null'.
var s5 = {...n3, n1};
^"){(dynamic) → core::bool};
- #t22.{core::Set::add}(let final Never #t23 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
+ #t22.{core::Set::add}{Invariant}(let final Never #t23 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
} =>#t22;
core::Set<Never> s6 = block {
final core::Set<Never> #t24 = new col::_CompactLinkedHashSet::•<Never>();
final core::Iterable<Never>? #t25 = n3;
if(!(#t25 == null))
- #t24.{core::Set::addAll}(#t25{core::Iterable<Never>}){(core::Iterable<Never>) → void};
- #t24.{core::Set::add}(let final Never #t26 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
+ #t24.{core::Set::addAll}{Invariant}(#t25{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t24.{core::Set::add}{Invariant}(let final Never #t26 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never) → core::bool};
} =>#t24;
core::Map<Never, Never> m1 = block {
final core::Map<Never, Never> #t27 = <Never, Never>{};
@@ -152,10 +152,10 @@
core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = (let final Never #t28 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<Never, Never>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<Never, Never> #t29 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<Never, Never>};
- #t27.{core::Map::[]=}(#t29.{core::MapEntry::key}{Never}, #t29.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t27.{core::Map::[]=}{Invariant}(#t29.{core::MapEntry::key}{Never}, #t29.{core::MapEntry::value}{Never}){(Never, Never) → void};
}
}
- #t27.{core::Map::[]=}(let final Never #t30 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t31 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
+ #t27.{core::Map::[]=}{Invariant}(let final Never #t30 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t31 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
} =>#t27;
core::Map<Never, Never> m2 = block {
final core::Map<Never, Never> #t32 = <Never, Never>{};
@@ -164,10 +164,10 @@
core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t33{core::Map<Never, Never>}.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<Never, Never>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<Never, Never> #t35 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<Never, Never>};
- #t32.{core::Map::[]=}(#t35.{core::MapEntry::key}{Never}, #t35.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t32.{core::Map::[]=}{Invariant}(#t35.{core::MapEntry::key}{Never}, #t35.{core::MapEntry::value}{Never}){(Never, Never) → void};
}
}
- #t32.{core::Map::[]=}(let final Never #t36 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t37 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
+ #t32.{core::Map::[]=}{Invariant}(let final Never #t36 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t37 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
} =>#t32;
core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:20:16: Error: Can't spread a value with static type 'Never?'.
var m3 = {...n2, n1: n1};
@@ -179,10 +179,10 @@
core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t41{core::Map<Never, Never>}.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<Never, Never>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<Never, Never> #t42 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<Never, Never>};
- #t40.{core::Map::[]=}(#t42.{core::MapEntry::key}{Never}, #t42.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t40.{core::Map::[]=}{Invariant}(#t42.{core::MapEntry::key}{Never}, #t42.{core::MapEntry::value}{Never}){(Never, Never) → void};
}
}
- #t40.{core::Map::[]=}(let final Never #t43 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t44 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
+ #t40.{core::Map::[]=}{Invariant}(let final Never #t43 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t44 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
} =>#t40;
core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:22:16: Error: Can't spread a value with static type 'Null'.
var m5 = {...n3, n1: n1};
@@ -194,10 +194,10 @@
core::Iterator<core::MapEntry<Never, Never>> :sync-for-iterator = #t48{core::Map<Never, Never>}.{core::Map::entries}{core::Iterable<core::MapEntry<Never, Never>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<Never, Never>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<Never, Never> #t49 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<Never, Never>};
- #t47.{core::Map::[]=}(#t49.{core::MapEntry::key}{Never}, #t49.{core::MapEntry::value}{Never}){(Never, Never) → void};
+ #t47.{core::Map::[]=}{Invariant}(#t49.{core::MapEntry::key}{Never}, #t49.{core::MapEntry::value}{Never}){(Never, Never) → void};
}
}
- #t47.{core::Map::[]=}(let final Never #t50 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t51 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
+ #t47.{core::Map::[]=}{Invariant}(let final Never #t50 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t51 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(Never, Never) → void};
} =>#t47;
}
static method test2<N1 extends Never, N2 extends Never?, N3 extends Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
@@ -208,7 +208,7 @@
final core::List<Never> #t54 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t55 = let final self::test2::N1 #t56 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
if(!(#t55 == null))
- #t54.{core::List::addAll}(#t55{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t54.{core::List::addAll}{Invariant}(#t55{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t54;
core::List<dynamic> l3 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:30:16: Error: Can't spread a value with static type 'N2'.
var l3 = [...n2];
@@ -217,7 +217,7 @@
final core::List<Never> #t57 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t58 = n2;
if(!(#t58 == null))
- #t57.{core::List::addAll}(#t58{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t57.{core::List::addAll}{Invariant}(#t58{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t57;
core::List<dynamic> l5 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:32:16: Error: Can't spread a value with static type 'N3'.
var l5 = [...n3];
@@ -226,46 +226,46 @@
final core::List<Never> #t59 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t60 = n3;
if(!(#t60 == null))
- #t59.{core::List::addAll}(#t60{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t59.{core::List::addAll}{Invariant}(#t60{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t59;
core::Set<self::test2::N1> s1 = block {
final core::Set<self::test2::N1> #t61 = col::LinkedHashSet::of<self::test2::N1>(let final self::test2::N1 #t62 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
- #t61.{core::Set::add}(let final self::test2::N1 #t63 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
+ #t61.{core::Set::add}{Invariant}(let final self::test2::N1 #t63 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
} =>#t61;
core::Set<self::test2::N1> s2 = block {
final core::Set<self::test2::N1> #t64 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
final core::Iterable<self::test2::N1>? #t65 = let final self::test2::N1 #t66 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
if(!(#t65 == null))
- #t64.{core::Set::addAll}(#t65{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
- #t64.{core::Set::add}(let final self::test2::N1 #t67 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
+ #t64.{core::Set::addAll}{Invariant}(#t65{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
+ #t64.{core::Set::add}{Invariant}(let final self::test2::N1 #t67 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
} =>#t64;
core::Set<dynamic> s3 = block {
final core::Set<dynamic> #t68 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t68.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
+ #t68.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:36:16: Error: Can't spread a value with static type 'N2'.
var s3 = {...n2, n1};
^"){(dynamic) → core::bool};
- #t68.{core::Set::add}(let final self::test2::N1 #t69 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
+ #t68.{core::Set::add}{Invariant}(let final self::test2::N1 #t69 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
} =>#t68;
core::Set<self::test2::N1> s4 = block {
final core::Set<self::test2::N1> #t70 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
final core::Iterable<self::test2::N1>? #t71 = n2;
if(!(#t71 == null))
- #t70.{core::Set::addAll}(#t71{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
- #t70.{core::Set::add}(let final self::test2::N1 #t72 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
+ #t70.{core::Set::addAll}{Invariant}(#t71{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
+ #t70.{core::Set::add}{Invariant}(let final self::test2::N1 #t72 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
} =>#t70;
core::Set<dynamic> s5 = block {
final core::Set<dynamic> #t73 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t73.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
+ #t73.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:38:16: Error: Can't spread a value with static type 'N3'.
var s5 = {...n3, n1};
^"){(dynamic) → core::bool};
- #t73.{core::Set::add}(let final self::test2::N1 #t74 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
+ #t73.{core::Set::add}{Invariant}(let final self::test2::N1 #t74 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(dynamic) → core::bool};
} =>#t73;
core::Set<self::test2::N1> s6 = block {
final core::Set<self::test2::N1> #t75 = new col::_CompactLinkedHashSet::•<self::test2::N1>();
final core::Iterable<self::test2::N1>? #t76 = n3;
if(!(#t76 == null))
- #t75.{core::Set::addAll}(#t76{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
- #t75.{core::Set::add}(let final self::test2::N1 #t77 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
+ #t75.{core::Set::addAll}{Invariant}(#t76{core::Iterable<self::test2::N1>}){(core::Iterable<self::test2::N1>) → void};
+ #t75.{core::Set::add}{Invariant}(let final self::test2::N1 #t77 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1) → core::bool};
} =>#t75;
core::Map<self::test2::N1, self::test2::N1> m1 = block {
final core::Map<self::test2::N1, self::test2::N1> #t78 = <self::test2::N1, self::test2::N1>{};
@@ -273,10 +273,10 @@
core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = (let final self::test2::N1 #t79 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")).{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<self::test2::N1, self::test2::N1> #t80 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<self::test2::N1, self::test2::N1>};
- #t78.{core::Map::[]=}(#t80.{core::MapEntry::key}{self::test2::N1}, #t80.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t78.{core::Map::[]=}{Invariant}(#t80.{core::MapEntry::key}{self::test2::N1}, #t80.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
}
}
- #t78.{core::Map::[]=}(let final self::test2::N1 #t81 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t82 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
+ #t78.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t81 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t82 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
} =>#t78;
core::Map<self::test2::N1, self::test2::N1> m2 = block {
final core::Map<self::test2::N1, self::test2::N1> #t83 = <self::test2::N1, self::test2::N1>{};
@@ -285,10 +285,10 @@
core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t84{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<self::test2::N1, self::test2::N1> #t86 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<self::test2::N1, self::test2::N1>};
- #t83.{core::Map::[]=}(#t86.{core::MapEntry::key}{self::test2::N1}, #t86.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t83.{core::Map::[]=}{Invariant}(#t86.{core::MapEntry::key}{self::test2::N1}, #t86.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
}
}
- #t83.{core::Map::[]=}(let final self::test2::N1 #t87 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t88 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
+ #t83.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t87 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t88 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
} =>#t83;
core::Map<dynamic, dynamic> m3 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:42:16: Error: Can't spread a value with static type 'N2'.
var m3 = {...n2, n1: n1};
@@ -300,10 +300,10 @@
core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t92{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<self::test2::N1, self::test2::N1> #t93 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<self::test2::N1, self::test2::N1>};
- #t91.{core::Map::[]=}(#t93.{core::MapEntry::key}{self::test2::N1}, #t93.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t91.{core::Map::[]=}{Invariant}(#t93.{core::MapEntry::key}{self::test2::N1}, #t93.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
}
}
- #t91.{core::Map::[]=}(let final self::test2::N1 #t94 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t95 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
+ #t91.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t94 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t95 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
} =>#t91;
core::Map<dynamic, dynamic> m5 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:44:16: Error: Can't spread a value with static type 'N3'.
var m5 = {...n3, n1: n1};
@@ -315,10 +315,10 @@
core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>> :sync-for-iterator = #t99{core::Map<self::test2::N1, self::test2::N1>}.{core::Map::entries}{core::Iterable<core::MapEntry<self::test2::N1, self::test2::N1>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<self::test2::N1, self::test2::N1>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<self::test2::N1, self::test2::N1> #t100 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<self::test2::N1, self::test2::N1>};
- #t98.{core::Map::[]=}(#t100.{core::MapEntry::key}{self::test2::N1}, #t100.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
+ #t98.{core::Map::[]=}{Invariant}(#t100.{core::MapEntry::key}{self::test2::N1}, #t100.{core::MapEntry::value}{self::test2::N1}){(self::test2::N1, self::test2::N1) → void};
}
}
- #t98.{core::Map::[]=}(let final self::test2::N1 #t101 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t102 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
+ #t98.{core::Map::[]=}{Invariant}(let final self::test2::N1 #t101 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final self::test2::N1 #t102 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.")){(self::test2::N1, self::test2::N1) → void};
} =>#t98;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect
index 2c388f4..097a586 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect
@@ -58,85 +58,85 @@
static field core::Map<dynamic, dynamic> map1 = block {
final core::Map<dynamic, dynamic> #t1 = <dynamic, dynamic>{};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t1.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:16:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t1.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:16:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...nullableMap, // error
^", null){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
for (final core::MapEntry<dynamic, dynamic> #t2 in (self::dynamicMap as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t1.{core::Map::[]=}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t1.{core::Map::[]=}{Invariant}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
for (final core::MapEntry<dynamic, dynamic> #t3 in self::nullableMap!.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t1.{core::Map::[]=}(#t3.{core::MapEntry::key}{dynamic}, #t3.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t1.{core::Map::[]=}{Invariant}(#t3.{core::MapEntry::key}{dynamic}, #t3.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
} =>#t1;
static field core::Set<dynamic> set1 = block {
final core::Set<dynamic> #t4 = col::LinkedHashSet::•<dynamic>();
- #t4.{core::Set::add}(0){(dynamic) → core::bool};
+ #t4.{core::Set::add}{Invariant}(0){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t4.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:23:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t4.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:23:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...nullableList, // error
^"){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t4.{core::Set::addAll}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+ #t4.{core::Set::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t4.{core::Set::addAll}(self::nullableList!){(core::Iterable<dynamic>) → void};
+ #t4.{core::Set::addAll}{Invariant}(self::nullableList!){(core::Iterable<dynamic>) → void};
} =>#t4;
static field core::List<dynamic> list1 = block {
final core::List<dynamic> #t5 = <dynamic>[];
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t5.{core::List::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t5.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...nullableList, // error
^"){(dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t5.{core::List::addAll}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+ #t5.{core::List::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t5.{core::List::addAll}(self::nullableList!){(core::Iterable<dynamic>) → void};
+ #t5.{core::List::addAll}{Invariant}(self::nullableList!){(core::Iterable<dynamic>) → void};
} =>#t5;
static method testMap<X extends dynamic, Y extends core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
core::Map<dynamic, dynamic> map2 = block {
final core::Map<dynamic, dynamic> #t6 = <dynamic, dynamic>{};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t6.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry. Expected 'dynamic' or a Map.
+ #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry. Expected 'dynamic' or a Map.
if (i > 0) ...x, // error
^", null){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t6.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...y, // error
^", null){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
for (final core::MapEntry<dynamic, dynamic> #t7 in z.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t6.{core::Map::[]=}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t6.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
for (final core::MapEntry<dynamic, dynamic> #t8 in y!.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t6.{core::Map::[]=}(#t8.{core::MapEntry::key}{dynamic}, #t8.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t6.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}{dynamic}, #t8.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
} =>#t6;
}
static method testIterables<X extends dynamic, Y extends core::List<core::int>?, Z extends core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
core::Set<dynamic> set2 = block {
final core::Set<dynamic> #t9 = col::LinkedHashSet::•<dynamic>();
- #t9.{core::Set::add}(0){(dynamic) → core::bool};
+ #t9.{core::Set::add}{Invariant}(0){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t9.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
+ #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
if (i > 0) ...x, // error
^"){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t9.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...y, // error
^"){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t9.{core::Set::addAll}(z){(core::Iterable<dynamic>) → void};
+ #t9.{core::Set::addAll}{Invariant}(z){(core::Iterable<dynamic>) → void};
} =>#t9;
core::List<dynamic> list2 = block {
final core::List<dynamic> #t10 = <dynamic>[];
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t10.{core::List::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
+ #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
if (i > 0) ...x, // error
^"){(dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t10.{core::List::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...y, // error
^"){(dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t10.{core::List::addAll}(z){(core::Iterable<dynamic>) → void};
+ #t10.{core::List::addAll}{Invariant}(z){(core::Iterable<dynamic>) → void};
} =>#t10;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
index bc28998..ed94348 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
@@ -58,70 +58,70 @@
static field core::Map<dynamic, dynamic> map1 = block {
final core::Map<dynamic, dynamic> #t1 = <dynamic, dynamic>{};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t1.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:16:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t1.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:16:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...nullableMap, // error
^", null){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool}) {
core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = (self::dynamicMap as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic> #t2 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t1.{core::Map::[]=}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t1.{core::Map::[]=}{Invariant}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
}
}
if(self::i.{core::num::>}(0){(core::num) → core::bool}) {
core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = self::nullableMap!.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic> #t3 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t1.{core::Map::[]=}(#t3.{core::MapEntry::key}{dynamic}, #t3.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t1.{core::Map::[]=}{Invariant}(#t3.{core::MapEntry::key}{dynamic}, #t3.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
}
}
} =>#t1;
static field core::Set<dynamic> set1 = block {
final core::Set<dynamic> #t4 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t4.{core::Set::add}(0){(dynamic) → core::bool};
+ #t4.{core::Set::add}{Invariant}(0){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t4.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:23:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t4.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:23:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...nullableList, // error
^"){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t4.{core::Set::addAll}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+ #t4.{core::Set::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t4.{core::Set::addAll}(self::nullableList!){(core::Iterable<dynamic>) → void};
+ #t4.{core::Set::addAll}{Invariant}(self::nullableList!){(core::Iterable<dynamic>) → void};
} =>#t4;
static field core::List<dynamic> list1 = block {
final core::List<dynamic> #t5 = core::_GrowableList::•<dynamic>(0);
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t5.{core::List::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t5.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...nullableList, // error
^"){(dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t5.{core::List::addAll}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+ #t5.{core::List::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t5.{core::List::addAll}(self::nullableList!){(core::Iterable<dynamic>) → void};
+ #t5.{core::List::addAll}{Invariant}(self::nullableList!){(core::Iterable<dynamic>) → void};
} =>#t5;
static method testMap<X extends dynamic, Y extends core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
core::Map<dynamic, dynamic> map2 = block {
final core::Map<dynamic, dynamic> #t6 = <dynamic, dynamic>{};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t6.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry. Expected 'dynamic' or a Map.
+ #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry. Expected 'dynamic' or a Map.
if (i > 0) ...x, // error
^", null){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t6.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...y, // error
^", null){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool}) {
core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = z.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic> #t7 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t6.{core::Map::[]=}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t6.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
}
}
if(self::i.{core::num::>}(0){(core::num) → core::bool}) {
core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = y!.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic> #t8 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t6.{core::Map::[]=}(#t8.{core::MapEntry::key}{dynamic}, #t8.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t6.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}{dynamic}, #t8.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
}
}
} =>#t6;
@@ -129,30 +129,30 @@
static method testIterables<X extends dynamic, Y extends core::List<core::int>?, Z extends core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
core::Set<dynamic> set2 = block {
final core::Set<dynamic> #t9 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t9.{core::Set::add}(0){(dynamic) → core::bool};
+ #t9.{core::Set::add}{Invariant}(0){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t9.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
+ #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
if (i > 0) ...x, // error
^"){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t9.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...y, // error
^"){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t9.{core::Set::addAll}(z){(core::Iterable<dynamic>) → void};
+ #t9.{core::Set::addAll}{Invariant}(z){(core::Iterable<dynamic>) → void};
} =>#t9;
core::List<dynamic> list2 = block {
final core::List<dynamic> #t10 = core::_GrowableList::•<dynamic>(0);
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t10.{core::List::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
+ #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
if (i > 0) ...x, // error
^"){(dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t10.{core::List::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...y, // error
^"){(dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t10.{core::List::addAll}(z){(core::Iterable<dynamic>) → void};
+ #t10.{core::List::addAll}{Invariant}(z){(core::Iterable<dynamic>) → void};
} =>#t10;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect
index 2c388f4..097a586 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect
@@ -58,85 +58,85 @@
static field core::Map<dynamic, dynamic> map1 = block {
final core::Map<dynamic, dynamic> #t1 = <dynamic, dynamic>{};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t1.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:16:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t1.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:16:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...nullableMap, // error
^", null){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
for (final core::MapEntry<dynamic, dynamic> #t2 in (self::dynamicMap as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t1.{core::Map::[]=}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t1.{core::Map::[]=}{Invariant}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
for (final core::MapEntry<dynamic, dynamic> #t3 in self::nullableMap!.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t1.{core::Map::[]=}(#t3.{core::MapEntry::key}{dynamic}, #t3.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t1.{core::Map::[]=}{Invariant}(#t3.{core::MapEntry::key}{dynamic}, #t3.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
} =>#t1;
static field core::Set<dynamic> set1 = block {
final core::Set<dynamic> #t4 = col::LinkedHashSet::•<dynamic>();
- #t4.{core::Set::add}(0){(dynamic) → core::bool};
+ #t4.{core::Set::add}{Invariant}(0){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t4.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:23:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t4.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:23:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...nullableList, // error
^"){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t4.{core::Set::addAll}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+ #t4.{core::Set::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t4.{core::Set::addAll}(self::nullableList!){(core::Iterable<dynamic>) → void};
+ #t4.{core::Set::addAll}{Invariant}(self::nullableList!){(core::Iterable<dynamic>) → void};
} =>#t4;
static field core::List<dynamic> list1 = block {
final core::List<dynamic> #t5 = <dynamic>[];
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t5.{core::List::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t5.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...nullableList, // error
^"){(dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t5.{core::List::addAll}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+ #t5.{core::List::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t5.{core::List::addAll}(self::nullableList!){(core::Iterable<dynamic>) → void};
+ #t5.{core::List::addAll}{Invariant}(self::nullableList!){(core::Iterable<dynamic>) → void};
} =>#t5;
static method testMap<X extends dynamic, Y extends core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
core::Map<dynamic, dynamic> map2 = block {
final core::Map<dynamic, dynamic> #t6 = <dynamic, dynamic>{};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t6.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry. Expected 'dynamic' or a Map.
+ #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry. Expected 'dynamic' or a Map.
if (i > 0) ...x, // error
^", null){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t6.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...y, // error
^", null){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
for (final core::MapEntry<dynamic, dynamic> #t7 in z.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t6.{core::Map::[]=}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t6.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
for (final core::MapEntry<dynamic, dynamic> #t8 in y!.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t6.{core::Map::[]=}(#t8.{core::MapEntry::key}{dynamic}, #t8.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t6.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}{dynamic}, #t8.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
} =>#t6;
}
static method testIterables<X extends dynamic, Y extends core::List<core::int>?, Z extends core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
core::Set<dynamic> set2 = block {
final core::Set<dynamic> #t9 = col::LinkedHashSet::•<dynamic>();
- #t9.{core::Set::add}(0){(dynamic) → core::bool};
+ #t9.{core::Set::add}{Invariant}(0){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t9.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
+ #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
if (i > 0) ...x, // error
^"){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t9.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...y, // error
^"){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t9.{core::Set::addAll}(z){(core::Iterable<dynamic>) → void};
+ #t9.{core::Set::addAll}{Invariant}(z){(core::Iterable<dynamic>) → void};
} =>#t9;
core::List<dynamic> list2 = block {
final core::List<dynamic> #t10 = <dynamic>[];
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t10.{core::List::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
+ #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
if (i > 0) ...x, // error
^"){(dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t10.{core::List::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...y, // error
^"){(dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t10.{core::List::addAll}(z){(core::Iterable<dynamic>) → void};
+ #t10.{core::List::addAll}{Invariant}(z){(core::Iterable<dynamic>) → void};
} =>#t10;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
index bc28998..ed94348 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
@@ -58,70 +58,70 @@
static field core::Map<dynamic, dynamic> map1 = block {
final core::Map<dynamic, dynamic> #t1 = <dynamic, dynamic>{};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t1.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:16:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t1.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:16:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...nullableMap, // error
^", null){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool}) {
core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = (self::dynamicMap as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<dynamic, dynamic>).{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic> #t2 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t1.{core::Map::[]=}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t1.{core::Map::[]=}{Invariant}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
}
}
if(self::i.{core::num::>}(0){(core::num) → core::bool}) {
core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = self::nullableMap!.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic> #t3 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t1.{core::Map::[]=}(#t3.{core::MapEntry::key}{dynamic}, #t3.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t1.{core::Map::[]=}{Invariant}(#t3.{core::MapEntry::key}{dynamic}, #t3.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
}
}
} =>#t1;
static field core::Set<dynamic> set1 = block {
final core::Set<dynamic> #t4 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t4.{core::Set::add}(0){(dynamic) → core::bool};
+ #t4.{core::Set::add}{Invariant}(0){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t4.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:23:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t4.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:23:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...nullableList, // error
^"){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t4.{core::Set::addAll}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+ #t4.{core::Set::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t4.{core::Set::addAll}(self::nullableList!){(core::Iterable<dynamic>) → void};
+ #t4.{core::Set::addAll}{Invariant}(self::nullableList!){(core::Iterable<dynamic>) → void};
} =>#t4;
static field core::List<dynamic> list1 = block {
final core::List<dynamic> #t5 = core::_GrowableList::•<dynamic>(0);
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t5.{core::List::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t5.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...nullableList, // error
^"){(dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t5.{core::List::addAll}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
+ #t5.{core::List::addAll}{Invariant}(self::dynamicList as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>){(core::Iterable<dynamic>) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t5.{core::List::addAll}(self::nullableList!){(core::Iterable<dynamic>) → void};
+ #t5.{core::List::addAll}{Invariant}(self::nullableList!){(core::Iterable<dynamic>) → void};
} =>#t5;
static method testMap<X extends dynamic, Y extends core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
core::Map<dynamic, dynamic> map2 = block {
final core::Map<dynamic, dynamic> #t6 = <dynamic, dynamic>{};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t6.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry. Expected 'dynamic' or a Map.
+ #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:37:19: Error: Unexpected type 'X' of a map spread entry. Expected 'dynamic' or a Map.
if (i > 0) ...x, // error
^", null){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t6.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t6.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:38:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...y, // error
^", null){(dynamic, dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool}) {
core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = z.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic> #t7 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t6.{core::Map::[]=}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t6.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
}
}
if(self::i.{core::num::>}(0){(core::num) → core::bool}) {
core::Iterator<core::MapEntry<dynamic, dynamic>> :sync-for-iterator = y!.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic> #t8 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t6.{core::Map::[]=}(#t8.{core::MapEntry::key}{dynamic}, #t8.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
+ #t6.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}{dynamic}, #t8.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) → void};
}
}
} =>#t6;
@@ -129,30 +129,30 @@
static method testIterables<X extends dynamic, Y extends core::List<core::int>?, Z extends core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
core::Set<dynamic> set2 = block {
final core::Set<dynamic> #t9 = new col::_CompactLinkedHashSet::•<dynamic>();
- #t9.{core::Set::add}(0){(dynamic) → core::bool};
+ #t9.{core::Set::add}{Invariant}(0){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t9.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
+ #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:48:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
if (i > 0) ...x, // error
^"){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t9.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t9.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:49:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...y, // error
^"){(dynamic) → core::bool};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t9.{core::Set::addAll}(z){(core::Iterable<dynamic>) → void};
+ #t9.{core::Set::addAll}{Invariant}(z){(core::Iterable<dynamic>) → void};
} =>#t9;
core::List<dynamic> list2 = block {
final core::List<dynamic> #t10 = core::_GrowableList::•<dynamic>(0);
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t10.{core::List::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
+ #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread. Expected 'dynamic' or an Iterable.
if (i > 0) ...x, // error
^"){(dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t10.{core::List::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:54:19: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
if (i > 0) ...y, // error
^"){(dynamic) → void};
if(self::i.{core::num::>}(0){(core::num) → core::bool})
- #t10.{core::List::addAll}(z){(core::Iterable<dynamic>) → void};
+ #t10.{core::List::addAll}{Invariant}(z){(core::Iterable<dynamic>) → void};
} =>#t10;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43455.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43455.dart.strong.expect
index bdb5c97..e41afed 100644
--- a/pkg/front_end/testcases/nnbd/issue43455.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43455.dart.strong.expect
@@ -10,23 +10,23 @@
method test(generic-covariant-impl self::C::X% x, generic-covariant-impl self::C::Y? y) → dynamic {
core::Set<core::Object?> v = block {
final core::Set<core::Object?> #t1 = col::LinkedHashSet::•<core::Object?>();
- #t1.{core::Set::add}(x){(core::Object?) → core::bool};
- #t1.{core::Set::add}(42){(core::Object?) → core::bool};
+ #t1.{core::Set::add}{Invariant}(x){(core::Object?) → core::bool};
+ #t1.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
} =>#t1;
core::Set<core::Object?> w = block {
final core::Set<core::Object?> #t2 = col::LinkedHashSet::•<core::Object?>();
- #t2.{core::Set::add}(42){(core::Object?) → core::bool};
- #t2.{core::Set::add}(x){(core::Object?) → core::bool};
+ #t2.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
+ #t2.{core::Set::add}{Invariant}(x){(core::Object?) → core::bool};
} =>#t2;
core::Set<core::Object?> p = block {
final core::Set<core::Object?> #t3 = col::LinkedHashSet::•<core::Object?>();
- #t3.{core::Set::add}(y){(core::Object?) → core::bool};
- #t3.{core::Set::add}(42){(core::Object?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(y){(core::Object?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
} =>#t3;
core::Set<core::Object?> q = block {
final core::Set<core::Object?> #t4 = col::LinkedHashSet::•<core::Object?>();
- #t4.{core::Set::add}(42){(core::Object?) → core::bool};
- #t4.{core::Set::add}(y){(core::Object?) → core::bool};
+ #t4.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
+ #t4.{core::Set::add}{Invariant}(y){(core::Object?) → core::bool};
} =>#t4;
self::assertRightSubtype(v);
self::assertLeftSubtype<core::Set<core::Object?>>(v);
@@ -39,13 +39,13 @@
if(x is{ForNonNullableByDefault} core::Object?) {
core::Set<core::Object?> v = block {
final core::Set<core::Object?> #t5 = col::LinkedHashSet::•<core::Object?>();
- #t5.{core::Set::add}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
- #t5.{core::Set::add}(42){(core::Object?) → core::bool};
+ #t5.{core::Set::add}{Invariant}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
+ #t5.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
} =>#t5;
core::Set<core::Object?> w = block {
final core::Set<core::Object?> #t6 = col::LinkedHashSet::•<core::Object?>();
- #t6.{core::Set::add}(42){(core::Object?) → core::bool};
- #t6.{core::Set::add}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
+ #t6.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
+ #t6.{core::Set::add}{Invariant}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
} =>#t6;
self::assertRightSubtype(v);
self::assertLeftSubtype<core::Set<core::Object?>>(v);
diff --git a/pkg/front_end/testcases/nnbd/issue43455.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43455.dart.strong.transformed.expect
index 75bcc24..ba81fbc 100644
--- a/pkg/front_end/testcases/nnbd/issue43455.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43455.dart.strong.transformed.expect
@@ -10,23 +10,23 @@
method test(generic-covariant-impl self::C::X% x, generic-covariant-impl self::C::Y? y) → dynamic {
core::Set<core::Object?> v = block {
final core::Set<core::Object?> #t1 = new col::_CompactLinkedHashSet::•<core::Object?>();
- #t1.{core::Set::add}(x){(core::Object?) → core::bool};
- #t1.{core::Set::add}(42){(core::Object?) → core::bool};
+ #t1.{core::Set::add}{Invariant}(x){(core::Object?) → core::bool};
+ #t1.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
} =>#t1;
core::Set<core::Object?> w = block {
final core::Set<core::Object?> #t2 = new col::_CompactLinkedHashSet::•<core::Object?>();
- #t2.{core::Set::add}(42){(core::Object?) → core::bool};
- #t2.{core::Set::add}(x){(core::Object?) → core::bool};
+ #t2.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
+ #t2.{core::Set::add}{Invariant}(x){(core::Object?) → core::bool};
} =>#t2;
core::Set<core::Object?> p = block {
final core::Set<core::Object?> #t3 = new col::_CompactLinkedHashSet::•<core::Object?>();
- #t3.{core::Set::add}(y){(core::Object?) → core::bool};
- #t3.{core::Set::add}(42){(core::Object?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(y){(core::Object?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
} =>#t3;
core::Set<core::Object?> q = block {
final core::Set<core::Object?> #t4 = new col::_CompactLinkedHashSet::•<core::Object?>();
- #t4.{core::Set::add}(42){(core::Object?) → core::bool};
- #t4.{core::Set::add}(y){(core::Object?) → core::bool};
+ #t4.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
+ #t4.{core::Set::add}{Invariant}(y){(core::Object?) → core::bool};
} =>#t4;
self::assertRightSubtype(v);
self::assertLeftSubtype<core::Set<core::Object?>>(v);
@@ -39,13 +39,13 @@
if(x is{ForNonNullableByDefault} core::Object?) {
core::Set<core::Object?> v = block {
final core::Set<core::Object?> #t5 = new col::_CompactLinkedHashSet::•<core::Object?>();
- #t5.{core::Set::add}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
- #t5.{core::Set::add}(42){(core::Object?) → core::bool};
+ #t5.{core::Set::add}{Invariant}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
+ #t5.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
} =>#t5;
core::Set<core::Object?> w = block {
final core::Set<core::Object?> #t6 = new col::_CompactLinkedHashSet::•<core::Object?>();
- #t6.{core::Set::add}(42){(core::Object?) → core::bool};
- #t6.{core::Set::add}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
+ #t6.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
+ #t6.{core::Set::add}{Invariant}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
} =>#t6;
self::assertRightSubtype(v);
self::assertLeftSubtype<core::Set<core::Object?>>(v);
diff --git a/pkg/front_end/testcases/nnbd/issue43455.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43455.dart.weak.expect
index bdb5c97..e41afed 100644
--- a/pkg/front_end/testcases/nnbd/issue43455.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43455.dart.weak.expect
@@ -10,23 +10,23 @@
method test(generic-covariant-impl self::C::X% x, generic-covariant-impl self::C::Y? y) → dynamic {
core::Set<core::Object?> v = block {
final core::Set<core::Object?> #t1 = col::LinkedHashSet::•<core::Object?>();
- #t1.{core::Set::add}(x){(core::Object?) → core::bool};
- #t1.{core::Set::add}(42){(core::Object?) → core::bool};
+ #t1.{core::Set::add}{Invariant}(x){(core::Object?) → core::bool};
+ #t1.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
} =>#t1;
core::Set<core::Object?> w = block {
final core::Set<core::Object?> #t2 = col::LinkedHashSet::•<core::Object?>();
- #t2.{core::Set::add}(42){(core::Object?) → core::bool};
- #t2.{core::Set::add}(x){(core::Object?) → core::bool};
+ #t2.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
+ #t2.{core::Set::add}{Invariant}(x){(core::Object?) → core::bool};
} =>#t2;
core::Set<core::Object?> p = block {
final core::Set<core::Object?> #t3 = col::LinkedHashSet::•<core::Object?>();
- #t3.{core::Set::add}(y){(core::Object?) → core::bool};
- #t3.{core::Set::add}(42){(core::Object?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(y){(core::Object?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
} =>#t3;
core::Set<core::Object?> q = block {
final core::Set<core::Object?> #t4 = col::LinkedHashSet::•<core::Object?>();
- #t4.{core::Set::add}(42){(core::Object?) → core::bool};
- #t4.{core::Set::add}(y){(core::Object?) → core::bool};
+ #t4.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
+ #t4.{core::Set::add}{Invariant}(y){(core::Object?) → core::bool};
} =>#t4;
self::assertRightSubtype(v);
self::assertLeftSubtype<core::Set<core::Object?>>(v);
@@ -39,13 +39,13 @@
if(x is{ForNonNullableByDefault} core::Object?) {
core::Set<core::Object?> v = block {
final core::Set<core::Object?> #t5 = col::LinkedHashSet::•<core::Object?>();
- #t5.{core::Set::add}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
- #t5.{core::Set::add}(42){(core::Object?) → core::bool};
+ #t5.{core::Set::add}{Invariant}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
+ #t5.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
} =>#t5;
core::Set<core::Object?> w = block {
final core::Set<core::Object?> #t6 = col::LinkedHashSet::•<core::Object?>();
- #t6.{core::Set::add}(42){(core::Object?) → core::bool};
- #t6.{core::Set::add}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
+ #t6.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
+ #t6.{core::Set::add}{Invariant}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
} =>#t6;
self::assertRightSubtype(v);
self::assertLeftSubtype<core::Set<core::Object?>>(v);
diff --git a/pkg/front_end/testcases/nnbd/issue43455.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43455.dart.weak.transformed.expect
index 75bcc24..ba81fbc 100644
--- a/pkg/front_end/testcases/nnbd/issue43455.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43455.dart.weak.transformed.expect
@@ -10,23 +10,23 @@
method test(generic-covariant-impl self::C::X% x, generic-covariant-impl self::C::Y? y) → dynamic {
core::Set<core::Object?> v = block {
final core::Set<core::Object?> #t1 = new col::_CompactLinkedHashSet::•<core::Object?>();
- #t1.{core::Set::add}(x){(core::Object?) → core::bool};
- #t1.{core::Set::add}(42){(core::Object?) → core::bool};
+ #t1.{core::Set::add}{Invariant}(x){(core::Object?) → core::bool};
+ #t1.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
} =>#t1;
core::Set<core::Object?> w = block {
final core::Set<core::Object?> #t2 = new col::_CompactLinkedHashSet::•<core::Object?>();
- #t2.{core::Set::add}(42){(core::Object?) → core::bool};
- #t2.{core::Set::add}(x){(core::Object?) → core::bool};
+ #t2.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
+ #t2.{core::Set::add}{Invariant}(x){(core::Object?) → core::bool};
} =>#t2;
core::Set<core::Object?> p = block {
final core::Set<core::Object?> #t3 = new col::_CompactLinkedHashSet::•<core::Object?>();
- #t3.{core::Set::add}(y){(core::Object?) → core::bool};
- #t3.{core::Set::add}(42){(core::Object?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(y){(core::Object?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
} =>#t3;
core::Set<core::Object?> q = block {
final core::Set<core::Object?> #t4 = new col::_CompactLinkedHashSet::•<core::Object?>();
- #t4.{core::Set::add}(42){(core::Object?) → core::bool};
- #t4.{core::Set::add}(y){(core::Object?) → core::bool};
+ #t4.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
+ #t4.{core::Set::add}{Invariant}(y){(core::Object?) → core::bool};
} =>#t4;
self::assertRightSubtype(v);
self::assertLeftSubtype<core::Set<core::Object?>>(v);
@@ -39,13 +39,13 @@
if(x is{ForNonNullableByDefault} core::Object?) {
core::Set<core::Object?> v = block {
final core::Set<core::Object?> #t5 = new col::_CompactLinkedHashSet::•<core::Object?>();
- #t5.{core::Set::add}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
- #t5.{core::Set::add}(42){(core::Object?) → core::bool};
+ #t5.{core::Set::add}{Invariant}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
+ #t5.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
} =>#t5;
core::Set<core::Object?> w = block {
final core::Set<core::Object?> #t6 = new col::_CompactLinkedHashSet::•<core::Object?>();
- #t6.{core::Set::add}(42){(core::Object?) → core::bool};
- #t6.{core::Set::add}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
+ #t6.{core::Set::add}{Invariant}(42){(core::Object?) → core::bool};
+ #t6.{core::Set::add}{Invariant}(x{self::C::X% & core::Object? /* '%' & '?' = '%' */}){(core::Object?) → core::bool};
} =>#t6;
self::assertRightSubtype(v);
self::assertLeftSubtype<core::Set<core::Object?>>(v);
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.strong.expect
index a6b4f4e..e415041 100644
--- a/pkg/front_end/testcases/nnbd/issue43495.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.strong.expect
@@ -175,7 +175,7 @@
{...a}, // Error.
^") {
final core::int #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int;
- #t1.{core::Set::add}(#t3){(core::int) → core::bool};
+ #t1.{core::Set::add}{Invariant}(#t3){(core::int) → core::bool};
}
} =>#t1, block {
final core::Set<core::int> #t4 = col::LinkedHashSet::•<core::int>();
@@ -183,7 +183,7 @@
{...b}, // Error.
^") {
final core::int #t6 = #t5 as{TypeError,ForNonNullableByDefault} core::int;
- #t4.{core::Set::add}(#t6){(core::int) → core::bool};
+ #t4.{core::Set::add}{Invariant}(#t6){(core::int) → core::bool};
}
} =>#t4, block {
final core::Set<core::int> #t7 = col::LinkedHashSet::•<core::int>();
@@ -191,7 +191,7 @@
{...c}, // Error.
^") {
final core::int #t9 = #t8 as{TypeError,ForNonNullableByDefault} core::int;
- #t7.{core::Set::add}(#t9){(core::int) → core::bool};
+ #t7.{core::Set::add}{Invariant}(#t9){(core::int) → core::bool};
}
} =>#t7, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:11:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{...d}, // Error.
@@ -200,7 +200,7 @@
<int, int>{...a}, // Error.
^": null}, block {
final core::Set<core::int> #t10 = col::LinkedHashSet::•<core::int>();
- #t10.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread. Expected 'dynamic' or an Iterable.
+ #t10.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{...d}, // Error.
^"){(core::int) → core::bool};
@@ -211,7 +211,7 @@
{if (condition) ...a}, // Error.
^") {
final core::int #t13 = #t12 as{TypeError,ForNonNullableByDefault} core::int;
- #t11.{core::Set::add}(#t13){(core::int) → core::bool};
+ #t11.{core::Set::add}{Invariant}(#t13){(core::int) → core::bool};
}
} =>#t11, block {
final core::Set<core::int> #t14 = col::LinkedHashSet::•<core::int>();
@@ -220,7 +220,7 @@
{if (condition) ...b}, // Error.
^") {
final core::int #t16 = #t15 as{TypeError,ForNonNullableByDefault} core::int;
- #t14.{core::Set::add}(#t16){(core::int) → core::bool};
+ #t14.{core::Set::add}{Invariant}(#t16){(core::int) → core::bool};
}
} =>#t14, block {
final core::Set<core::int> #t17 = col::LinkedHashSet::•<core::int>();
@@ -229,12 +229,12 @@
{if (condition) ...c}, // Error.
^") {
final core::int #t19 = #t18 as{TypeError,ForNonNullableByDefault} core::int;
- #t17.{core::Set::add}(#t19){(core::int) → core::bool};
+ #t17.{core::Set::add}{Invariant}(#t19){(core::int) → core::bool};
}
} =>#t17, block {
final core::Map<core::int, core::int> #t20 = <core::int, core::int>{};
if(condition)
- #t20.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t20.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{if (condition) ...d}, // Error.
^", null){(core::int, core::int) → void};
} =>#t20, block {
@@ -244,7 +244,7 @@
{for (dynamic e in iterable) ...a}, // Error.
^") {
final core::int #t23 = #t22 as{TypeError,ForNonNullableByDefault} core::int;
- #t21.{core::Set::add}(#t23){(core::int) → core::bool};
+ #t21.{core::Set::add}{Invariant}(#t23){(core::int) → core::bool};
}
} =>#t21, block {
final core::Set<core::int> #t24 = col::LinkedHashSet::•<core::int>();
@@ -253,7 +253,7 @@
{for (dynamic e in iterable) ...b}, // Error.
^") {
final core::int #t26 = #t25 as{TypeError,ForNonNullableByDefault} core::int;
- #t24.{core::Set::add}(#t26){(core::int) → core::bool};
+ #t24.{core::Set::add}{Invariant}(#t26){(core::int) → core::bool};
}
} =>#t24, block {
final core::Set<core::int> #t27 = col::LinkedHashSet::•<core::int>();
@@ -262,12 +262,12 @@
{for (dynamic e in iterable) ...c}, // Error.
^") {
final core::int #t29 = #t28 as{TypeError,ForNonNullableByDefault} core::int;
- #t27.{core::Set::add}(#t29){(core::int) → core::bool};
+ #t27.{core::Set::add}{Invariant}(#t29){(core::int) → core::bool};
}
} =>#t27, block {
final core::Map<core::int, core::int> #t30 = <core::int, core::int>{};
for (dynamic e in iterable)
- #t30.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t30.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (dynamic e in iterable) ...d}, // Error.
^", null){(core::int, core::int) → void};
} =>#t30, block {
@@ -277,7 +277,7 @@
{for (int i = 0; i < 42; ++i) ...a}, // Error.
^") {
final core::int #t33 = #t32 as{TypeError,ForNonNullableByDefault} core::int;
- #t31.{core::Set::add}(#t33){(core::int) → core::bool};
+ #t31.{core::Set::add}{Invariant}(#t33){(core::int) → core::bool};
}
} =>#t31, block {
final core::Set<core::int> #t34 = col::LinkedHashSet::•<core::int>();
@@ -286,7 +286,7 @@
{for (int i = 0; i < 42; ++i) ...b}, // Error.
^") {
final core::int #t36 = #t35 as{TypeError,ForNonNullableByDefault} core::int;
- #t34.{core::Set::add}(#t36){(core::int) → core::bool};
+ #t34.{core::Set::add}{Invariant}(#t36){(core::int) → core::bool};
}
} =>#t34, block {
final core::Set<core::int> #t37 = col::LinkedHashSet::•<core::int>();
@@ -295,12 +295,12 @@
{for (int i = 0; i < 42; ++i) ...c}, // Error.
^") {
final core::int #t39 = #t38 as{TypeError,ForNonNullableByDefault} core::int;
- #t37.{core::Set::add}(#t39){(core::int) → core::bool};
+ #t37.{core::Set::add}{Invariant}(#t39){(core::int) → core::bool};
}
} =>#t37, block {
final core::Map<core::int, core::int> #t40 = <core::int, core::int>{};
for (core::int i = 0; i.{core::num::<}(42){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t40.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t40.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (int i = 0; i < 42; ++i) ...d}, // Error.
^", null){(core::int, core::int) → void};
} =>#t40, block {
@@ -309,7 +309,7 @@
if(!(#t42 == null))
for (final dynamic #t43 in #t42{core::Iterable<dynamic>}) {
final core::int #t44 = #t43 as{TypeError,ForNonNullableByDefault} core::int;
- #t41.{core::Set::add}(#t44){(core::int) → core::bool};
+ #t41.{core::Set::add}{Invariant}(#t44){(core::int) → core::bool};
}
} =>#t41, block {
final core::Set<core::int> #t45 = col::LinkedHashSet::•<core::int>();
@@ -317,7 +317,7 @@
if(!(#t46 == null))
for (final dynamic #t47 in #t46{core::Iterable<dynamic>}) {
final core::int #t48 = #t47 as{TypeError,ForNonNullableByDefault} core::int;
- #t45.{core::Set::add}(#t48){(core::int) → core::bool};
+ #t45.{core::Set::add}{Invariant}(#t48){(core::int) → core::bool};
}
} =>#t45, block {
final core::Set<core::int> #t49 = col::LinkedHashSet::•<core::int>();
@@ -325,14 +325,14 @@
if(!(#t50 == null))
for (final dynamic #t51 in #t50{core::Iterable<dynamic>}) {
final core::int #t52 = #t51 as{TypeError,ForNonNullableByDefault} core::int;
- #t49.{core::Set::add}(#t52){(core::int) → core::bool};
+ #t49.{core::Set::add}{Invariant}(#t52){(core::int) → core::bool};
}
} =>#t49, block {
final core::Map<core::int, core::int> #t53 = <core::int, core::int>{};
final core::Map<core::int, core::int>? #t54 = d;
if(!(#t54 == null))
for (final core::MapEntry<core::int, core::int> #t55 in #t54{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t53.{core::Map::[]=}(#t55.{core::MapEntry::key}{core::int}, #t55.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t53.{core::Map::[]=}{Invariant}(#t55.{core::MapEntry::key}{core::int}, #t55.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
} =>#t53, block {
final core::Set<core::int> #t56 = col::LinkedHashSet::•<core::int>();
if(condition) {
@@ -340,7 +340,7 @@
if(!(#t57 == null))
for (final dynamic #t58 in #t57{core::Iterable<dynamic>}) {
final core::int #t59 = #t58 as{TypeError,ForNonNullableByDefault} core::int;
- #t56.{core::Set::add}(#t59){(core::int) → core::bool};
+ #t56.{core::Set::add}{Invariant}(#t59){(core::int) → core::bool};
}
}
} =>#t56, block {
@@ -350,7 +350,7 @@
if(!(#t61 == null))
for (final dynamic #t62 in #t61{core::Iterable<dynamic>}) {
final core::int #t63 = #t62 as{TypeError,ForNonNullableByDefault} core::int;
- #t60.{core::Set::add}(#t63){(core::int) → core::bool};
+ #t60.{core::Set::add}{Invariant}(#t63){(core::int) → core::bool};
}
}
} =>#t60, block {
@@ -360,7 +360,7 @@
if(!(#t65 == null))
for (final dynamic #t66 in #t65{core::Iterable<dynamic>}) {
final core::int #t67 = #t66 as{TypeError,ForNonNullableByDefault} core::int;
- #t64.{core::Set::add}(#t67){(core::int) → core::bool};
+ #t64.{core::Set::add}{Invariant}(#t67){(core::int) → core::bool};
}
}
} =>#t64, block {
@@ -369,7 +369,7 @@
final core::Map<core::int, core::int>? #t69 = d;
if(!(#t69 == null))
for (final core::MapEntry<core::int, core::int> #t70 in #t69{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t68.{core::Map::[]=}(#t70.{core::MapEntry::key}{core::int}, #t70.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t68.{core::Map::[]=}{Invariant}(#t70.{core::MapEntry::key}{core::int}, #t70.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
} =>#t68, block {
final core::Set<core::int> #t71 = col::LinkedHashSet::•<core::int>();
@@ -378,7 +378,7 @@
if(!(#t72 == null))
for (final dynamic #t73 in #t72{core::Iterable<dynamic>}) {
final core::int #t74 = #t73 as{TypeError,ForNonNullableByDefault} core::int;
- #t71.{core::Set::add}(#t74){(core::int) → core::bool};
+ #t71.{core::Set::add}{Invariant}(#t74){(core::int) → core::bool};
}
}
} =>#t71, block {
@@ -388,7 +388,7 @@
if(!(#t76 == null))
for (final dynamic #t77 in #t76{core::Iterable<dynamic>}) {
final core::int #t78 = #t77 as{TypeError,ForNonNullableByDefault} core::int;
- #t75.{core::Set::add}(#t78){(core::int) → core::bool};
+ #t75.{core::Set::add}{Invariant}(#t78){(core::int) → core::bool};
}
}
} =>#t75, block {
@@ -398,7 +398,7 @@
if(!(#t80 == null))
for (final dynamic #t81 in #t80{core::Iterable<dynamic>}) {
final core::int #t82 = #t81 as{TypeError,ForNonNullableByDefault} core::int;
- #t79.{core::Set::add}(#t82){(core::int) → core::bool};
+ #t79.{core::Set::add}{Invariant}(#t82){(core::int) → core::bool};
}
}
} =>#t79, block {
@@ -407,7 +407,7 @@
final core::Map<core::int, core::int>? #t84 = d;
if(!(#t84 == null))
for (final core::MapEntry<core::int, core::int> #t85 in #t84{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t83.{core::Map::[]=}(#t85.{core::MapEntry::key}{core::int}, #t85.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t83.{core::Map::[]=}{Invariant}(#t85.{core::MapEntry::key}{core::int}, #t85.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
} =>#t83, block {
final core::Set<core::int> #t86 = col::LinkedHashSet::•<core::int>();
@@ -416,7 +416,7 @@
if(!(#t87 == null))
for (final dynamic #t88 in #t87{core::Iterable<dynamic>}) {
final core::int #t89 = #t88 as{TypeError,ForNonNullableByDefault} core::int;
- #t86.{core::Set::add}(#t89){(core::int) → core::bool};
+ #t86.{core::Set::add}{Invariant}(#t89){(core::int) → core::bool};
}
}
} =>#t86, block {
@@ -426,7 +426,7 @@
if(!(#t91 == null))
for (final dynamic #t92 in #t91{core::Iterable<dynamic>}) {
final core::int #t93 = #t92 as{TypeError,ForNonNullableByDefault} core::int;
- #t90.{core::Set::add}(#t93){(core::int) → core::bool};
+ #t90.{core::Set::add}{Invariant}(#t93){(core::int) → core::bool};
}
}
} =>#t90, block {
@@ -436,7 +436,7 @@
if(!(#t95 == null))
for (final dynamic #t96 in #t95{core::Iterable<dynamic>}) {
final core::int #t97 = #t96 as{TypeError,ForNonNullableByDefault} core::int;
- #t94.{core::Set::add}(#t97){(core::int) → core::bool};
+ #t94.{core::Set::add}{Invariant}(#t97){(core::int) → core::bool};
}
}
} =>#t94, block {
@@ -445,7 +445,7 @@
final core::Map<core::int, core::int>? #t99 = d;
if(!(#t99 == null))
for (final core::MapEntry<core::int, core::int> #t100 in #t99{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t98.{core::Map::[]=}(#t100.{core::MapEntry::key}{core::int}, #t100.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t98.{core::Map::[]=}{Invariant}(#t100.{core::MapEntry::key}{core::int}, #t100.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
} =>#t98];
}
@@ -456,7 +456,7 @@
{...x}, // Error.
^") {
final core::int #t103 = #t102 as{TypeError,ForNonNullableByDefault} core::int;
- #t101.{core::Set::add}(#t103){(core::int) → core::bool};
+ #t101.{core::Set::add}{Invariant}(#t103){(core::int) → core::bool};
}
} =>#t101, block {
final core::Set<core::int> #t104 = col::LinkedHashSet::•<core::int>();
@@ -464,7 +464,7 @@
{...y}, // Error.
^") {
final core::int #t106 = #t105 as{TypeError,ForNonNullableByDefault} core::int;
- #t104.{core::Set::add}(#t106){(core::int) → core::bool};
+ #t104.{core::Set::add}{Invariant}(#t106){(core::int) → core::bool};
}
} =>#t104, block {
final core::Set<core::int> #t107 = col::LinkedHashSet::•<core::int>();
@@ -472,7 +472,7 @@
{...z}, // Error.
^") {
final core::int #t109 = #t108 as{TypeError,ForNonNullableByDefault} core::int;
- #t107.{core::Set::add}(#t109){(core::int) → core::bool};
+ #t107.{core::Set::add}{Invariant}(#t109){(core::int) → core::bool};
}
} =>#t107, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:53:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{...w}, // Error.
@@ -480,7 +480,7 @@
<int, int>{...x}, // Error.
^": null}, block {
final core::Set<core::int> #t110 = col::LinkedHashSet::•<core::int>();
- #t110.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread. Expected 'dynamic' or an Iterable.
+ #t110.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread. Expected 'dynamic' or an Iterable.
<int>{...w}, // Error.
^"){(core::int) → core::bool};
} =>#t110, block {
@@ -490,7 +490,7 @@
{if (condition) ...x}, // Error.
^") {
final core::int #t113 = #t112 as{TypeError,ForNonNullableByDefault} core::int;
- #t111.{core::Set::add}(#t113){(core::int) → core::bool};
+ #t111.{core::Set::add}{Invariant}(#t113){(core::int) → core::bool};
}
} =>#t111, block {
final core::Set<core::int> #t114 = col::LinkedHashSet::•<core::int>();
@@ -499,7 +499,7 @@
{if (condition) ...y}, // Error.
^") {
final core::int #t116 = #t115 as{TypeError,ForNonNullableByDefault} core::int;
- #t114.{core::Set::add}(#t116){(core::int) → core::bool};
+ #t114.{core::Set::add}{Invariant}(#t116){(core::int) → core::bool};
}
} =>#t114, block {
final core::Set<core::int> #t117 = col::LinkedHashSet::•<core::int>();
@@ -508,12 +508,12 @@
{if (condition) ...z}, // Error.
^") {
final core::int #t119 = #t118 as{TypeError,ForNonNullableByDefault} core::int;
- #t117.{core::Set::add}(#t119){(core::int) → core::bool};
+ #t117.{core::Set::add}{Invariant}(#t119){(core::int) → core::bool};
}
} =>#t117, block {
final core::Map<core::int, core::int> #t120 = <core::int, core::int>{};
if(condition)
- #t120.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{if (condition) ...w}, // Error.
^", null){(core::int, core::int) → void};
} =>#t120, block {
@@ -523,7 +523,7 @@
{for (dynamic e in iterable) ...x}, // Error.
^") {
final core::int #t123 = #t122 as{TypeError,ForNonNullableByDefault} core::int;
- #t121.{core::Set::add}(#t123){(core::int) → core::bool};
+ #t121.{core::Set::add}{Invariant}(#t123){(core::int) → core::bool};
}
} =>#t121, block {
final core::Set<core::int> #t124 = col::LinkedHashSet::•<core::int>();
@@ -532,7 +532,7 @@
{for (dynamic e in iterable) ...y}, // Error.
^") {
final core::int #t126 = #t125 as{TypeError,ForNonNullableByDefault} core::int;
- #t124.{core::Set::add}(#t126){(core::int) → core::bool};
+ #t124.{core::Set::add}{Invariant}(#t126){(core::int) → core::bool};
}
} =>#t124, block {
final core::Set<core::int> #t127 = col::LinkedHashSet::•<core::int>();
@@ -541,12 +541,12 @@
{for (dynamic e in iterable) ...z}, // Error.
^") {
final core::int #t129 = #t128 as{TypeError,ForNonNullableByDefault} core::int;
- #t127.{core::Set::add}(#t129){(core::int) → core::bool};
+ #t127.{core::Set::add}{Invariant}(#t129){(core::int) → core::bool};
}
} =>#t127, block {
final core::Map<core::int, core::int> #t130 = <core::int, core::int>{};
for (dynamic e in iterable)
- #t130.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t130.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (dynamic e in iterable) ...w}, // Error.
^", null){(core::int, core::int) → void};
} =>#t130, block {
@@ -556,7 +556,7 @@
{for (int i = 0; i < 42; ++i) ...x}, // Error.
^") {
final core::int #t133 = #t132 as{TypeError,ForNonNullableByDefault} core::int;
- #t131.{core::Set::add}(#t133){(core::int) → core::bool};
+ #t131.{core::Set::add}{Invariant}(#t133){(core::int) → core::bool};
}
} =>#t131, block {
final core::Set<core::int> #t134 = col::LinkedHashSet::•<core::int>();
@@ -565,7 +565,7 @@
{for (int i = 0; i < 42; ++i) ...y}, // Error.
^") {
final core::int #t136 = #t135 as{TypeError,ForNonNullableByDefault} core::int;
- #t134.{core::Set::add}(#t136){(core::int) → core::bool};
+ #t134.{core::Set::add}{Invariant}(#t136){(core::int) → core::bool};
}
} =>#t134, block {
final core::Set<core::int> #t137 = col::LinkedHashSet::•<core::int>();
@@ -574,12 +574,12 @@
{for (int i = 0; i < 42; ++i) ...z}, // Error.
^") {
final core::int #t139 = #t138 as{TypeError,ForNonNullableByDefault} core::int;
- #t137.{core::Set::add}(#t139){(core::int) → core::bool};
+ #t137.{core::Set::add}{Invariant}(#t139){(core::int) → core::bool};
}
} =>#t137, block {
final core::Map<core::int, core::int> #t140 = <core::int, core::int>{};
for (core::int i = 0; i.{core::num::<}(42){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t140.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t140.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (int i = 0; i < 42; ++i) ...w}, // Error.
^", null){(core::int, core::int) → void};
} =>#t140, block {
@@ -588,7 +588,7 @@
if(!(#t142 == null))
for (final dynamic #t143 in #t142{core::Iterable<dynamic>}) {
final core::int #t144 = #t143 as{TypeError,ForNonNullableByDefault} core::int;
- #t141.{core::Set::add}(#t144){(core::int) → core::bool};
+ #t141.{core::Set::add}{Invariant}(#t144){(core::int) → core::bool};
}
} =>#t141, block {
final core::Set<core::int> #t145 = col::LinkedHashSet::•<core::int>();
@@ -596,7 +596,7 @@
if(!(#t146 == null))
for (final dynamic #t147 in #t146{core::Iterable<dynamic>}) {
final core::int #t148 = #t147 as{TypeError,ForNonNullableByDefault} core::int;
- #t145.{core::Set::add}(#t148){(core::int) → core::bool};
+ #t145.{core::Set::add}{Invariant}(#t148){(core::int) → core::bool};
}
} =>#t145, block {
final core::Set<core::int> #t149 = col::LinkedHashSet::•<core::int>();
@@ -604,14 +604,14 @@
if(!(#t150 == null))
for (final dynamic #t151 in #t150{core::Iterable<dynamic>}) {
final core::int #t152 = #t151 as{TypeError,ForNonNullableByDefault} core::int;
- #t149.{core::Set::add}(#t152){(core::int) → core::bool};
+ #t149.{core::Set::add}{Invariant}(#t152){(core::int) → core::bool};
}
} =>#t149, block {
final core::Map<core::int, core::int> #t153 = <core::int, core::int>{};
final core::Map<core::int, core::int>? #t154 = w;
if(!(#t154 == null))
for (final core::MapEntry<core::int, core::int> #t155 in #t154{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t153.{core::Map::[]=}(#t155.{core::MapEntry::key}{core::int}, #t155.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t153.{core::Map::[]=}{Invariant}(#t155.{core::MapEntry::key}{core::int}, #t155.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
} =>#t153, block {
final core::Set<core::int> #t156 = col::LinkedHashSet::•<core::int>();
if(condition) {
@@ -619,7 +619,7 @@
if(!(#t157 == null))
for (final dynamic #t158 in #t157{core::Iterable<dynamic>}) {
final core::int #t159 = #t158 as{TypeError,ForNonNullableByDefault} core::int;
- #t156.{core::Set::add}(#t159){(core::int) → core::bool};
+ #t156.{core::Set::add}{Invariant}(#t159){(core::int) → core::bool};
}
}
} =>#t156, block {
@@ -629,7 +629,7 @@
if(!(#t161 == null))
for (final dynamic #t162 in #t161{core::Iterable<dynamic>}) {
final core::int #t163 = #t162 as{TypeError,ForNonNullableByDefault} core::int;
- #t160.{core::Set::add}(#t163){(core::int) → core::bool};
+ #t160.{core::Set::add}{Invariant}(#t163){(core::int) → core::bool};
}
}
} =>#t160, block {
@@ -639,7 +639,7 @@
if(!(#t165 == null))
for (final dynamic #t166 in #t165{core::Iterable<dynamic>}) {
final core::int #t167 = #t166 as{TypeError,ForNonNullableByDefault} core::int;
- #t164.{core::Set::add}(#t167){(core::int) → core::bool};
+ #t164.{core::Set::add}{Invariant}(#t167){(core::int) → core::bool};
}
}
} =>#t164, block {
@@ -648,7 +648,7 @@
final core::Map<core::int, core::int>? #t169 = w;
if(!(#t169 == null))
for (final core::MapEntry<core::int, core::int> #t170 in #t169{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t168.{core::Map::[]=}(#t170.{core::MapEntry::key}{core::int}, #t170.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t168.{core::Map::[]=}{Invariant}(#t170.{core::MapEntry::key}{core::int}, #t170.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
} =>#t168, block {
final core::Set<core::int> #t171 = col::LinkedHashSet::•<core::int>();
@@ -657,7 +657,7 @@
if(!(#t172 == null))
for (final dynamic #t173 in #t172{core::Iterable<dynamic>}) {
final core::int #t174 = #t173 as{TypeError,ForNonNullableByDefault} core::int;
- #t171.{core::Set::add}(#t174){(core::int) → core::bool};
+ #t171.{core::Set::add}{Invariant}(#t174){(core::int) → core::bool};
}
}
} =>#t171, block {
@@ -667,7 +667,7 @@
if(!(#t176 == null))
for (final dynamic #t177 in #t176{core::Iterable<dynamic>}) {
final core::int #t178 = #t177 as{TypeError,ForNonNullableByDefault} core::int;
- #t175.{core::Set::add}(#t178){(core::int) → core::bool};
+ #t175.{core::Set::add}{Invariant}(#t178){(core::int) → core::bool};
}
}
} =>#t175, block {
@@ -677,7 +677,7 @@
if(!(#t180 == null))
for (final dynamic #t181 in #t180{core::Iterable<dynamic>}) {
final core::int #t182 = #t181 as{TypeError,ForNonNullableByDefault} core::int;
- #t179.{core::Set::add}(#t182){(core::int) → core::bool};
+ #t179.{core::Set::add}{Invariant}(#t182){(core::int) → core::bool};
}
}
} =>#t179, block {
@@ -686,7 +686,7 @@
final core::Map<core::int, core::int>? #t184 = w;
if(!(#t184 == null))
for (final core::MapEntry<core::int, core::int> #t185 in #t184{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t183.{core::Map::[]=}(#t185.{core::MapEntry::key}{core::int}, #t185.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t183.{core::Map::[]=}{Invariant}(#t185.{core::MapEntry::key}{core::int}, #t185.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
} =>#t183, block {
final core::Set<core::int> #t186 = col::LinkedHashSet::•<core::int>();
@@ -695,7 +695,7 @@
if(!(#t187 == null))
for (final dynamic #t188 in #t187{core::Iterable<dynamic>}) {
final core::int #t189 = #t188 as{TypeError,ForNonNullableByDefault} core::int;
- #t186.{core::Set::add}(#t189){(core::int) → core::bool};
+ #t186.{core::Set::add}{Invariant}(#t189){(core::int) → core::bool};
}
}
} =>#t186, block {
@@ -705,7 +705,7 @@
if(!(#t191 == null))
for (final dynamic #t192 in #t191{core::Iterable<dynamic>}) {
final core::int #t193 = #t192 as{TypeError,ForNonNullableByDefault} core::int;
- #t190.{core::Set::add}(#t193){(core::int) → core::bool};
+ #t190.{core::Set::add}{Invariant}(#t193){(core::int) → core::bool};
}
}
} =>#t190, block {
@@ -715,7 +715,7 @@
if(!(#t195 == null))
for (final dynamic #t196 in #t195{core::Iterable<dynamic>}) {
final core::int #t197 = #t196 as{TypeError,ForNonNullableByDefault} core::int;
- #t194.{core::Set::add}(#t197){(core::int) → core::bool};
+ #t194.{core::Set::add}{Invariant}(#t197){(core::int) → core::bool};
}
}
} =>#t194, block {
@@ -724,7 +724,7 @@
final core::Map<core::int, core::int>? #t199 = w;
if(!(#t199 == null))
for (final core::MapEntry<core::int, core::int> #t200 in #t199{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t198.{core::Map::[]=}(#t200.{core::MapEntry::key}{core::int}, #t200.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t198.{core::Map::[]=}{Invariant}(#t200.{core::MapEntry::key}{core::int}, #t200.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
} =>#t198];
}
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.strong.transformed.expect
index 380d9ab..3b3d749 100644
--- a/pkg/front_end/testcases/nnbd/issue43495.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.strong.transformed.expect
@@ -179,7 +179,7 @@
final dynamic #t2 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int;
- #t1.{core::Set::add}(#t3){(core::int) → core::bool};
+ #t1.{core::Set::add}{Invariant}(#t3){(core::int) → core::bool};
}
}
}
@@ -193,7 +193,7 @@
final dynamic #t5 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t6 = #t5 as{TypeError,ForNonNullableByDefault} core::int;
- #t4.{core::Set::add}(#t6){(core::int) → core::bool};
+ #t4.{core::Set::add}{Invariant}(#t6){(core::int) → core::bool};
}
}
}
@@ -207,7 +207,7 @@
final dynamic #t8 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t9 = #t8 as{TypeError,ForNonNullableByDefault} core::int;
- #t7.{core::Set::add}(#t9){(core::int) → core::bool};
+ #t7.{core::Set::add}{Invariant}(#t9){(core::int) → core::bool};
}
}
}
@@ -218,7 +218,7 @@
<int, int>{...a}, // Error.
^": null}, block {
final core::Set<core::int> #t10 = new col::_CompactLinkedHashSet::•<core::int>();
- #t10.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread. Expected 'dynamic' or an Iterable.
+ #t10.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{...d}, // Error.
^"){(core::int) → core::bool};
@@ -232,7 +232,7 @@
final dynamic #t12 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t13 = #t12 as{TypeError,ForNonNullableByDefault} core::int;
- #t11.{core::Set::add}(#t13){(core::int) → core::bool};
+ #t11.{core::Set::add}{Invariant}(#t13){(core::int) → core::bool};
}
}
}
@@ -246,7 +246,7 @@
final dynamic #t15 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t16 = #t15 as{TypeError,ForNonNullableByDefault} core::int;
- #t14.{core::Set::add}(#t16){(core::int) → core::bool};
+ #t14.{core::Set::add}{Invariant}(#t16){(core::int) → core::bool};
}
}
}
@@ -260,14 +260,14 @@
final dynamic #t18 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t19 = #t18 as{TypeError,ForNonNullableByDefault} core::int;
- #t17.{core::Set::add}(#t19){(core::int) → core::bool};
+ #t17.{core::Set::add}{Invariant}(#t19){(core::int) → core::bool};
}
}
}
} =>#t17, block {
final core::Map<core::int, core::int> #t20 = <core::int, core::int>{};
if(condition)
- #t20.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t20.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{if (condition) ...d}, // Error.
^", null){(core::int, core::int) → void};
} =>#t20, block {
@@ -284,7 +284,7 @@
final dynamic #t22 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t23 = #t22 as{TypeError,ForNonNullableByDefault} core::int;
- #t21.{core::Set::add}(#t23){(core::int) → core::bool};
+ #t21.{core::Set::add}{Invariant}(#t23){(core::int) → core::bool};
}
}
}
@@ -304,7 +304,7 @@
final dynamic #t25 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t26 = #t25 as{TypeError,ForNonNullableByDefault} core::int;
- #t24.{core::Set::add}(#t26){(core::int) → core::bool};
+ #t24.{core::Set::add}{Invariant}(#t26){(core::int) → core::bool};
}
}
}
@@ -324,7 +324,7 @@
final dynamic #t28 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t29 = #t28 as{TypeError,ForNonNullableByDefault} core::int;
- #t27.{core::Set::add}(#t29){(core::int) → core::bool};
+ #t27.{core::Set::add}{Invariant}(#t29){(core::int) → core::bool};
}
}
}
@@ -336,7 +336,7 @@
core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic e = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t30.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t30.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (dynamic e in iterable) ...d}, // Error.
^", null){(core::int, core::int) → void};
}
@@ -351,7 +351,7 @@
final dynamic #t32 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t33 = #t32 as{TypeError,ForNonNullableByDefault} core::int;
- #t31.{core::Set::add}(#t33){(core::int) → core::bool};
+ #t31.{core::Set::add}{Invariant}(#t33){(core::int) → core::bool};
}
}
}
@@ -365,7 +365,7 @@
final dynamic #t35 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t36 = #t35 as{TypeError,ForNonNullableByDefault} core::int;
- #t34.{core::Set::add}(#t36){(core::int) → core::bool};
+ #t34.{core::Set::add}{Invariant}(#t36){(core::int) → core::bool};
}
}
}
@@ -379,14 +379,14 @@
final dynamic #t38 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t39 = #t38 as{TypeError,ForNonNullableByDefault} core::int;
- #t37.{core::Set::add}(#t39){(core::int) → core::bool};
+ #t37.{core::Set::add}{Invariant}(#t39){(core::int) → core::bool};
}
}
}
} =>#t37, block {
final core::Map<core::int, core::int> #t40 = <core::int, core::int>{};
for (core::int i = 0; i.{core::num::<}(42){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t40.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t40.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (int i = 0; i < 42; ++i) ...d}, // Error.
^", null){(core::int, core::int) → void};
} =>#t40, block {
@@ -398,7 +398,7 @@
final dynamic #t43 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t44 = #t43 as{TypeError,ForNonNullableByDefault} core::int;
- #t41.{core::Set::add}(#t44){(core::int) → core::bool};
+ #t41.{core::Set::add}{Invariant}(#t44){(core::int) → core::bool};
}
}
}
@@ -411,7 +411,7 @@
final dynamic #t47 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t48 = #t47 as{TypeError,ForNonNullableByDefault} core::int;
- #t45.{core::Set::add}(#t48){(core::int) → core::bool};
+ #t45.{core::Set::add}{Invariant}(#t48){(core::int) → core::bool};
}
}
}
@@ -424,7 +424,7 @@
final dynamic #t51 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t52 = #t51 as{TypeError,ForNonNullableByDefault} core::int;
- #t49.{core::Set::add}(#t52){(core::int) → core::bool};
+ #t49.{core::Set::add}{Invariant}(#t52){(core::int) → core::bool};
}
}
}
@@ -435,7 +435,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t54{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t55 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t53.{core::Map::[]=}(#t55.{core::MapEntry::key}{core::int}, #t55.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t53.{core::Map::[]=}{Invariant}(#t55.{core::MapEntry::key}{core::int}, #t55.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
} =>#t53, block {
@@ -448,7 +448,7 @@
final dynamic #t58 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t59 = #t58 as{TypeError,ForNonNullableByDefault} core::int;
- #t56.{core::Set::add}(#t59){(core::int) → core::bool};
+ #t56.{core::Set::add}{Invariant}(#t59){(core::int) → core::bool};
}
}
}
@@ -463,7 +463,7 @@
final dynamic #t62 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t63 = #t62 as{TypeError,ForNonNullableByDefault} core::int;
- #t60.{core::Set::add}(#t63){(core::int) → core::bool};
+ #t60.{core::Set::add}{Invariant}(#t63){(core::int) → core::bool};
}
}
}
@@ -478,7 +478,7 @@
final dynamic #t66 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t67 = #t66 as{TypeError,ForNonNullableByDefault} core::int;
- #t64.{core::Set::add}(#t67){(core::int) → core::bool};
+ #t64.{core::Set::add}{Invariant}(#t67){(core::int) → core::bool};
}
}
}
@@ -491,7 +491,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t69{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t70 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t68.{core::Map::[]=}(#t70.{core::MapEntry::key}{core::int}, #t70.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t68.{core::Map::[]=}{Invariant}(#t70.{core::MapEntry::key}{core::int}, #t70.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
}
@@ -509,7 +509,7 @@
final dynamic #t73 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t74 = #t73 as{TypeError,ForNonNullableByDefault} core::int;
- #t71.{core::Set::add}(#t74){(core::int) → core::bool};
+ #t71.{core::Set::add}{Invariant}(#t74){(core::int) → core::bool};
}
}
}
@@ -530,7 +530,7 @@
final dynamic #t77 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t78 = #t77 as{TypeError,ForNonNullableByDefault} core::int;
- #t75.{core::Set::add}(#t78){(core::int) → core::bool};
+ #t75.{core::Set::add}{Invariant}(#t78){(core::int) → core::bool};
}
}
}
@@ -551,7 +551,7 @@
final dynamic #t81 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t82 = #t81 as{TypeError,ForNonNullableByDefault} core::int;
- #t79.{core::Set::add}(#t82){(core::int) → core::bool};
+ #t79.{core::Set::add}{Invariant}(#t82){(core::int) → core::bool};
}
}
}
@@ -570,7 +570,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t84{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t85 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t83.{core::Map::[]=}(#t85.{core::MapEntry::key}{core::int}, #t85.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t83.{core::Map::[]=}{Invariant}(#t85.{core::MapEntry::key}{core::int}, #t85.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
}
@@ -586,7 +586,7 @@
final dynamic #t88 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t89 = #t88 as{TypeError,ForNonNullableByDefault} core::int;
- #t86.{core::Set::add}(#t89){(core::int) → core::bool};
+ #t86.{core::Set::add}{Invariant}(#t89){(core::int) → core::bool};
}
}
}
@@ -601,7 +601,7 @@
final dynamic #t92 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t93 = #t92 as{TypeError,ForNonNullableByDefault} core::int;
- #t90.{core::Set::add}(#t93){(core::int) → core::bool};
+ #t90.{core::Set::add}{Invariant}(#t93){(core::int) → core::bool};
}
}
}
@@ -616,7 +616,7 @@
final dynamic #t96 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t97 = #t96 as{TypeError,ForNonNullableByDefault} core::int;
- #t94.{core::Set::add}(#t97){(core::int) → core::bool};
+ #t94.{core::Set::add}{Invariant}(#t97){(core::int) → core::bool};
}
}
}
@@ -629,7 +629,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t99{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t100 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t98.{core::Map::[]=}(#t100.{core::MapEntry::key}{core::int}, #t100.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t98.{core::Map::[]=}{Invariant}(#t100.{core::MapEntry::key}{core::int}, #t100.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
}
@@ -646,7 +646,7 @@
final dynamic #t102 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t103 = #t102 as{TypeError,ForNonNullableByDefault} core::int;
- #t101.{core::Set::add}(#t103){(core::int) → core::bool};
+ #t101.{core::Set::add}{Invariant}(#t103){(core::int) → core::bool};
}
}
}
@@ -660,7 +660,7 @@
final dynamic #t105 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t106 = #t105 as{TypeError,ForNonNullableByDefault} core::int;
- #t104.{core::Set::add}(#t106){(core::int) → core::bool};
+ #t104.{core::Set::add}{Invariant}(#t106){(core::int) → core::bool};
}
}
}
@@ -674,7 +674,7 @@
final dynamic #t108 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t109 = #t108 as{TypeError,ForNonNullableByDefault} core::int;
- #t107.{core::Set::add}(#t109){(core::int) → core::bool};
+ #t107.{core::Set::add}{Invariant}(#t109){(core::int) → core::bool};
}
}
}
@@ -684,7 +684,7 @@
<int, int>{...x}, // Error.
^": null}, block {
final core::Set<core::int> #t110 = new col::_CompactLinkedHashSet::•<core::int>();
- #t110.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread. Expected 'dynamic' or an Iterable.
+ #t110.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread. Expected 'dynamic' or an Iterable.
<int>{...w}, // Error.
^"){(core::int) → core::bool};
} =>#t110, block {
@@ -697,7 +697,7 @@
final dynamic #t112 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t113 = #t112 as{TypeError,ForNonNullableByDefault} core::int;
- #t111.{core::Set::add}(#t113){(core::int) → core::bool};
+ #t111.{core::Set::add}{Invariant}(#t113){(core::int) → core::bool};
}
}
}
@@ -711,7 +711,7 @@
final dynamic #t115 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t116 = #t115 as{TypeError,ForNonNullableByDefault} core::int;
- #t114.{core::Set::add}(#t116){(core::int) → core::bool};
+ #t114.{core::Set::add}{Invariant}(#t116){(core::int) → core::bool};
}
}
}
@@ -725,14 +725,14 @@
final dynamic #t118 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t119 = #t118 as{TypeError,ForNonNullableByDefault} core::int;
- #t117.{core::Set::add}(#t119){(core::int) → core::bool};
+ #t117.{core::Set::add}{Invariant}(#t119){(core::int) → core::bool};
}
}
}
} =>#t117, block {
final core::Map<core::int, core::int> #t120 = <core::int, core::int>{};
if(condition)
- #t120.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{if (condition) ...w}, // Error.
^", null){(core::int, core::int) → void};
} =>#t120, block {
@@ -749,7 +749,7 @@
final dynamic #t122 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t123 = #t122 as{TypeError,ForNonNullableByDefault} core::int;
- #t121.{core::Set::add}(#t123){(core::int) → core::bool};
+ #t121.{core::Set::add}{Invariant}(#t123){(core::int) → core::bool};
}
}
}
@@ -769,7 +769,7 @@
final dynamic #t125 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t126 = #t125 as{TypeError,ForNonNullableByDefault} core::int;
- #t124.{core::Set::add}(#t126){(core::int) → core::bool};
+ #t124.{core::Set::add}{Invariant}(#t126){(core::int) → core::bool};
}
}
}
@@ -789,7 +789,7 @@
final dynamic #t128 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t129 = #t128 as{TypeError,ForNonNullableByDefault} core::int;
- #t127.{core::Set::add}(#t129){(core::int) → core::bool};
+ #t127.{core::Set::add}{Invariant}(#t129){(core::int) → core::bool};
}
}
}
@@ -801,7 +801,7 @@
core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic e = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t130.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t130.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (dynamic e in iterable) ...w}, // Error.
^", null){(core::int, core::int) → void};
}
@@ -816,7 +816,7 @@
final dynamic #t132 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t133 = #t132 as{TypeError,ForNonNullableByDefault} core::int;
- #t131.{core::Set::add}(#t133){(core::int) → core::bool};
+ #t131.{core::Set::add}{Invariant}(#t133){(core::int) → core::bool};
}
}
}
@@ -830,7 +830,7 @@
final dynamic #t135 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t136 = #t135 as{TypeError,ForNonNullableByDefault} core::int;
- #t134.{core::Set::add}(#t136){(core::int) → core::bool};
+ #t134.{core::Set::add}{Invariant}(#t136){(core::int) → core::bool};
}
}
}
@@ -844,14 +844,14 @@
final dynamic #t138 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t139 = #t138 as{TypeError,ForNonNullableByDefault} core::int;
- #t137.{core::Set::add}(#t139){(core::int) → core::bool};
+ #t137.{core::Set::add}{Invariant}(#t139){(core::int) → core::bool};
}
}
}
} =>#t137, block {
final core::Map<core::int, core::int> #t140 = <core::int, core::int>{};
for (core::int i = 0; i.{core::num::<}(42){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t140.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t140.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (int i = 0; i < 42; ++i) ...w}, // Error.
^", null){(core::int, core::int) → void};
} =>#t140, block {
@@ -863,7 +863,7 @@
final dynamic #t143 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t144 = #t143 as{TypeError,ForNonNullableByDefault} core::int;
- #t141.{core::Set::add}(#t144){(core::int) → core::bool};
+ #t141.{core::Set::add}{Invariant}(#t144){(core::int) → core::bool};
}
}
}
@@ -876,7 +876,7 @@
final dynamic #t147 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t148 = #t147 as{TypeError,ForNonNullableByDefault} core::int;
- #t145.{core::Set::add}(#t148){(core::int) → core::bool};
+ #t145.{core::Set::add}{Invariant}(#t148){(core::int) → core::bool};
}
}
}
@@ -889,7 +889,7 @@
final dynamic #t151 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t152 = #t151 as{TypeError,ForNonNullableByDefault} core::int;
- #t149.{core::Set::add}(#t152){(core::int) → core::bool};
+ #t149.{core::Set::add}{Invariant}(#t152){(core::int) → core::bool};
}
}
}
@@ -900,7 +900,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t154{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t155 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t153.{core::Map::[]=}(#t155.{core::MapEntry::key}{core::int}, #t155.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t153.{core::Map::[]=}{Invariant}(#t155.{core::MapEntry::key}{core::int}, #t155.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
} =>#t153, block {
@@ -913,7 +913,7 @@
final dynamic #t158 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t159 = #t158 as{TypeError,ForNonNullableByDefault} core::int;
- #t156.{core::Set::add}(#t159){(core::int) → core::bool};
+ #t156.{core::Set::add}{Invariant}(#t159){(core::int) → core::bool};
}
}
}
@@ -928,7 +928,7 @@
final dynamic #t162 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t163 = #t162 as{TypeError,ForNonNullableByDefault} core::int;
- #t160.{core::Set::add}(#t163){(core::int) → core::bool};
+ #t160.{core::Set::add}{Invariant}(#t163){(core::int) → core::bool};
}
}
}
@@ -943,7 +943,7 @@
final dynamic #t166 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t167 = #t166 as{TypeError,ForNonNullableByDefault} core::int;
- #t164.{core::Set::add}(#t167){(core::int) → core::bool};
+ #t164.{core::Set::add}{Invariant}(#t167){(core::int) → core::bool};
}
}
}
@@ -956,7 +956,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t169{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t170 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t168.{core::Map::[]=}(#t170.{core::MapEntry::key}{core::int}, #t170.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t168.{core::Map::[]=}{Invariant}(#t170.{core::MapEntry::key}{core::int}, #t170.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
}
@@ -974,7 +974,7 @@
final dynamic #t173 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t174 = #t173 as{TypeError,ForNonNullableByDefault} core::int;
- #t171.{core::Set::add}(#t174){(core::int) → core::bool};
+ #t171.{core::Set::add}{Invariant}(#t174){(core::int) → core::bool};
}
}
}
@@ -995,7 +995,7 @@
final dynamic #t177 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t178 = #t177 as{TypeError,ForNonNullableByDefault} core::int;
- #t175.{core::Set::add}(#t178){(core::int) → core::bool};
+ #t175.{core::Set::add}{Invariant}(#t178){(core::int) → core::bool};
}
}
}
@@ -1016,7 +1016,7 @@
final dynamic #t181 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t182 = #t181 as{TypeError,ForNonNullableByDefault} core::int;
- #t179.{core::Set::add}(#t182){(core::int) → core::bool};
+ #t179.{core::Set::add}{Invariant}(#t182){(core::int) → core::bool};
}
}
}
@@ -1035,7 +1035,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t184{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t185 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t183.{core::Map::[]=}(#t185.{core::MapEntry::key}{core::int}, #t185.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t183.{core::Map::[]=}{Invariant}(#t185.{core::MapEntry::key}{core::int}, #t185.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
}
@@ -1051,7 +1051,7 @@
final dynamic #t188 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t189 = #t188 as{TypeError,ForNonNullableByDefault} core::int;
- #t186.{core::Set::add}(#t189){(core::int) → core::bool};
+ #t186.{core::Set::add}{Invariant}(#t189){(core::int) → core::bool};
}
}
}
@@ -1066,7 +1066,7 @@
final dynamic #t192 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t193 = #t192 as{TypeError,ForNonNullableByDefault} core::int;
- #t190.{core::Set::add}(#t193){(core::int) → core::bool};
+ #t190.{core::Set::add}{Invariant}(#t193){(core::int) → core::bool};
}
}
}
@@ -1081,7 +1081,7 @@
final dynamic #t196 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t197 = #t196 as{TypeError,ForNonNullableByDefault} core::int;
- #t194.{core::Set::add}(#t197){(core::int) → core::bool};
+ #t194.{core::Set::add}{Invariant}(#t197){(core::int) → core::bool};
}
}
}
@@ -1094,7 +1094,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t199{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t200 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t198.{core::Map::[]=}(#t200.{core::MapEntry::key}{core::int}, #t200.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t198.{core::Map::[]=}{Invariant}(#t200.{core::MapEntry::key}{core::int}, #t200.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
}
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.expect
index a6b4f4e..e415041 100644
--- a/pkg/front_end/testcases/nnbd/issue43495.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.expect
@@ -175,7 +175,7 @@
{...a}, // Error.
^") {
final core::int #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int;
- #t1.{core::Set::add}(#t3){(core::int) → core::bool};
+ #t1.{core::Set::add}{Invariant}(#t3){(core::int) → core::bool};
}
} =>#t1, block {
final core::Set<core::int> #t4 = col::LinkedHashSet::•<core::int>();
@@ -183,7 +183,7 @@
{...b}, // Error.
^") {
final core::int #t6 = #t5 as{TypeError,ForNonNullableByDefault} core::int;
- #t4.{core::Set::add}(#t6){(core::int) → core::bool};
+ #t4.{core::Set::add}{Invariant}(#t6){(core::int) → core::bool};
}
} =>#t4, block {
final core::Set<core::int> #t7 = col::LinkedHashSet::•<core::int>();
@@ -191,7 +191,7 @@
{...c}, // Error.
^") {
final core::int #t9 = #t8 as{TypeError,ForNonNullableByDefault} core::int;
- #t7.{core::Set::add}(#t9){(core::int) → core::bool};
+ #t7.{core::Set::add}{Invariant}(#t9){(core::int) → core::bool};
}
} =>#t7, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:11:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{...d}, // Error.
@@ -200,7 +200,7 @@
<int, int>{...a}, // Error.
^": null}, block {
final core::Set<core::int> #t10 = col::LinkedHashSet::•<core::int>();
- #t10.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread. Expected 'dynamic' or an Iterable.
+ #t10.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{...d}, // Error.
^"){(core::int) → core::bool};
@@ -211,7 +211,7 @@
{if (condition) ...a}, // Error.
^") {
final core::int #t13 = #t12 as{TypeError,ForNonNullableByDefault} core::int;
- #t11.{core::Set::add}(#t13){(core::int) → core::bool};
+ #t11.{core::Set::add}{Invariant}(#t13){(core::int) → core::bool};
}
} =>#t11, block {
final core::Set<core::int> #t14 = col::LinkedHashSet::•<core::int>();
@@ -220,7 +220,7 @@
{if (condition) ...b}, // Error.
^") {
final core::int #t16 = #t15 as{TypeError,ForNonNullableByDefault} core::int;
- #t14.{core::Set::add}(#t16){(core::int) → core::bool};
+ #t14.{core::Set::add}{Invariant}(#t16){(core::int) → core::bool};
}
} =>#t14, block {
final core::Set<core::int> #t17 = col::LinkedHashSet::•<core::int>();
@@ -229,12 +229,12 @@
{if (condition) ...c}, // Error.
^") {
final core::int #t19 = #t18 as{TypeError,ForNonNullableByDefault} core::int;
- #t17.{core::Set::add}(#t19){(core::int) → core::bool};
+ #t17.{core::Set::add}{Invariant}(#t19){(core::int) → core::bool};
}
} =>#t17, block {
final core::Map<core::int, core::int> #t20 = <core::int, core::int>{};
if(condition)
- #t20.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t20.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{if (condition) ...d}, // Error.
^", null){(core::int, core::int) → void};
} =>#t20, block {
@@ -244,7 +244,7 @@
{for (dynamic e in iterable) ...a}, // Error.
^") {
final core::int #t23 = #t22 as{TypeError,ForNonNullableByDefault} core::int;
- #t21.{core::Set::add}(#t23){(core::int) → core::bool};
+ #t21.{core::Set::add}{Invariant}(#t23){(core::int) → core::bool};
}
} =>#t21, block {
final core::Set<core::int> #t24 = col::LinkedHashSet::•<core::int>();
@@ -253,7 +253,7 @@
{for (dynamic e in iterable) ...b}, // Error.
^") {
final core::int #t26 = #t25 as{TypeError,ForNonNullableByDefault} core::int;
- #t24.{core::Set::add}(#t26){(core::int) → core::bool};
+ #t24.{core::Set::add}{Invariant}(#t26){(core::int) → core::bool};
}
} =>#t24, block {
final core::Set<core::int> #t27 = col::LinkedHashSet::•<core::int>();
@@ -262,12 +262,12 @@
{for (dynamic e in iterable) ...c}, // Error.
^") {
final core::int #t29 = #t28 as{TypeError,ForNonNullableByDefault} core::int;
- #t27.{core::Set::add}(#t29){(core::int) → core::bool};
+ #t27.{core::Set::add}{Invariant}(#t29){(core::int) → core::bool};
}
} =>#t27, block {
final core::Map<core::int, core::int> #t30 = <core::int, core::int>{};
for (dynamic e in iterable)
- #t30.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t30.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (dynamic e in iterable) ...d}, // Error.
^", null){(core::int, core::int) → void};
} =>#t30, block {
@@ -277,7 +277,7 @@
{for (int i = 0; i < 42; ++i) ...a}, // Error.
^") {
final core::int #t33 = #t32 as{TypeError,ForNonNullableByDefault} core::int;
- #t31.{core::Set::add}(#t33){(core::int) → core::bool};
+ #t31.{core::Set::add}{Invariant}(#t33){(core::int) → core::bool};
}
} =>#t31, block {
final core::Set<core::int> #t34 = col::LinkedHashSet::•<core::int>();
@@ -286,7 +286,7 @@
{for (int i = 0; i < 42; ++i) ...b}, // Error.
^") {
final core::int #t36 = #t35 as{TypeError,ForNonNullableByDefault} core::int;
- #t34.{core::Set::add}(#t36){(core::int) → core::bool};
+ #t34.{core::Set::add}{Invariant}(#t36){(core::int) → core::bool};
}
} =>#t34, block {
final core::Set<core::int> #t37 = col::LinkedHashSet::•<core::int>();
@@ -295,12 +295,12 @@
{for (int i = 0; i < 42; ++i) ...c}, // Error.
^") {
final core::int #t39 = #t38 as{TypeError,ForNonNullableByDefault} core::int;
- #t37.{core::Set::add}(#t39){(core::int) → core::bool};
+ #t37.{core::Set::add}{Invariant}(#t39){(core::int) → core::bool};
}
} =>#t37, block {
final core::Map<core::int, core::int> #t40 = <core::int, core::int>{};
for (core::int i = 0; i.{core::num::<}(42){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t40.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t40.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (int i = 0; i < 42; ++i) ...d}, // Error.
^", null){(core::int, core::int) → void};
} =>#t40, block {
@@ -309,7 +309,7 @@
if(!(#t42 == null))
for (final dynamic #t43 in #t42{core::Iterable<dynamic>}) {
final core::int #t44 = #t43 as{TypeError,ForNonNullableByDefault} core::int;
- #t41.{core::Set::add}(#t44){(core::int) → core::bool};
+ #t41.{core::Set::add}{Invariant}(#t44){(core::int) → core::bool};
}
} =>#t41, block {
final core::Set<core::int> #t45 = col::LinkedHashSet::•<core::int>();
@@ -317,7 +317,7 @@
if(!(#t46 == null))
for (final dynamic #t47 in #t46{core::Iterable<dynamic>}) {
final core::int #t48 = #t47 as{TypeError,ForNonNullableByDefault} core::int;
- #t45.{core::Set::add}(#t48){(core::int) → core::bool};
+ #t45.{core::Set::add}{Invariant}(#t48){(core::int) → core::bool};
}
} =>#t45, block {
final core::Set<core::int> #t49 = col::LinkedHashSet::•<core::int>();
@@ -325,14 +325,14 @@
if(!(#t50 == null))
for (final dynamic #t51 in #t50{core::Iterable<dynamic>}) {
final core::int #t52 = #t51 as{TypeError,ForNonNullableByDefault} core::int;
- #t49.{core::Set::add}(#t52){(core::int) → core::bool};
+ #t49.{core::Set::add}{Invariant}(#t52){(core::int) → core::bool};
}
} =>#t49, block {
final core::Map<core::int, core::int> #t53 = <core::int, core::int>{};
final core::Map<core::int, core::int>? #t54 = d;
if(!(#t54 == null))
for (final core::MapEntry<core::int, core::int> #t55 in #t54{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t53.{core::Map::[]=}(#t55.{core::MapEntry::key}{core::int}, #t55.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t53.{core::Map::[]=}{Invariant}(#t55.{core::MapEntry::key}{core::int}, #t55.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
} =>#t53, block {
final core::Set<core::int> #t56 = col::LinkedHashSet::•<core::int>();
if(condition) {
@@ -340,7 +340,7 @@
if(!(#t57 == null))
for (final dynamic #t58 in #t57{core::Iterable<dynamic>}) {
final core::int #t59 = #t58 as{TypeError,ForNonNullableByDefault} core::int;
- #t56.{core::Set::add}(#t59){(core::int) → core::bool};
+ #t56.{core::Set::add}{Invariant}(#t59){(core::int) → core::bool};
}
}
} =>#t56, block {
@@ -350,7 +350,7 @@
if(!(#t61 == null))
for (final dynamic #t62 in #t61{core::Iterable<dynamic>}) {
final core::int #t63 = #t62 as{TypeError,ForNonNullableByDefault} core::int;
- #t60.{core::Set::add}(#t63){(core::int) → core::bool};
+ #t60.{core::Set::add}{Invariant}(#t63){(core::int) → core::bool};
}
}
} =>#t60, block {
@@ -360,7 +360,7 @@
if(!(#t65 == null))
for (final dynamic #t66 in #t65{core::Iterable<dynamic>}) {
final core::int #t67 = #t66 as{TypeError,ForNonNullableByDefault} core::int;
- #t64.{core::Set::add}(#t67){(core::int) → core::bool};
+ #t64.{core::Set::add}{Invariant}(#t67){(core::int) → core::bool};
}
}
} =>#t64, block {
@@ -369,7 +369,7 @@
final core::Map<core::int, core::int>? #t69 = d;
if(!(#t69 == null))
for (final core::MapEntry<core::int, core::int> #t70 in #t69{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t68.{core::Map::[]=}(#t70.{core::MapEntry::key}{core::int}, #t70.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t68.{core::Map::[]=}{Invariant}(#t70.{core::MapEntry::key}{core::int}, #t70.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
} =>#t68, block {
final core::Set<core::int> #t71 = col::LinkedHashSet::•<core::int>();
@@ -378,7 +378,7 @@
if(!(#t72 == null))
for (final dynamic #t73 in #t72{core::Iterable<dynamic>}) {
final core::int #t74 = #t73 as{TypeError,ForNonNullableByDefault} core::int;
- #t71.{core::Set::add}(#t74){(core::int) → core::bool};
+ #t71.{core::Set::add}{Invariant}(#t74){(core::int) → core::bool};
}
}
} =>#t71, block {
@@ -388,7 +388,7 @@
if(!(#t76 == null))
for (final dynamic #t77 in #t76{core::Iterable<dynamic>}) {
final core::int #t78 = #t77 as{TypeError,ForNonNullableByDefault} core::int;
- #t75.{core::Set::add}(#t78){(core::int) → core::bool};
+ #t75.{core::Set::add}{Invariant}(#t78){(core::int) → core::bool};
}
}
} =>#t75, block {
@@ -398,7 +398,7 @@
if(!(#t80 == null))
for (final dynamic #t81 in #t80{core::Iterable<dynamic>}) {
final core::int #t82 = #t81 as{TypeError,ForNonNullableByDefault} core::int;
- #t79.{core::Set::add}(#t82){(core::int) → core::bool};
+ #t79.{core::Set::add}{Invariant}(#t82){(core::int) → core::bool};
}
}
} =>#t79, block {
@@ -407,7 +407,7 @@
final core::Map<core::int, core::int>? #t84 = d;
if(!(#t84 == null))
for (final core::MapEntry<core::int, core::int> #t85 in #t84{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t83.{core::Map::[]=}(#t85.{core::MapEntry::key}{core::int}, #t85.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t83.{core::Map::[]=}{Invariant}(#t85.{core::MapEntry::key}{core::int}, #t85.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
} =>#t83, block {
final core::Set<core::int> #t86 = col::LinkedHashSet::•<core::int>();
@@ -416,7 +416,7 @@
if(!(#t87 == null))
for (final dynamic #t88 in #t87{core::Iterable<dynamic>}) {
final core::int #t89 = #t88 as{TypeError,ForNonNullableByDefault} core::int;
- #t86.{core::Set::add}(#t89){(core::int) → core::bool};
+ #t86.{core::Set::add}{Invariant}(#t89){(core::int) → core::bool};
}
}
} =>#t86, block {
@@ -426,7 +426,7 @@
if(!(#t91 == null))
for (final dynamic #t92 in #t91{core::Iterable<dynamic>}) {
final core::int #t93 = #t92 as{TypeError,ForNonNullableByDefault} core::int;
- #t90.{core::Set::add}(#t93){(core::int) → core::bool};
+ #t90.{core::Set::add}{Invariant}(#t93){(core::int) → core::bool};
}
}
} =>#t90, block {
@@ -436,7 +436,7 @@
if(!(#t95 == null))
for (final dynamic #t96 in #t95{core::Iterable<dynamic>}) {
final core::int #t97 = #t96 as{TypeError,ForNonNullableByDefault} core::int;
- #t94.{core::Set::add}(#t97){(core::int) → core::bool};
+ #t94.{core::Set::add}{Invariant}(#t97){(core::int) → core::bool};
}
}
} =>#t94, block {
@@ -445,7 +445,7 @@
final core::Map<core::int, core::int>? #t99 = d;
if(!(#t99 == null))
for (final core::MapEntry<core::int, core::int> #t100 in #t99{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t98.{core::Map::[]=}(#t100.{core::MapEntry::key}{core::int}, #t100.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t98.{core::Map::[]=}{Invariant}(#t100.{core::MapEntry::key}{core::int}, #t100.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
} =>#t98];
}
@@ -456,7 +456,7 @@
{...x}, // Error.
^") {
final core::int #t103 = #t102 as{TypeError,ForNonNullableByDefault} core::int;
- #t101.{core::Set::add}(#t103){(core::int) → core::bool};
+ #t101.{core::Set::add}{Invariant}(#t103){(core::int) → core::bool};
}
} =>#t101, block {
final core::Set<core::int> #t104 = col::LinkedHashSet::•<core::int>();
@@ -464,7 +464,7 @@
{...y}, // Error.
^") {
final core::int #t106 = #t105 as{TypeError,ForNonNullableByDefault} core::int;
- #t104.{core::Set::add}(#t106){(core::int) → core::bool};
+ #t104.{core::Set::add}{Invariant}(#t106){(core::int) → core::bool};
}
} =>#t104, block {
final core::Set<core::int> #t107 = col::LinkedHashSet::•<core::int>();
@@ -472,7 +472,7 @@
{...z}, // Error.
^") {
final core::int #t109 = #t108 as{TypeError,ForNonNullableByDefault} core::int;
- #t107.{core::Set::add}(#t109){(core::int) → core::bool};
+ #t107.{core::Set::add}{Invariant}(#t109){(core::int) → core::bool};
}
} =>#t107, <core::int, core::int>{invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:53:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{...w}, // Error.
@@ -480,7 +480,7 @@
<int, int>{...x}, // Error.
^": null}, block {
final core::Set<core::int> #t110 = col::LinkedHashSet::•<core::int>();
- #t110.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread. Expected 'dynamic' or an Iterable.
+ #t110.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread. Expected 'dynamic' or an Iterable.
<int>{...w}, // Error.
^"){(core::int) → core::bool};
} =>#t110, block {
@@ -490,7 +490,7 @@
{if (condition) ...x}, // Error.
^") {
final core::int #t113 = #t112 as{TypeError,ForNonNullableByDefault} core::int;
- #t111.{core::Set::add}(#t113){(core::int) → core::bool};
+ #t111.{core::Set::add}{Invariant}(#t113){(core::int) → core::bool};
}
} =>#t111, block {
final core::Set<core::int> #t114 = col::LinkedHashSet::•<core::int>();
@@ -499,7 +499,7 @@
{if (condition) ...y}, // Error.
^") {
final core::int #t116 = #t115 as{TypeError,ForNonNullableByDefault} core::int;
- #t114.{core::Set::add}(#t116){(core::int) → core::bool};
+ #t114.{core::Set::add}{Invariant}(#t116){(core::int) → core::bool};
}
} =>#t114, block {
final core::Set<core::int> #t117 = col::LinkedHashSet::•<core::int>();
@@ -508,12 +508,12 @@
{if (condition) ...z}, // Error.
^") {
final core::int #t119 = #t118 as{TypeError,ForNonNullableByDefault} core::int;
- #t117.{core::Set::add}(#t119){(core::int) → core::bool};
+ #t117.{core::Set::add}{Invariant}(#t119){(core::int) → core::bool};
}
} =>#t117, block {
final core::Map<core::int, core::int> #t120 = <core::int, core::int>{};
if(condition)
- #t120.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{if (condition) ...w}, // Error.
^", null){(core::int, core::int) → void};
} =>#t120, block {
@@ -523,7 +523,7 @@
{for (dynamic e in iterable) ...x}, // Error.
^") {
final core::int #t123 = #t122 as{TypeError,ForNonNullableByDefault} core::int;
- #t121.{core::Set::add}(#t123){(core::int) → core::bool};
+ #t121.{core::Set::add}{Invariant}(#t123){(core::int) → core::bool};
}
} =>#t121, block {
final core::Set<core::int> #t124 = col::LinkedHashSet::•<core::int>();
@@ -532,7 +532,7 @@
{for (dynamic e in iterable) ...y}, // Error.
^") {
final core::int #t126 = #t125 as{TypeError,ForNonNullableByDefault} core::int;
- #t124.{core::Set::add}(#t126){(core::int) → core::bool};
+ #t124.{core::Set::add}{Invariant}(#t126){(core::int) → core::bool};
}
} =>#t124, block {
final core::Set<core::int> #t127 = col::LinkedHashSet::•<core::int>();
@@ -541,12 +541,12 @@
{for (dynamic e in iterable) ...z}, // Error.
^") {
final core::int #t129 = #t128 as{TypeError,ForNonNullableByDefault} core::int;
- #t127.{core::Set::add}(#t129){(core::int) → core::bool};
+ #t127.{core::Set::add}{Invariant}(#t129){(core::int) → core::bool};
}
} =>#t127, block {
final core::Map<core::int, core::int> #t130 = <core::int, core::int>{};
for (dynamic e in iterable)
- #t130.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t130.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (dynamic e in iterable) ...w}, // Error.
^", null){(core::int, core::int) → void};
} =>#t130, block {
@@ -556,7 +556,7 @@
{for (int i = 0; i < 42; ++i) ...x}, // Error.
^") {
final core::int #t133 = #t132 as{TypeError,ForNonNullableByDefault} core::int;
- #t131.{core::Set::add}(#t133){(core::int) → core::bool};
+ #t131.{core::Set::add}{Invariant}(#t133){(core::int) → core::bool};
}
} =>#t131, block {
final core::Set<core::int> #t134 = col::LinkedHashSet::•<core::int>();
@@ -565,7 +565,7 @@
{for (int i = 0; i < 42; ++i) ...y}, // Error.
^") {
final core::int #t136 = #t135 as{TypeError,ForNonNullableByDefault} core::int;
- #t134.{core::Set::add}(#t136){(core::int) → core::bool};
+ #t134.{core::Set::add}{Invariant}(#t136){(core::int) → core::bool};
}
} =>#t134, block {
final core::Set<core::int> #t137 = col::LinkedHashSet::•<core::int>();
@@ -574,12 +574,12 @@
{for (int i = 0; i < 42; ++i) ...z}, // Error.
^") {
final core::int #t139 = #t138 as{TypeError,ForNonNullableByDefault} core::int;
- #t137.{core::Set::add}(#t139){(core::int) → core::bool};
+ #t137.{core::Set::add}{Invariant}(#t139){(core::int) → core::bool};
}
} =>#t137, block {
final core::Map<core::int, core::int> #t140 = <core::int, core::int>{};
for (core::int i = 0; i.{core::num::<}(42){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t140.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t140.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (int i = 0; i < 42; ++i) ...w}, // Error.
^", null){(core::int, core::int) → void};
} =>#t140, block {
@@ -588,7 +588,7 @@
if(!(#t142 == null))
for (final dynamic #t143 in #t142{core::Iterable<dynamic>}) {
final core::int #t144 = #t143 as{TypeError,ForNonNullableByDefault} core::int;
- #t141.{core::Set::add}(#t144){(core::int) → core::bool};
+ #t141.{core::Set::add}{Invariant}(#t144){(core::int) → core::bool};
}
} =>#t141, block {
final core::Set<core::int> #t145 = col::LinkedHashSet::•<core::int>();
@@ -596,7 +596,7 @@
if(!(#t146 == null))
for (final dynamic #t147 in #t146{core::Iterable<dynamic>}) {
final core::int #t148 = #t147 as{TypeError,ForNonNullableByDefault} core::int;
- #t145.{core::Set::add}(#t148){(core::int) → core::bool};
+ #t145.{core::Set::add}{Invariant}(#t148){(core::int) → core::bool};
}
} =>#t145, block {
final core::Set<core::int> #t149 = col::LinkedHashSet::•<core::int>();
@@ -604,14 +604,14 @@
if(!(#t150 == null))
for (final dynamic #t151 in #t150{core::Iterable<dynamic>}) {
final core::int #t152 = #t151 as{TypeError,ForNonNullableByDefault} core::int;
- #t149.{core::Set::add}(#t152){(core::int) → core::bool};
+ #t149.{core::Set::add}{Invariant}(#t152){(core::int) → core::bool};
}
} =>#t149, block {
final core::Map<core::int, core::int> #t153 = <core::int, core::int>{};
final core::Map<core::int, core::int>? #t154 = w;
if(!(#t154 == null))
for (final core::MapEntry<core::int, core::int> #t155 in #t154{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t153.{core::Map::[]=}(#t155.{core::MapEntry::key}{core::int}, #t155.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t153.{core::Map::[]=}{Invariant}(#t155.{core::MapEntry::key}{core::int}, #t155.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
} =>#t153, block {
final core::Set<core::int> #t156 = col::LinkedHashSet::•<core::int>();
if(condition) {
@@ -619,7 +619,7 @@
if(!(#t157 == null))
for (final dynamic #t158 in #t157{core::Iterable<dynamic>}) {
final core::int #t159 = #t158 as{TypeError,ForNonNullableByDefault} core::int;
- #t156.{core::Set::add}(#t159){(core::int) → core::bool};
+ #t156.{core::Set::add}{Invariant}(#t159){(core::int) → core::bool};
}
}
} =>#t156, block {
@@ -629,7 +629,7 @@
if(!(#t161 == null))
for (final dynamic #t162 in #t161{core::Iterable<dynamic>}) {
final core::int #t163 = #t162 as{TypeError,ForNonNullableByDefault} core::int;
- #t160.{core::Set::add}(#t163){(core::int) → core::bool};
+ #t160.{core::Set::add}{Invariant}(#t163){(core::int) → core::bool};
}
}
} =>#t160, block {
@@ -639,7 +639,7 @@
if(!(#t165 == null))
for (final dynamic #t166 in #t165{core::Iterable<dynamic>}) {
final core::int #t167 = #t166 as{TypeError,ForNonNullableByDefault} core::int;
- #t164.{core::Set::add}(#t167){(core::int) → core::bool};
+ #t164.{core::Set::add}{Invariant}(#t167){(core::int) → core::bool};
}
}
} =>#t164, block {
@@ -648,7 +648,7 @@
final core::Map<core::int, core::int>? #t169 = w;
if(!(#t169 == null))
for (final core::MapEntry<core::int, core::int> #t170 in #t169{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t168.{core::Map::[]=}(#t170.{core::MapEntry::key}{core::int}, #t170.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t168.{core::Map::[]=}{Invariant}(#t170.{core::MapEntry::key}{core::int}, #t170.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
} =>#t168, block {
final core::Set<core::int> #t171 = col::LinkedHashSet::•<core::int>();
@@ -657,7 +657,7 @@
if(!(#t172 == null))
for (final dynamic #t173 in #t172{core::Iterable<dynamic>}) {
final core::int #t174 = #t173 as{TypeError,ForNonNullableByDefault} core::int;
- #t171.{core::Set::add}(#t174){(core::int) → core::bool};
+ #t171.{core::Set::add}{Invariant}(#t174){(core::int) → core::bool};
}
}
} =>#t171, block {
@@ -667,7 +667,7 @@
if(!(#t176 == null))
for (final dynamic #t177 in #t176{core::Iterable<dynamic>}) {
final core::int #t178 = #t177 as{TypeError,ForNonNullableByDefault} core::int;
- #t175.{core::Set::add}(#t178){(core::int) → core::bool};
+ #t175.{core::Set::add}{Invariant}(#t178){(core::int) → core::bool};
}
}
} =>#t175, block {
@@ -677,7 +677,7 @@
if(!(#t180 == null))
for (final dynamic #t181 in #t180{core::Iterable<dynamic>}) {
final core::int #t182 = #t181 as{TypeError,ForNonNullableByDefault} core::int;
- #t179.{core::Set::add}(#t182){(core::int) → core::bool};
+ #t179.{core::Set::add}{Invariant}(#t182){(core::int) → core::bool};
}
}
} =>#t179, block {
@@ -686,7 +686,7 @@
final core::Map<core::int, core::int>? #t184 = w;
if(!(#t184 == null))
for (final core::MapEntry<core::int, core::int> #t185 in #t184{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t183.{core::Map::[]=}(#t185.{core::MapEntry::key}{core::int}, #t185.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t183.{core::Map::[]=}{Invariant}(#t185.{core::MapEntry::key}{core::int}, #t185.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
} =>#t183, block {
final core::Set<core::int> #t186 = col::LinkedHashSet::•<core::int>();
@@ -695,7 +695,7 @@
if(!(#t187 == null))
for (final dynamic #t188 in #t187{core::Iterable<dynamic>}) {
final core::int #t189 = #t188 as{TypeError,ForNonNullableByDefault} core::int;
- #t186.{core::Set::add}(#t189){(core::int) → core::bool};
+ #t186.{core::Set::add}{Invariant}(#t189){(core::int) → core::bool};
}
}
} =>#t186, block {
@@ -705,7 +705,7 @@
if(!(#t191 == null))
for (final dynamic #t192 in #t191{core::Iterable<dynamic>}) {
final core::int #t193 = #t192 as{TypeError,ForNonNullableByDefault} core::int;
- #t190.{core::Set::add}(#t193){(core::int) → core::bool};
+ #t190.{core::Set::add}{Invariant}(#t193){(core::int) → core::bool};
}
}
} =>#t190, block {
@@ -715,7 +715,7 @@
if(!(#t195 == null))
for (final dynamic #t196 in #t195{core::Iterable<dynamic>}) {
final core::int #t197 = #t196 as{TypeError,ForNonNullableByDefault} core::int;
- #t194.{core::Set::add}(#t197){(core::int) → core::bool};
+ #t194.{core::Set::add}{Invariant}(#t197){(core::int) → core::bool};
}
}
} =>#t194, block {
@@ -724,7 +724,7 @@
final core::Map<core::int, core::int>? #t199 = w;
if(!(#t199 == null))
for (final core::MapEntry<core::int, core::int> #t200 in #t199{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t198.{core::Map::[]=}(#t200.{core::MapEntry::key}{core::int}, #t200.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t198.{core::Map::[]=}{Invariant}(#t200.{core::MapEntry::key}{core::int}, #t200.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
} =>#t198];
}
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.transformed.expect
index 380d9ab..3b3d749 100644
--- a/pkg/front_end/testcases/nnbd/issue43495.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.transformed.expect
@@ -179,7 +179,7 @@
final dynamic #t2 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int;
- #t1.{core::Set::add}(#t3){(core::int) → core::bool};
+ #t1.{core::Set::add}{Invariant}(#t3){(core::int) → core::bool};
}
}
}
@@ -193,7 +193,7 @@
final dynamic #t5 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t6 = #t5 as{TypeError,ForNonNullableByDefault} core::int;
- #t4.{core::Set::add}(#t6){(core::int) → core::bool};
+ #t4.{core::Set::add}{Invariant}(#t6){(core::int) → core::bool};
}
}
}
@@ -207,7 +207,7 @@
final dynamic #t8 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t9 = #t8 as{TypeError,ForNonNullableByDefault} core::int;
- #t7.{core::Set::add}(#t9){(core::int) → core::bool};
+ #t7.{core::Set::add}{Invariant}(#t9){(core::int) → core::bool};
}
}
}
@@ -218,7 +218,7 @@
<int, int>{...a}, // Error.
^": null}, block {
final core::Set<core::int> #t10 = new col::_CompactLinkedHashSet::•<core::int>();
- #t10.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread. Expected 'dynamic' or an Iterable.
+ #t10.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:13:14: Error: Unexpected type 'Map<int, int>?' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
<int>{...d}, // Error.
^"){(core::int) → core::bool};
@@ -232,7 +232,7 @@
final dynamic #t12 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t13 = #t12 as{TypeError,ForNonNullableByDefault} core::int;
- #t11.{core::Set::add}(#t13){(core::int) → core::bool};
+ #t11.{core::Set::add}{Invariant}(#t13){(core::int) → core::bool};
}
}
}
@@ -246,7 +246,7 @@
final dynamic #t15 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t16 = #t15 as{TypeError,ForNonNullableByDefault} core::int;
- #t14.{core::Set::add}(#t16){(core::int) → core::bool};
+ #t14.{core::Set::add}{Invariant}(#t16){(core::int) → core::bool};
}
}
}
@@ -260,14 +260,14 @@
final dynamic #t18 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t19 = #t18 as{TypeError,ForNonNullableByDefault} core::int;
- #t17.{core::Set::add}(#t19){(core::int) → core::bool};
+ #t17.{core::Set::add}{Invariant}(#t19){(core::int) → core::bool};
}
}
}
} =>#t17, block {
final core::Map<core::int, core::int> #t20 = <core::int, core::int>{};
if(condition)
- #t20.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t20.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:17:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{if (condition) ...d}, // Error.
^", null){(core::int, core::int) → void};
} =>#t20, block {
@@ -284,7 +284,7 @@
final dynamic #t22 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t23 = #t22 as{TypeError,ForNonNullableByDefault} core::int;
- #t21.{core::Set::add}(#t23){(core::int) → core::bool};
+ #t21.{core::Set::add}{Invariant}(#t23){(core::int) → core::bool};
}
}
}
@@ -304,7 +304,7 @@
final dynamic #t25 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t26 = #t25 as{TypeError,ForNonNullableByDefault} core::int;
- #t24.{core::Set::add}(#t26){(core::int) → core::bool};
+ #t24.{core::Set::add}{Invariant}(#t26){(core::int) → core::bool};
}
}
}
@@ -324,7 +324,7 @@
final dynamic #t28 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t29 = #t28 as{TypeError,ForNonNullableByDefault} core::int;
- #t27.{core::Set::add}(#t29){(core::int) → core::bool};
+ #t27.{core::Set::add}{Invariant}(#t29){(core::int) → core::bool};
}
}
}
@@ -336,7 +336,7 @@
core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic e = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t30.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t30.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:21:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (dynamic e in iterable) ...d}, // Error.
^", null){(core::int, core::int) → void};
}
@@ -351,7 +351,7 @@
final dynamic #t32 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t33 = #t32 as{TypeError,ForNonNullableByDefault} core::int;
- #t31.{core::Set::add}(#t33){(core::int) → core::bool};
+ #t31.{core::Set::add}{Invariant}(#t33){(core::int) → core::bool};
}
}
}
@@ -365,7 +365,7 @@
final dynamic #t35 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t36 = #t35 as{TypeError,ForNonNullableByDefault} core::int;
- #t34.{core::Set::add}(#t36){(core::int) → core::bool};
+ #t34.{core::Set::add}{Invariant}(#t36){(core::int) → core::bool};
}
}
}
@@ -379,14 +379,14 @@
final dynamic #t38 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t39 = #t38 as{TypeError,ForNonNullableByDefault} core::int;
- #t37.{core::Set::add}(#t39){(core::int) → core::bool};
+ #t37.{core::Set::add}{Invariant}(#t39){(core::int) → core::bool};
}
}
}
} =>#t37, block {
final core::Map<core::int, core::int> #t40 = <core::int, core::int>{};
for (core::int i = 0; i.{core::num::<}(42){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t40.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t40.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:25:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (int i = 0; i < 42; ++i) ...d}, // Error.
^", null){(core::int, core::int) → void};
} =>#t40, block {
@@ -398,7 +398,7 @@
final dynamic #t43 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t44 = #t43 as{TypeError,ForNonNullableByDefault} core::int;
- #t41.{core::Set::add}(#t44){(core::int) → core::bool};
+ #t41.{core::Set::add}{Invariant}(#t44){(core::int) → core::bool};
}
}
}
@@ -411,7 +411,7 @@
final dynamic #t47 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t48 = #t47 as{TypeError,ForNonNullableByDefault} core::int;
- #t45.{core::Set::add}(#t48){(core::int) → core::bool};
+ #t45.{core::Set::add}{Invariant}(#t48){(core::int) → core::bool};
}
}
}
@@ -424,7 +424,7 @@
final dynamic #t51 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t52 = #t51 as{TypeError,ForNonNullableByDefault} core::int;
- #t49.{core::Set::add}(#t52){(core::int) → core::bool};
+ #t49.{core::Set::add}{Invariant}(#t52){(core::int) → core::bool};
}
}
}
@@ -435,7 +435,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t54{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t55 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t53.{core::Map::[]=}(#t55.{core::MapEntry::key}{core::int}, #t55.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t53.{core::Map::[]=}{Invariant}(#t55.{core::MapEntry::key}{core::int}, #t55.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
} =>#t53, block {
@@ -448,7 +448,7 @@
final dynamic #t58 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t59 = #t58 as{TypeError,ForNonNullableByDefault} core::int;
- #t56.{core::Set::add}(#t59){(core::int) → core::bool};
+ #t56.{core::Set::add}{Invariant}(#t59){(core::int) → core::bool};
}
}
}
@@ -463,7 +463,7 @@
final dynamic #t62 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t63 = #t62 as{TypeError,ForNonNullableByDefault} core::int;
- #t60.{core::Set::add}(#t63){(core::int) → core::bool};
+ #t60.{core::Set::add}{Invariant}(#t63){(core::int) → core::bool};
}
}
}
@@ -478,7 +478,7 @@
final dynamic #t66 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t67 = #t66 as{TypeError,ForNonNullableByDefault} core::int;
- #t64.{core::Set::add}(#t67){(core::int) → core::bool};
+ #t64.{core::Set::add}{Invariant}(#t67){(core::int) → core::bool};
}
}
}
@@ -491,7 +491,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t69{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t70 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t68.{core::Map::[]=}(#t70.{core::MapEntry::key}{core::int}, #t70.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t68.{core::Map::[]=}{Invariant}(#t70.{core::MapEntry::key}{core::int}, #t70.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
}
@@ -509,7 +509,7 @@
final dynamic #t73 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t74 = #t73 as{TypeError,ForNonNullableByDefault} core::int;
- #t71.{core::Set::add}(#t74){(core::int) → core::bool};
+ #t71.{core::Set::add}{Invariant}(#t74){(core::int) → core::bool};
}
}
}
@@ -530,7 +530,7 @@
final dynamic #t77 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t78 = #t77 as{TypeError,ForNonNullableByDefault} core::int;
- #t75.{core::Set::add}(#t78){(core::int) → core::bool};
+ #t75.{core::Set::add}{Invariant}(#t78){(core::int) → core::bool};
}
}
}
@@ -551,7 +551,7 @@
final dynamic #t81 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t82 = #t81 as{TypeError,ForNonNullableByDefault} core::int;
- #t79.{core::Set::add}(#t82){(core::int) → core::bool};
+ #t79.{core::Set::add}{Invariant}(#t82){(core::int) → core::bool};
}
}
}
@@ -570,7 +570,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t84{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t85 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t83.{core::Map::[]=}(#t85.{core::MapEntry::key}{core::int}, #t85.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t83.{core::Map::[]=}{Invariant}(#t85.{core::MapEntry::key}{core::int}, #t85.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
}
@@ -586,7 +586,7 @@
final dynamic #t88 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t89 = #t88 as{TypeError,ForNonNullableByDefault} core::int;
- #t86.{core::Set::add}(#t89){(core::int) → core::bool};
+ #t86.{core::Set::add}{Invariant}(#t89){(core::int) → core::bool};
}
}
}
@@ -601,7 +601,7 @@
final dynamic #t92 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t93 = #t92 as{TypeError,ForNonNullableByDefault} core::int;
- #t90.{core::Set::add}(#t93){(core::int) → core::bool};
+ #t90.{core::Set::add}{Invariant}(#t93){(core::int) → core::bool};
}
}
}
@@ -616,7 +616,7 @@
final dynamic #t96 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t97 = #t96 as{TypeError,ForNonNullableByDefault} core::int;
- #t94.{core::Set::add}(#t97){(core::int) → core::bool};
+ #t94.{core::Set::add}{Invariant}(#t97){(core::int) → core::bool};
}
}
}
@@ -629,7 +629,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t99{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t100 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t98.{core::Map::[]=}(#t100.{core::MapEntry::key}{core::int}, #t100.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t98.{core::Map::[]=}{Invariant}(#t100.{core::MapEntry::key}{core::int}, #t100.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
}
@@ -646,7 +646,7 @@
final dynamic #t102 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t103 = #t102 as{TypeError,ForNonNullableByDefault} core::int;
- #t101.{core::Set::add}(#t103){(core::int) → core::bool};
+ #t101.{core::Set::add}{Invariant}(#t103){(core::int) → core::bool};
}
}
}
@@ -660,7 +660,7 @@
final dynamic #t105 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t106 = #t105 as{TypeError,ForNonNullableByDefault} core::int;
- #t104.{core::Set::add}(#t106){(core::int) → core::bool};
+ #t104.{core::Set::add}{Invariant}(#t106){(core::int) → core::bool};
}
}
}
@@ -674,7 +674,7 @@
final dynamic #t108 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t109 = #t108 as{TypeError,ForNonNullableByDefault} core::int;
- #t107.{core::Set::add}(#t109){(core::int) → core::bool};
+ #t107.{core::Set::add}{Invariant}(#t109){(core::int) → core::bool};
}
}
}
@@ -684,7 +684,7 @@
<int, int>{...x}, // Error.
^": null}, block {
final core::Set<core::int> #t110 = new col::_CompactLinkedHashSet::•<core::int>();
- #t110.{core::Set::add}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread. Expected 'dynamic' or an Iterable.
+ #t110.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:55:14: Error: Unexpected type 'W' of a spread. Expected 'dynamic' or an Iterable.
<int>{...w}, // Error.
^"){(core::int) → core::bool};
} =>#t110, block {
@@ -697,7 +697,7 @@
final dynamic #t112 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t113 = #t112 as{TypeError,ForNonNullableByDefault} core::int;
- #t111.{core::Set::add}(#t113){(core::int) → core::bool};
+ #t111.{core::Set::add}{Invariant}(#t113){(core::int) → core::bool};
}
}
}
@@ -711,7 +711,7 @@
final dynamic #t115 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t116 = #t115 as{TypeError,ForNonNullableByDefault} core::int;
- #t114.{core::Set::add}(#t116){(core::int) → core::bool};
+ #t114.{core::Set::add}{Invariant}(#t116){(core::int) → core::bool};
}
}
}
@@ -725,14 +725,14 @@
final dynamic #t118 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t119 = #t118 as{TypeError,ForNonNullableByDefault} core::int;
- #t117.{core::Set::add}(#t119){(core::int) → core::bool};
+ #t117.{core::Set::add}{Invariant}(#t119){(core::int) → core::bool};
}
}
}
} =>#t117, block {
final core::Map<core::int, core::int> #t120 = <core::int, core::int>{};
if(condition)
- #t120.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t120.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:59:24: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{if (condition) ...w}, // Error.
^", null){(core::int, core::int) → void};
} =>#t120, block {
@@ -749,7 +749,7 @@
final dynamic #t122 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t123 = #t122 as{TypeError,ForNonNullableByDefault} core::int;
- #t121.{core::Set::add}(#t123){(core::int) → core::bool};
+ #t121.{core::Set::add}{Invariant}(#t123){(core::int) → core::bool};
}
}
}
@@ -769,7 +769,7 @@
final dynamic #t125 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t126 = #t125 as{TypeError,ForNonNullableByDefault} core::int;
- #t124.{core::Set::add}(#t126){(core::int) → core::bool};
+ #t124.{core::Set::add}{Invariant}(#t126){(core::int) → core::bool};
}
}
}
@@ -789,7 +789,7 @@
final dynamic #t128 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t129 = #t128 as{TypeError,ForNonNullableByDefault} core::int;
- #t127.{core::Set::add}(#t129){(core::int) → core::bool};
+ #t127.{core::Set::add}{Invariant}(#t129){(core::int) → core::bool};
}
}
}
@@ -801,7 +801,7 @@
core::Iterator<dynamic> :sync-for-iterator = iterable.{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic e = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t130.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t130.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:63:37: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (dynamic e in iterable) ...w}, // Error.
^", null){(core::int, core::int) → void};
}
@@ -816,7 +816,7 @@
final dynamic #t132 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t133 = #t132 as{TypeError,ForNonNullableByDefault} core::int;
- #t131.{core::Set::add}(#t133){(core::int) → core::bool};
+ #t131.{core::Set::add}{Invariant}(#t133){(core::int) → core::bool};
}
}
}
@@ -830,7 +830,7 @@
final dynamic #t135 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t136 = #t135 as{TypeError,ForNonNullableByDefault} core::int;
- #t134.{core::Set::add}(#t136){(core::int) → core::bool};
+ #t134.{core::Set::add}{Invariant}(#t136){(core::int) → core::bool};
}
}
}
@@ -844,14 +844,14 @@
final dynamic #t138 = :sync-for-iterator.{core::Iterator::current}{Never};
{
final core::int #t139 = #t138 as{TypeError,ForNonNullableByDefault} core::int;
- #t137.{core::Set::add}(#t139){(core::int) → core::bool};
+ #t137.{core::Set::add}{Invariant}(#t139){(core::int) → core::bool};
}
}
}
} =>#t137, block {
final core::Map<core::int, core::int> #t140 = <core::int, core::int>{};
for (core::int i = 0; i.{core::num::<}(42){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t140.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+ #t140.{core::Map::[]=}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:67:38: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
{for (int i = 0; i < 42; ++i) ...w}, // Error.
^", null){(core::int, core::int) → void};
} =>#t140, block {
@@ -863,7 +863,7 @@
final dynamic #t143 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t144 = #t143 as{TypeError,ForNonNullableByDefault} core::int;
- #t141.{core::Set::add}(#t144){(core::int) → core::bool};
+ #t141.{core::Set::add}{Invariant}(#t144){(core::int) → core::bool};
}
}
}
@@ -876,7 +876,7 @@
final dynamic #t147 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t148 = #t147 as{TypeError,ForNonNullableByDefault} core::int;
- #t145.{core::Set::add}(#t148){(core::int) → core::bool};
+ #t145.{core::Set::add}{Invariant}(#t148){(core::int) → core::bool};
}
}
}
@@ -889,7 +889,7 @@
final dynamic #t151 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t152 = #t151 as{TypeError,ForNonNullableByDefault} core::int;
- #t149.{core::Set::add}(#t152){(core::int) → core::bool};
+ #t149.{core::Set::add}{Invariant}(#t152){(core::int) → core::bool};
}
}
}
@@ -900,7 +900,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t154{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t155 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t153.{core::Map::[]=}(#t155.{core::MapEntry::key}{core::int}, #t155.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t153.{core::Map::[]=}{Invariant}(#t155.{core::MapEntry::key}{core::int}, #t155.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
} =>#t153, block {
@@ -913,7 +913,7 @@
final dynamic #t158 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t159 = #t158 as{TypeError,ForNonNullableByDefault} core::int;
- #t156.{core::Set::add}(#t159){(core::int) → core::bool};
+ #t156.{core::Set::add}{Invariant}(#t159){(core::int) → core::bool};
}
}
}
@@ -928,7 +928,7 @@
final dynamic #t162 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t163 = #t162 as{TypeError,ForNonNullableByDefault} core::int;
- #t160.{core::Set::add}(#t163){(core::int) → core::bool};
+ #t160.{core::Set::add}{Invariant}(#t163){(core::int) → core::bool};
}
}
}
@@ -943,7 +943,7 @@
final dynamic #t166 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t167 = #t166 as{TypeError,ForNonNullableByDefault} core::int;
- #t164.{core::Set::add}(#t167){(core::int) → core::bool};
+ #t164.{core::Set::add}{Invariant}(#t167){(core::int) → core::bool};
}
}
}
@@ -956,7 +956,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t169{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t170 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t168.{core::Map::[]=}(#t170.{core::MapEntry::key}{core::int}, #t170.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t168.{core::Map::[]=}{Invariant}(#t170.{core::MapEntry::key}{core::int}, #t170.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
}
@@ -974,7 +974,7 @@
final dynamic #t173 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t174 = #t173 as{TypeError,ForNonNullableByDefault} core::int;
- #t171.{core::Set::add}(#t174){(core::int) → core::bool};
+ #t171.{core::Set::add}{Invariant}(#t174){(core::int) → core::bool};
}
}
}
@@ -995,7 +995,7 @@
final dynamic #t177 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t178 = #t177 as{TypeError,ForNonNullableByDefault} core::int;
- #t175.{core::Set::add}(#t178){(core::int) → core::bool};
+ #t175.{core::Set::add}{Invariant}(#t178){(core::int) → core::bool};
}
}
}
@@ -1016,7 +1016,7 @@
final dynamic #t181 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t182 = #t181 as{TypeError,ForNonNullableByDefault} core::int;
- #t179.{core::Set::add}(#t182){(core::int) → core::bool};
+ #t179.{core::Set::add}{Invariant}(#t182){(core::int) → core::bool};
}
}
}
@@ -1035,7 +1035,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t184{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t185 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t183.{core::Map::[]=}(#t185.{core::MapEntry::key}{core::int}, #t185.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t183.{core::Map::[]=}{Invariant}(#t185.{core::MapEntry::key}{core::int}, #t185.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
}
@@ -1051,7 +1051,7 @@
final dynamic #t188 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t189 = #t188 as{TypeError,ForNonNullableByDefault} core::int;
- #t186.{core::Set::add}(#t189){(core::int) → core::bool};
+ #t186.{core::Set::add}{Invariant}(#t189){(core::int) → core::bool};
}
}
}
@@ -1066,7 +1066,7 @@
final dynamic #t192 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t193 = #t192 as{TypeError,ForNonNullableByDefault} core::int;
- #t190.{core::Set::add}(#t193){(core::int) → core::bool};
+ #t190.{core::Set::add}{Invariant}(#t193){(core::int) → core::bool};
}
}
}
@@ -1081,7 +1081,7 @@
final dynamic #t196 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t197 = #t196 as{TypeError,ForNonNullableByDefault} core::int;
- #t194.{core::Set::add}(#t197){(core::int) → core::bool};
+ #t194.{core::Set::add}{Invariant}(#t197){(core::int) → core::bool};
}
}
}
@@ -1094,7 +1094,7 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t199{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t200 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t198.{core::Map::[]=}(#t200.{core::MapEntry::key}{core::int}, #t200.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t198.{core::Map::[]=}{Invariant}(#t200.{core::MapEntry::key}{core::int}, #t200.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
}
diff --git a/pkg/front_end/testcases/nnbd/later.dart.strong.expect b/pkg/front_end/testcases/nnbd/later.dart.strong.expect
index 7bd7713..076e56c 100644
--- a/pkg/front_end/testcases/nnbd/later.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/later.dart.strong.expect
@@ -113,7 +113,7 @@
block {
final core::List<core::int> #t1 = <core::int>[];
for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t1.{core::List::add}(i){(core::int) → void};
+ #t1.{core::List::add}{Invariant}(i){(core::int) → void};
} =>#t1;
}
static method hest() → dynamic async {
diff --git a/pkg/front_end/testcases/nnbd/later.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/later.dart.strong.transformed.expect
index 415a7b1..90b2c25 100644
--- a/pkg/front_end/testcases/nnbd/later.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/later.dart.strong.transformed.expect
@@ -120,7 +120,7 @@
block {
final core::List<core::int> #t1 = core::_GrowableList::•<core::int>(0);
for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t1.{core::List::add}(i){(core::int) → void};
+ #t1.{core::List::add}{Invariant}(i){(core::int) → void};
} =>#t1;
}
static method hest() → dynamic /* originally async */ {
diff --git a/pkg/front_end/testcases/nnbd/later.dart.weak.expect b/pkg/front_end/testcases/nnbd/later.dart.weak.expect
index 7bd7713..076e56c 100644
--- a/pkg/front_end/testcases/nnbd/later.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/later.dart.weak.expect
@@ -113,7 +113,7 @@
block {
final core::List<core::int> #t1 = <core::int>[];
for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t1.{core::List::add}(i){(core::int) → void};
+ #t1.{core::List::add}{Invariant}(i){(core::int) → void};
} =>#t1;
}
static method hest() → dynamic async {
diff --git a/pkg/front_end/testcases/nnbd/later.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/later.dart.weak.transformed.expect
index 415a7b1..90b2c25 100644
--- a/pkg/front_end/testcases/nnbd/later.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/later.dart.weak.transformed.expect
@@ -120,7 +120,7 @@
block {
final core::List<core::int> #t1 = core::_GrowableList::•<core::int>(0);
for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
- #t1.{core::List::add}(i){(core::int) → void};
+ #t1.{core::List::add}{Invariant}(i){(core::int) → void};
} =>#t1;
}
static method hest() → dynamic /* originally async */ {
diff --git a/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.expect b/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.expect
index 872ee8f..14bef22c5 100644
--- a/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.expect
@@ -9,60 +9,60 @@
final core::List<core::int> #t1 = <core::int>[1, 2];
final core::Iterable<core::int>? #t2 = list;
if(!(#t2 == null))
- #t1.{core::List::addAll}(#t2{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t1.{core::List::add}(3){(core::int) → void};
+ #t1.{core::List::addAll}{Invariant}(#t2{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t1.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t1);
core::print( block {
final core::List<core::int> #t3 = <core::int>[1, 2];
final core::Iterable<core::int>? #t4 = null;
if(!(#t4 == null))
- #t3.{core::List::addAll}(#t4{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t3.{core::List::add}(3){(core::int) → void};
+ #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t3.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t3);
core::List<core::int> list1 = block {
final core::List<core::int> #t5 = <core::int>[];
final core::Iterable<core::int>? #t6 = list;
if(!(#t6 == null))
- #t5.{core::List::addAll}(#t6{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
} =>#t5;
core::List<Never> list2 = block {
final core::List<Never> #t7 = <Never>[];
final core::Iterable<Never>? #t8 = null;
if(!(#t8 == null))
- #t7.{core::List::addAll}(#t8{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t7.{core::List::addAll}{Invariant}(#t8{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t7;
core::List<core::int> list3 = block {
final core::List<core::int> #t9 = <core::int>[1, 2];
final core::Iterable<core::int>? #t10 = list;
if(!(#t10 == null))
- #t9.{core::List::addAll}(#t10{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t9.{core::List::add}(3){(core::int) → void};
+ #t9.{core::List::addAll}{Invariant}(#t10{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t9.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t9;
core::List<core::int> list4 = block {
final core::List<core::int> #t11 = <core::int>[1, 2];
final core::Iterable<core::int>? #t12 = null;
if(!(#t12 == null))
- #t11.{core::List::addAll}(#t12{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t11.{core::List::add}(3){(core::int) → void};
+ #t11.{core::List::addAll}{Invariant}(#t12{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t11.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t11;
core::Set<core::int>? set = null;
core::print( block {
final core::Set<core::int> #t13 = col::LinkedHashSet::•<core::int>();
- #t13.{core::Set::add}(1){(core::int) → core::bool};
- #t13.{core::Set::add}(2){(core::int) → core::bool};
+ #t13.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t13.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t14 = set;
if(!(#t14 == null))
- #t13.{core::Set::addAll}(#t14{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t13.{core::Set::add}(3){(core::int) → core::bool};
+ #t13.{core::Set::addAll}{Invariant}(#t14{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t13.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t13);
core::print( block {
final core::Set<core::int> #t15 = col::LinkedHashSet::•<core::int>();
- #t15.{core::Set::add}(1){(core::int) → core::bool};
- #t15.{core::Set::add}(2){(core::int) → core::bool};
+ #t15.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t15.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t16 = null;
if(!(#t16 == null))
- #t15.{core::Set::addAll}(#t16{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t15.{core::Set::add}(3){(core::int) → core::bool};
+ #t15.{core::Set::addAll}{Invariant}(#t16{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t15.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t15);
core::Set<core::int> set1 = block {
final core::Set<core::int> #t17 = col::LinkedHashSet::•<core::int>();
@@ -70,73 +70,73 @@
if(!(#t18 == null))
for (final dynamic #t19 in #t18{core::Iterable<dynamic>}) {
final core::int #t20 = #t19 as{TypeError,ForNonNullableByDefault} core::int;
- #t17.{core::Set::add}(#t20){(core::int) → core::bool};
+ #t17.{core::Set::add}{Invariant}(#t20){(core::int) → core::bool};
}
} =>#t17;
core::Set<core::int> set3 = block {
final core::Set<core::int> #t21 = col::LinkedHashSet::•<core::int>();
- #t21.{core::Set::add}(1){(core::int) → core::bool};
- #t21.{core::Set::add}(2){(core::int) → core::bool};
+ #t21.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t21.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t22 = set;
if(!(#t22 == null))
- #t21.{core::Set::addAll}(#t22{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t21.{core::Set::add}(3){(core::int) → core::bool};
+ #t21.{core::Set::addAll}{Invariant}(#t22{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t21.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t21;
core::Set<core::int> set4 = block {
final core::Set<core::int> #t23 = col::LinkedHashSet::•<core::int>();
- #t23.{core::Set::add}(1){(core::int) → core::bool};
- #t23.{core::Set::add}(2){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t24 = null;
if(!(#t24 == null))
- #t23.{core::Set::addAll}(#t24{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t23.{core::Set::add}(3){(core::int) → core::bool};
+ #t23.{core::Set::addAll}{Invariant}(#t24{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t23.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t23;
core::Map<core::int, core::int>? map = null;
core::print( block {
final core::Map<core::int, core::int> #t25 = <core::int, core::int>{};
- #t25.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t25.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t26 = map;
if(!(#t26 == null))
for (final core::MapEntry<core::int, core::int> #t27 in #t26{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t25.{core::Map::[]=}(#t27.{core::MapEntry::key}{core::int}, #t27.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
- #t25.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}{core::int}, #t27.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t25);
core::print( block {
final core::Map<core::int, core::int> #t28 = <core::int, core::int>{};
- #t28.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t28.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t29 = null;
if(!(#t29 == null))
for (final core::MapEntry<core::int, core::int> #t30 in #t29{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t28.{core::Map::[]=}(#t30.{core::MapEntry::key}{core::int}, #t30.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
- #t28.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(#t30.{core::MapEntry::key}{core::int}, #t30.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t28);
core::Map<core::int, core::int> map1 = block {
final core::Map<core::int, core::int> #t31 = <core::int, core::int>{};
final core::Map<core::int, core::int>? #t32 = map;
if(!(#t32 == null))
for (final core::MapEntry<core::int, core::int> #t33 in #t32{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t31.{core::Map::[]=}(#t33.{core::MapEntry::key}{core::int}, #t33.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t31.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}{core::int}, #t33.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
} =>#t31;
core::Map<core::int, core::int> map3 = block {
final core::Map<core::int, core::int> #t34 = <core::int, core::int>{};
- #t34.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t34.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t35 = map;
if(!(#t35 == null))
for (final core::MapEntry<core::int, core::int> #t36 in #t35{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t34.{core::Map::[]=}(#t36.{core::MapEntry::key}{core::int}, #t36.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
- #t34.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(#t36.{core::MapEntry::key}{core::int}, #t36.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t34;
core::Map<core::int, core::int> map4 = block {
final core::Map<core::int, core::int> #t37 = <core::int, core::int>{};
- #t37.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t37.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t38 = null;
if(!(#t38 == null))
for (final core::MapEntry<core::int, core::int> #t39 in #t38{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t37.{core::Map::[]=}(#t39.{core::MapEntry::key}{core::int}, #t39.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
- #t37.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(#t39.{core::MapEntry::key}{core::int}, #t39.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t37;
}
diff --git a/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.transformed.expect
index c45184d..2cc24c5 100644
--- a/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.transformed.expect
@@ -9,60 +9,60 @@
final core::List<core::int> #t1 = core::_GrowableList::_literal2<core::int>(1, 2);
final core::Iterable<core::int>? #t2 = list;
if(!(#t2 == null))
- #t1.{core::List::addAll}(#t2{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t1.{core::List::add}(3){(core::int) → void};
+ #t1.{core::List::addAll}{Invariant}(#t2{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t1.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t1);
core::print( block {
final core::List<core::int> #t3 = core::_GrowableList::_literal2<core::int>(1, 2);
final core::Iterable<core::int>? #t4 = null;
if(!(#t4 == null))
- #t3.{core::List::addAll}(#t4{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t3.{core::List::add}(3){(core::int) → void};
+ #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t3.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t3);
core::List<core::int> list1 = block {
final core::List<core::int> #t5 = core::_GrowableList::•<core::int>(0);
final core::Iterable<core::int>? #t6 = list;
if(!(#t6 == null))
- #t5.{core::List::addAll}(#t6{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
} =>#t5;
core::List<Never> list2 = block {
final core::List<Never> #t7 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t8 = null;
if(!(#t8 == null))
- #t7.{core::List::addAll}(#t8{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t7.{core::List::addAll}{Invariant}(#t8{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t7;
core::List<core::int> list3 = block {
final core::List<core::int> #t9 = core::_GrowableList::_literal2<core::int>(1, 2);
final core::Iterable<core::int>? #t10 = list;
if(!(#t10 == null))
- #t9.{core::List::addAll}(#t10{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t9.{core::List::add}(3){(core::int) → void};
+ #t9.{core::List::addAll}{Invariant}(#t10{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t9.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t9;
core::List<core::int> list4 = block {
final core::List<core::int> #t11 = core::_GrowableList::_literal2<core::int>(1, 2);
final core::Iterable<core::int>? #t12 = null;
if(!(#t12 == null))
- #t11.{core::List::addAll}(#t12{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t11.{core::List::add}(3){(core::int) → void};
+ #t11.{core::List::addAll}{Invariant}(#t12{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t11.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t11;
core::Set<core::int>? set = null;
core::print( block {
final core::Set<core::int> #t13 = new col::_CompactLinkedHashSet::•<core::int>();
- #t13.{core::Set::add}(1){(core::int) → core::bool};
- #t13.{core::Set::add}(2){(core::int) → core::bool};
+ #t13.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t13.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t14 = set;
if(!(#t14 == null))
- #t13.{core::Set::addAll}(#t14{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t13.{core::Set::add}(3){(core::int) → core::bool};
+ #t13.{core::Set::addAll}{Invariant}(#t14{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t13.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t13);
core::print( block {
final core::Set<core::int> #t15 = new col::_CompactLinkedHashSet::•<core::int>();
- #t15.{core::Set::add}(1){(core::int) → core::bool};
- #t15.{core::Set::add}(2){(core::int) → core::bool};
+ #t15.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t15.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t16 = null;
if(!(#t16 == null))
- #t15.{core::Set::addAll}(#t16{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t15.{core::Set::add}(3){(core::int) → core::bool};
+ #t15.{core::Set::addAll}{Invariant}(#t16{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t15.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t15);
core::Set<core::int> set1 = block {
final core::Set<core::int> #t17 = new col::_CompactLinkedHashSet::•<core::int>();
@@ -73,57 +73,57 @@
final dynamic #t19 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t20 = #t19 as{TypeError,ForNonNullableByDefault} core::int;
- #t17.{core::Set::add}(#t20){(core::int) → core::bool};
+ #t17.{core::Set::add}{Invariant}(#t20){(core::int) → core::bool};
}
}
}
} =>#t17;
core::Set<core::int> set3 = block {
final core::Set<core::int> #t21 = new col::_CompactLinkedHashSet::•<core::int>();
- #t21.{core::Set::add}(1){(core::int) → core::bool};
- #t21.{core::Set::add}(2){(core::int) → core::bool};
+ #t21.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t21.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t22 = set;
if(!(#t22 == null))
- #t21.{core::Set::addAll}(#t22{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t21.{core::Set::add}(3){(core::int) → core::bool};
+ #t21.{core::Set::addAll}{Invariant}(#t22{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t21.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t21;
core::Set<core::int> set4 = block {
final core::Set<core::int> #t23 = new col::_CompactLinkedHashSet::•<core::int>();
- #t23.{core::Set::add}(1){(core::int) → core::bool};
- #t23.{core::Set::add}(2){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t24 = null;
if(!(#t24 == null))
- #t23.{core::Set::addAll}(#t24{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t23.{core::Set::add}(3){(core::int) → core::bool};
+ #t23.{core::Set::addAll}{Invariant}(#t24{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t23.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t23;
core::Map<core::int, core::int>? map = null;
core::print( block {
final core::Map<core::int, core::int> #t25 = <core::int, core::int>{};
- #t25.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t25.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t26 = map;
if(!(#t26 == null)) {
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t26{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t27 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t25.{core::Map::[]=}(#t27.{core::MapEntry::key}{core::int}, #t27.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}{core::int}, #t27.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
- #t25.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t25);
core::print( block {
final core::Map<core::int, core::int> #t28 = <core::int, core::int>{};
- #t28.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t28.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t29 = null;
if(!(#t29 == null)) {
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t29{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t30 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t28.{core::Map::[]=}(#t30.{core::MapEntry::key}{core::int}, #t30.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(#t30.{core::MapEntry::key}{core::int}, #t30.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
- #t28.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t28);
core::Map<core::int, core::int> map1 = block {
final core::Map<core::int, core::int> #t31 = <core::int, core::int>{};
@@ -132,36 +132,36 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t32{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t33 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t31.{core::Map::[]=}(#t33.{core::MapEntry::key}{core::int}, #t33.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t31.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}{core::int}, #t33.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
} =>#t31;
core::Map<core::int, core::int> map3 = block {
final core::Map<core::int, core::int> #t34 = <core::int, core::int>{};
- #t34.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t34.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t35 = map;
if(!(#t35 == null)) {
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t35{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t36 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t34.{core::Map::[]=}(#t36.{core::MapEntry::key}{core::int}, #t36.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(#t36.{core::MapEntry::key}{core::int}, #t36.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
- #t34.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t34;
core::Map<core::int, core::int> map4 = block {
final core::Map<core::int, core::int> #t37 = <core::int, core::int>{};
- #t37.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t37.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t38 = null;
if(!(#t38 == null)) {
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t38{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t39 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t37.{core::Map::[]=}(#t39.{core::MapEntry::key}{core::int}, #t39.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(#t39.{core::MapEntry::key}{core::int}, #t39.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
- #t37.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t37;
}
diff --git a/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.expect b/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.expect
index 872ee8f..14bef22c5 100644
--- a/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.expect
@@ -9,60 +9,60 @@
final core::List<core::int> #t1 = <core::int>[1, 2];
final core::Iterable<core::int>? #t2 = list;
if(!(#t2 == null))
- #t1.{core::List::addAll}(#t2{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t1.{core::List::add}(3){(core::int) → void};
+ #t1.{core::List::addAll}{Invariant}(#t2{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t1.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t1);
core::print( block {
final core::List<core::int> #t3 = <core::int>[1, 2];
final core::Iterable<core::int>? #t4 = null;
if(!(#t4 == null))
- #t3.{core::List::addAll}(#t4{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t3.{core::List::add}(3){(core::int) → void};
+ #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t3.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t3);
core::List<core::int> list1 = block {
final core::List<core::int> #t5 = <core::int>[];
final core::Iterable<core::int>? #t6 = list;
if(!(#t6 == null))
- #t5.{core::List::addAll}(#t6{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
} =>#t5;
core::List<Never> list2 = block {
final core::List<Never> #t7 = <Never>[];
final core::Iterable<Never>? #t8 = null;
if(!(#t8 == null))
- #t7.{core::List::addAll}(#t8{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t7.{core::List::addAll}{Invariant}(#t8{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t7;
core::List<core::int> list3 = block {
final core::List<core::int> #t9 = <core::int>[1, 2];
final core::Iterable<core::int>? #t10 = list;
if(!(#t10 == null))
- #t9.{core::List::addAll}(#t10{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t9.{core::List::add}(3){(core::int) → void};
+ #t9.{core::List::addAll}{Invariant}(#t10{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t9.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t9;
core::List<core::int> list4 = block {
final core::List<core::int> #t11 = <core::int>[1, 2];
final core::Iterable<core::int>? #t12 = null;
if(!(#t12 == null))
- #t11.{core::List::addAll}(#t12{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t11.{core::List::add}(3){(core::int) → void};
+ #t11.{core::List::addAll}{Invariant}(#t12{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t11.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t11;
core::Set<core::int>? set = null;
core::print( block {
final core::Set<core::int> #t13 = col::LinkedHashSet::•<core::int>();
- #t13.{core::Set::add}(1){(core::int) → core::bool};
- #t13.{core::Set::add}(2){(core::int) → core::bool};
+ #t13.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t13.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t14 = set;
if(!(#t14 == null))
- #t13.{core::Set::addAll}(#t14{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t13.{core::Set::add}(3){(core::int) → core::bool};
+ #t13.{core::Set::addAll}{Invariant}(#t14{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t13.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t13);
core::print( block {
final core::Set<core::int> #t15 = col::LinkedHashSet::•<core::int>();
- #t15.{core::Set::add}(1){(core::int) → core::bool};
- #t15.{core::Set::add}(2){(core::int) → core::bool};
+ #t15.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t15.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t16 = null;
if(!(#t16 == null))
- #t15.{core::Set::addAll}(#t16{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t15.{core::Set::add}(3){(core::int) → core::bool};
+ #t15.{core::Set::addAll}{Invariant}(#t16{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t15.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t15);
core::Set<core::int> set1 = block {
final core::Set<core::int> #t17 = col::LinkedHashSet::•<core::int>();
@@ -70,73 +70,73 @@
if(!(#t18 == null))
for (final dynamic #t19 in #t18{core::Iterable<dynamic>}) {
final core::int #t20 = #t19 as{TypeError,ForNonNullableByDefault} core::int;
- #t17.{core::Set::add}(#t20){(core::int) → core::bool};
+ #t17.{core::Set::add}{Invariant}(#t20){(core::int) → core::bool};
}
} =>#t17;
core::Set<core::int> set3 = block {
final core::Set<core::int> #t21 = col::LinkedHashSet::•<core::int>();
- #t21.{core::Set::add}(1){(core::int) → core::bool};
- #t21.{core::Set::add}(2){(core::int) → core::bool};
+ #t21.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t21.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t22 = set;
if(!(#t22 == null))
- #t21.{core::Set::addAll}(#t22{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t21.{core::Set::add}(3){(core::int) → core::bool};
+ #t21.{core::Set::addAll}{Invariant}(#t22{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t21.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t21;
core::Set<core::int> set4 = block {
final core::Set<core::int> #t23 = col::LinkedHashSet::•<core::int>();
- #t23.{core::Set::add}(1){(core::int) → core::bool};
- #t23.{core::Set::add}(2){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t24 = null;
if(!(#t24 == null))
- #t23.{core::Set::addAll}(#t24{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t23.{core::Set::add}(3){(core::int) → core::bool};
+ #t23.{core::Set::addAll}{Invariant}(#t24{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t23.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t23;
core::Map<core::int, core::int>? map = null;
core::print( block {
final core::Map<core::int, core::int> #t25 = <core::int, core::int>{};
- #t25.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t25.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t26 = map;
if(!(#t26 == null))
for (final core::MapEntry<core::int, core::int> #t27 in #t26{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t25.{core::Map::[]=}(#t27.{core::MapEntry::key}{core::int}, #t27.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
- #t25.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}{core::int}, #t27.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t25);
core::print( block {
final core::Map<core::int, core::int> #t28 = <core::int, core::int>{};
- #t28.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t28.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t29 = null;
if(!(#t29 == null))
for (final core::MapEntry<core::int, core::int> #t30 in #t29{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t28.{core::Map::[]=}(#t30.{core::MapEntry::key}{core::int}, #t30.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
- #t28.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(#t30.{core::MapEntry::key}{core::int}, #t30.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t28);
core::Map<core::int, core::int> map1 = block {
final core::Map<core::int, core::int> #t31 = <core::int, core::int>{};
final core::Map<core::int, core::int>? #t32 = map;
if(!(#t32 == null))
for (final core::MapEntry<core::int, core::int> #t33 in #t32{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t31.{core::Map::[]=}(#t33.{core::MapEntry::key}{core::int}, #t33.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t31.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}{core::int}, #t33.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
} =>#t31;
core::Map<core::int, core::int> map3 = block {
final core::Map<core::int, core::int> #t34 = <core::int, core::int>{};
- #t34.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t34.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t35 = map;
if(!(#t35 == null))
for (final core::MapEntry<core::int, core::int> #t36 in #t35{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t34.{core::Map::[]=}(#t36.{core::MapEntry::key}{core::int}, #t36.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
- #t34.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(#t36.{core::MapEntry::key}{core::int}, #t36.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t34;
core::Map<core::int, core::int> map4 = block {
final core::Map<core::int, core::int> #t37 = <core::int, core::int>{};
- #t37.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t37.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t38 = null;
if(!(#t38 == null))
for (final core::MapEntry<core::int, core::int> #t39 in #t38{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>})
- #t37.{core::Map::[]=}(#t39.{core::MapEntry::key}{core::int}, #t39.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
- #t37.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(#t39.{core::MapEntry::key}{core::int}, #t39.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t37;
}
diff --git a/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.transformed.expect
index c45184d..2cc24c5 100644
--- a/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.transformed.expect
@@ -9,60 +9,60 @@
final core::List<core::int> #t1 = core::_GrowableList::_literal2<core::int>(1, 2);
final core::Iterable<core::int>? #t2 = list;
if(!(#t2 == null))
- #t1.{core::List::addAll}(#t2{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t1.{core::List::add}(3){(core::int) → void};
+ #t1.{core::List::addAll}{Invariant}(#t2{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t1.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t1);
core::print( block {
final core::List<core::int> #t3 = core::_GrowableList::_literal2<core::int>(1, 2);
final core::Iterable<core::int>? #t4 = null;
if(!(#t4 == null))
- #t3.{core::List::addAll}(#t4{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t3.{core::List::add}(3){(core::int) → void};
+ #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t3.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t3);
core::List<core::int> list1 = block {
final core::List<core::int> #t5 = core::_GrowableList::•<core::int>(0);
final core::Iterable<core::int>? #t6 = list;
if(!(#t6 == null))
- #t5.{core::List::addAll}(#t6{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
} =>#t5;
core::List<Never> list2 = block {
final core::List<Never> #t7 = core::_GrowableList::•<Never>(0);
final core::Iterable<Never>? #t8 = null;
if(!(#t8 == null))
- #t7.{core::List::addAll}(#t8{core::Iterable<Never>}){(core::Iterable<Never>) → void};
+ #t7.{core::List::addAll}{Invariant}(#t8{core::Iterable<Never>}){(core::Iterable<Never>) → void};
} =>#t7;
core::List<core::int> list3 = block {
final core::List<core::int> #t9 = core::_GrowableList::_literal2<core::int>(1, 2);
final core::Iterable<core::int>? #t10 = list;
if(!(#t10 == null))
- #t9.{core::List::addAll}(#t10{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t9.{core::List::add}(3){(core::int) → void};
+ #t9.{core::List::addAll}{Invariant}(#t10{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t9.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t9;
core::List<core::int> list4 = block {
final core::List<core::int> #t11 = core::_GrowableList::_literal2<core::int>(1, 2);
final core::Iterable<core::int>? #t12 = null;
if(!(#t12 == null))
- #t11.{core::List::addAll}(#t12{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t11.{core::List::add}(3){(core::int) → void};
+ #t11.{core::List::addAll}{Invariant}(#t12{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t11.{core::List::add}{Invariant}(3){(core::int) → void};
} =>#t11;
core::Set<core::int>? set = null;
core::print( block {
final core::Set<core::int> #t13 = new col::_CompactLinkedHashSet::•<core::int>();
- #t13.{core::Set::add}(1){(core::int) → core::bool};
- #t13.{core::Set::add}(2){(core::int) → core::bool};
+ #t13.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t13.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t14 = set;
if(!(#t14 == null))
- #t13.{core::Set::addAll}(#t14{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t13.{core::Set::add}(3){(core::int) → core::bool};
+ #t13.{core::Set::addAll}{Invariant}(#t14{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t13.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t13);
core::print( block {
final core::Set<core::int> #t15 = new col::_CompactLinkedHashSet::•<core::int>();
- #t15.{core::Set::add}(1){(core::int) → core::bool};
- #t15.{core::Set::add}(2){(core::int) → core::bool};
+ #t15.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t15.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t16 = null;
if(!(#t16 == null))
- #t15.{core::Set::addAll}(#t16{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t15.{core::Set::add}(3){(core::int) → core::bool};
+ #t15.{core::Set::addAll}{Invariant}(#t16{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t15.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t15);
core::Set<core::int> set1 = block {
final core::Set<core::int> #t17 = new col::_CompactLinkedHashSet::•<core::int>();
@@ -73,57 +73,57 @@
final dynamic #t19 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t20 = #t19 as{TypeError,ForNonNullableByDefault} core::int;
- #t17.{core::Set::add}(#t20){(core::int) → core::bool};
+ #t17.{core::Set::add}{Invariant}(#t20){(core::int) → core::bool};
}
}
}
} =>#t17;
core::Set<core::int> set3 = block {
final core::Set<core::int> #t21 = new col::_CompactLinkedHashSet::•<core::int>();
- #t21.{core::Set::add}(1){(core::int) → core::bool};
- #t21.{core::Set::add}(2){(core::int) → core::bool};
+ #t21.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t21.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t22 = set;
if(!(#t22 == null))
- #t21.{core::Set::addAll}(#t22{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t21.{core::Set::add}(3){(core::int) → core::bool};
+ #t21.{core::Set::addAll}{Invariant}(#t22{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t21.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t21;
core::Set<core::int> set4 = block {
final core::Set<core::int> #t23 = new col::_CompactLinkedHashSet::•<core::int>();
- #t23.{core::Set::add}(1){(core::int) → core::bool};
- #t23.{core::Set::add}(2){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
final core::Iterable<core::int>? #t24 = null;
if(!(#t24 == null))
- #t23.{core::Set::addAll}(#t24{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
- #t23.{core::Set::add}(3){(core::int) → core::bool};
+ #t23.{core::Set::addAll}{Invariant}(#t24{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t23.{core::Set::add}{Invariant}(3){(core::int) → core::bool};
} =>#t23;
core::Map<core::int, core::int>? map = null;
core::print( block {
final core::Map<core::int, core::int> #t25 = <core::int, core::int>{};
- #t25.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t25.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t26 = map;
if(!(#t26 == null)) {
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t26{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t27 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t25.{core::Map::[]=}(#t27.{core::MapEntry::key}{core::int}, #t27.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(#t27.{core::MapEntry::key}{core::int}, #t27.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
- #t25.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t25.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t25);
core::print( block {
final core::Map<core::int, core::int> #t28 = <core::int, core::int>{};
- #t28.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t28.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t29 = null;
if(!(#t29 == null)) {
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t29{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t30 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t28.{core::Map::[]=}(#t30.{core::MapEntry::key}{core::int}, #t30.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(#t30.{core::MapEntry::key}{core::int}, #t30.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
- #t28.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t28.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t28);
core::Map<core::int, core::int> map1 = block {
final core::Map<core::int, core::int> #t31 = <core::int, core::int>{};
@@ -132,36 +132,36 @@
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t32{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t33 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t31.{core::Map::[]=}(#t33.{core::MapEntry::key}{core::int}, #t33.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t31.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}{core::int}, #t33.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
} =>#t31;
core::Map<core::int, core::int> map3 = block {
final core::Map<core::int, core::int> #t34 = <core::int, core::int>{};
- #t34.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t34.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t35 = map;
if(!(#t35 == null)) {
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t35{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t36 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t34.{core::Map::[]=}(#t36.{core::MapEntry::key}{core::int}, #t36.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(#t36.{core::MapEntry::key}{core::int}, #t36.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
- #t34.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t34.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t34;
core::Map<core::int, core::int> map4 = block {
final core::Map<core::int, core::int> #t37 = <core::int, core::int>{};
- #t37.{core::Map::[]=}(1, 1){(core::int, core::int) → void};
- #t37.{core::Map::[]=}(2, 2){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(1, 1){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(2, 2){(core::int, core::int) → void};
final core::Map<core::int, core::int>? #t38 = null;
if(!(#t38 == null)) {
core::Iterator<core::MapEntry<core::int, core::int>> :sync-for-iterator = #t38{core::Map<core::int, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int, core::int> #t39 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int, core::int>};
- #t37.{core::Map::[]=}(#t39.{core::MapEntry::key}{core::int}, #t39.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(#t39.{core::MapEntry::key}{core::int}, #t39.{core::MapEntry::value}{core::int}){(core::int, core::int) → void};
}
}
- #t37.{core::Map::[]=}(3, 3){(core::int, core::int) → void};
+ #t37.{core::Map::[]=}{Invariant}(3, 3){(core::int, core::int) → void};
} =>#t37;
}
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.expect
index 4b1d92e..c211559 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.expect
@@ -141,7 +141,7 @@
final core::List<core::String> #t5 = <core::String>[];
final core::Iterable<core::String>? #t6 = l;
if(!(#t6 == null))
- #t5.{core::List::addAll}(#t6{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
+ #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
} =>#t5;
core::Set<core::String> a = block {
final core::Set<core::String> #t7 = col::LinkedHashSet::•<core::String>();
@@ -149,28 +149,28 @@
if(!(#t8 == null))
for (final dynamic #t9 in #t8{core::Iterable<dynamic>}) {
final core::String #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::String;
- #t7.{core::Set::add}(#t10){(core::String) → core::bool};
+ #t7.{core::Set::add}{Invariant}(#t10){(core::String) → core::bool};
}
} =>#t7;
block {
final core::Set<core::String> #t11 = col::LinkedHashSet::•<core::String>();
final core::Iterable<core::String>? #t12 = l;
if(!(#t12 == null))
- #t11.{core::Set::addAll}(#t12{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
+ #t11.{core::Set::addAll}{Invariant}(#t12{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
} =>#t11;
core::Map<core::String, core::int> b = block {
final core::Map<core::String, core::int> #t13 = <core::String, core::int>{};
final core::Map<core::String, core::int>? #t14 = m;
if(!(#t14 == null))
for (final core::MapEntry<core::String, core::int> #t15 in #t14{core::Map<core::String, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int>>})
- #t13.{core::Map::[]=}(#t15.{core::MapEntry::key}{core::String}, #t15.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
+ #t13.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}{core::String}, #t15.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
} =>#t13;
block {
final core::Map<core::String, core::int> #t16 = <core::String, core::int>{};
final core::Map<core::String, core::int>? #t17 = m;
if(!(#t17 == null))
for (final core::MapEntry<core::String, core::int> #t18 in #t17{core::Map<core::String, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int>>})
- #t16.{core::Map::[]=}(#t18.{core::MapEntry::key}{core::String}, #t18.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
+ #t16.{core::Map::[]=}{Invariant}(#t18.{core::MapEntry::key}{core::String}, #t18.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
} =>#t16;
s!;
let final core::String #t19 = s in #t19 == null ?{core::String?} null : #t19.{core::String::substring}(0, 0){(core::int, [core::int?]) → core::String};
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect
index 68f5e76..2b3f245 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect
@@ -141,7 +141,7 @@
final core::List<core::String> #t5 = core::_GrowableList::•<core::String>(0);
final core::Iterable<core::String>? #t6 = l;
if(!(#t6 == null))
- #t5.{core::List::addAll}(#t6{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
+ #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
} =>#t5;
core::Set<core::String> a = block {
final core::Set<core::String> #t7 = new col::_CompactLinkedHashSet::•<core::String>();
@@ -152,7 +152,7 @@
final dynamic #t9 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::String #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::String;
- #t7.{core::Set::add}(#t10){(core::String) → core::bool};
+ #t7.{core::Set::add}{Invariant}(#t10){(core::String) → core::bool};
}
}
}
@@ -161,7 +161,7 @@
final core::Set<core::String> #t11 = new col::_CompactLinkedHashSet::•<core::String>();
final core::Iterable<core::String>? #t12 = l;
if(!(#t12 == null))
- #t11.{core::Set::addAll}(#t12{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
+ #t11.{core::Set::addAll}{Invariant}(#t12{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
} =>#t11;
core::Map<core::String, core::int> b = block {
final core::Map<core::String, core::int> #t13 = <core::String, core::int>{};
@@ -170,7 +170,7 @@
core::Iterator<core::MapEntry<core::String, core::int>> :sync-for-iterator = #t14{core::Map<core::String, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String, core::int> #t15 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int>};
- #t13.{core::Map::[]=}(#t15.{core::MapEntry::key}{core::String}, #t15.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
+ #t13.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}{core::String}, #t15.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
}
}
} =>#t13;
@@ -181,7 +181,7 @@
core::Iterator<core::MapEntry<core::String, core::int>> :sync-for-iterator = #t17{core::Map<core::String, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String, core::int> #t18 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int>};
- #t16.{core::Map::[]=}(#t18.{core::MapEntry::key}{core::String}, #t18.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
+ #t16.{core::Map::[]=}{Invariant}(#t18.{core::MapEntry::key}{core::String}, #t18.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
}
}
} =>#t16;
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.expect
index 4b1d92e..c211559 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.expect
@@ -141,7 +141,7 @@
final core::List<core::String> #t5 = <core::String>[];
final core::Iterable<core::String>? #t6 = l;
if(!(#t6 == null))
- #t5.{core::List::addAll}(#t6{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
+ #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
} =>#t5;
core::Set<core::String> a = block {
final core::Set<core::String> #t7 = col::LinkedHashSet::•<core::String>();
@@ -149,28 +149,28 @@
if(!(#t8 == null))
for (final dynamic #t9 in #t8{core::Iterable<dynamic>}) {
final core::String #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::String;
- #t7.{core::Set::add}(#t10){(core::String) → core::bool};
+ #t7.{core::Set::add}{Invariant}(#t10){(core::String) → core::bool};
}
} =>#t7;
block {
final core::Set<core::String> #t11 = col::LinkedHashSet::•<core::String>();
final core::Iterable<core::String>? #t12 = l;
if(!(#t12 == null))
- #t11.{core::Set::addAll}(#t12{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
+ #t11.{core::Set::addAll}{Invariant}(#t12{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
} =>#t11;
core::Map<core::String, core::int> b = block {
final core::Map<core::String, core::int> #t13 = <core::String, core::int>{};
final core::Map<core::String, core::int>? #t14 = m;
if(!(#t14 == null))
for (final core::MapEntry<core::String, core::int> #t15 in #t14{core::Map<core::String, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int>>})
- #t13.{core::Map::[]=}(#t15.{core::MapEntry::key}{core::String}, #t15.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
+ #t13.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}{core::String}, #t15.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
} =>#t13;
block {
final core::Map<core::String, core::int> #t16 = <core::String, core::int>{};
final core::Map<core::String, core::int>? #t17 = m;
if(!(#t17 == null))
for (final core::MapEntry<core::String, core::int> #t18 in #t17{core::Map<core::String, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int>>})
- #t16.{core::Map::[]=}(#t18.{core::MapEntry::key}{core::String}, #t18.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
+ #t16.{core::Map::[]=}{Invariant}(#t18.{core::MapEntry::key}{core::String}, #t18.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
} =>#t16;
s!;
let final core::String #t19 = s in #t19 == null ?{core::String?} null : #t19.{core::String::substring}(0, 0){(core::int, [core::int?]) → core::String};
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect
index 68f5e76..2b3f245 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect
@@ -141,7 +141,7 @@
final core::List<core::String> #t5 = core::_GrowableList::•<core::String>(0);
final core::Iterable<core::String>? #t6 = l;
if(!(#t6 == null))
- #t5.{core::List::addAll}(#t6{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
+ #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
} =>#t5;
core::Set<core::String> a = block {
final core::Set<core::String> #t7 = new col::_CompactLinkedHashSet::•<core::String>();
@@ -152,7 +152,7 @@
final dynamic #t9 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::String #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::String;
- #t7.{core::Set::add}(#t10){(core::String) → core::bool};
+ #t7.{core::Set::add}{Invariant}(#t10){(core::String) → core::bool};
}
}
}
@@ -161,7 +161,7 @@
final core::Set<core::String> #t11 = new col::_CompactLinkedHashSet::•<core::String>();
final core::Iterable<core::String>? #t12 = l;
if(!(#t12 == null))
- #t11.{core::Set::addAll}(#t12{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
+ #t11.{core::Set::addAll}{Invariant}(#t12{core::Iterable<core::String>}){(core::Iterable<core::String>) → void};
} =>#t11;
core::Map<core::String, core::int> b = block {
final core::Map<core::String, core::int> #t13 = <core::String, core::int>{};
@@ -170,7 +170,7 @@
core::Iterator<core::MapEntry<core::String, core::int>> :sync-for-iterator = #t14{core::Map<core::String, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String, core::int> #t15 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int>};
- #t13.{core::Map::[]=}(#t15.{core::MapEntry::key}{core::String}, #t15.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
+ #t13.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}{core::String}, #t15.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
}
}
} =>#t13;
@@ -181,7 +181,7 @@
core::Iterator<core::MapEntry<core::String, core::int>> :sync-for-iterator = #t17{core::Map<core::String, core::int>}.{core::Map::entries}{core::Iterable<core::MapEntry<core::String, core::int>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::String, core::int>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::String, core::int> #t18 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::String, core::int>};
- #t16.{core::Map::[]=}(#t18.{core::MapEntry::key}{core::String}, #t18.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
+ #t16.{core::Map::[]=}{Invariant}(#t18.{core::MapEntry::key}{core::String}, #t18.{core::MapEntry::value}{core::int}){(core::String, core::int) → void};
}
}
} =>#t16;
diff --git a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.expect b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.expect
index 09c6491..9cbfdf4 100644
--- a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.expect
@@ -81,8 +81,8 @@
^" in nt as{TypeError,ForNonNullableByDefault} () →? core::int);
}
static method bar<T extends self::C>(self::C c, self::bar::T t) → dynamic {
- self::functionContext(let final self::C #t9 = c in #t9 == null ?{() → core::int} null : #t9.{self::C::call});
- self::nullableFunctionContext(let final self::C #t10 = c in #t10 == null ?{() → core::int} null : #t10.{self::C::call});
+ self::functionContext(let final self::C #t9 = c in #t9 == null ?{() → core::int} null : #t9.{self::C::call}{() → core::int});
+ self::nullableFunctionContext(let final self::C #t10 = c in #t10 == null ?{() → core::int} null : #t10.{self::C::call}{() → core::int});
self::functionContext(let final Never #t11 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:27:19: Error: The argument type 'T' can't be assigned to the parameter type 'int Function()'.
functionContext(t); // Shouldn't result in a compile-time error.
^" in t as{TypeError,ForNonNullableByDefault} () → core::int);
diff --git a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.transformed.expect
index 39b2ea0..99736f9 100644
--- a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.transformed.expect
@@ -81,8 +81,8 @@
^" in nt as{TypeError,ForNonNullableByDefault} () →? core::int);
}
static method bar<T extends self::C>(self::C c, self::bar::T t) → dynamic {
- self::functionContext(let final self::C #t10 = c in #t10 == null ?{() → core::int} null : #t10.{self::C::call});
- self::nullableFunctionContext(let final self::C #t11 = c in #t11 == null ?{() → core::int} null : #t11.{self::C::call});
+ self::functionContext(let final self::C #t10 = c in #t10 == null ?{() → core::int} null : #t10.{self::C::call}{() → core::int});
+ self::nullableFunctionContext(let final self::C #t11 = c in #t11 == null ?{() → core::int} null : #t11.{self::C::call}{() → core::int});
self::functionContext(let final Never #t12 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:27:19: Error: The argument type 'T' can't be assigned to the parameter type 'int Function()'.
functionContext(t); // Shouldn't result in a compile-time error.
^" in t as{TypeError,ForNonNullableByDefault} () → core::int);
diff --git a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.expect b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.expect
index 09c6491..9cbfdf4 100644
--- a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.expect
@@ -81,8 +81,8 @@
^" in nt as{TypeError,ForNonNullableByDefault} () →? core::int);
}
static method bar<T extends self::C>(self::C c, self::bar::T t) → dynamic {
- self::functionContext(let final self::C #t9 = c in #t9 == null ?{() → core::int} null : #t9.{self::C::call});
- self::nullableFunctionContext(let final self::C #t10 = c in #t10 == null ?{() → core::int} null : #t10.{self::C::call});
+ self::functionContext(let final self::C #t9 = c in #t9 == null ?{() → core::int} null : #t9.{self::C::call}{() → core::int});
+ self::nullableFunctionContext(let final self::C #t10 = c in #t10 == null ?{() → core::int} null : #t10.{self::C::call}{() → core::int});
self::functionContext(let final Never #t11 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:27:19: Error: The argument type 'T' can't be assigned to the parameter type 'int Function()'.
functionContext(t); // Shouldn't result in a compile-time error.
^" in t as{TypeError,ForNonNullableByDefault} () → core::int);
diff --git a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.transformed.expect
index 9249659..3f2deb7 100644
--- a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.transformed.expect
@@ -81,8 +81,8 @@
^" in nt as{TypeError,ForNonNullableByDefault} () →? core::int);
}
static method bar<T extends self::C>(self::C c, self::bar::T t) → dynamic {
- self::functionContext(let final self::C #t9 = c in #t9 == null ?{() → core::int} null : #t9.{self::C::call});
- self::nullableFunctionContext(let final self::C #t10 = c in #t10 == null ?{() → core::int} null : #t10.{self::C::call});
+ self::functionContext(let final self::C #t9 = c in #t9 == null ?{() → core::int} null : #t9.{self::C::call}{() → core::int});
+ self::nullableFunctionContext(let final self::C #t10 = c in #t10 == null ?{() → core::int} null : #t10.{self::C::call}{() → core::int});
self::functionContext(let final Never #t11 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:27:19: Error: The argument type 'T' can't be assigned to the parameter type 'int Function()'.
functionContext(t); // Shouldn't result in a compile-time error.
^" in t as{TypeError,ForNonNullableByDefault} () → core::int);
diff --git a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.expect
index 7698d5d..6cfd88a 100644
--- a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.expect
@@ -37,83 +37,83 @@
core::List<Null>* local1i = <Null>[null];
core::Set<inf::C<dynamic>*>* local2a = block {
final core::Set<inf::C<dynamic>*>* #t1 = col::LinkedHashSet::•<inf::C<dynamic>*>();
- #t1.{core::Set::add}(inf::field1){(inf::C<dynamic>*) →* core::bool*};
- #t1.{core::Set::add}(null){(inf::C<dynamic>*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(inf::field1){(inf::C<dynamic>*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(null){(inf::C<dynamic>*) →* core::bool*};
} =>#t1;
core::Set<inf::C<dynamic>*>* local2b = block {
final core::Set<inf::C<dynamic>*>* #t2 = col::LinkedHashSet::•<inf::C<dynamic>*>();
- #t2.{core::Set::add}(inf::field2){(inf::C<dynamic>*) →* core::bool*};
- #t2.{core::Set::add}(null){(inf::C<dynamic>*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(inf::field2){(inf::C<dynamic>*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(null){(inf::C<dynamic>*) →* core::bool*};
} =>#t2;
core::Set<inf::C<core::int*>*>* local2c = block {
final core::Set<inf::C<core::int*>*>* #t3 = col::LinkedHashSet::•<inf::C<core::int*>*>();
- #t3.{core::Set::add}(inf::field3){(inf::C<core::int*>*) →* core::bool*};
- #t3.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t3.{core::Set::add}{Invariant}(inf::field3){(inf::C<core::int*>*) →* core::bool*};
+ #t3.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
} =>#t3;
core::Set<inf::C<core::int*>*>* local2d = block {
final core::Set<inf::C<core::int*>*>* #t4 = col::LinkedHashSet::•<inf::C<core::int*>*>();
- #t4.{core::Set::add}(inf::field4){(inf::C<core::int*>*) →* core::bool*};
- #t4.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t4.{core::Set::add}{Invariant}(inf::field4){(inf::C<core::int*>*) →* core::bool*};
+ #t4.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
} =>#t4;
core::Set<inf::C<core::int*>*>* local2e = block {
final core::Set<inf::C<core::int*>*>* #t5 = col::LinkedHashSet::•<inf::C<core::int*>*>();
- #t5.{core::Set::add}(inf::field5){(inf::C<core::int*>*) →* core::bool*};
- #t5.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(inf::field5){(inf::C<core::int*>*) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
} =>#t5;
core::Set<inf::C<core::int*>*>* local2f = block {
final core::Set<inf::C<core::int*>*>* #t6 = col::LinkedHashSet::•<inf::C<core::int*>*>();
- #t6.{core::Set::add}(inf::field6){(inf::C<core::int*>*) →* core::bool*};
- #t6.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(inf::field6){(inf::C<core::int*>*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
} =>#t6;
core::Set<core::int*>* local2g = block {
final core::Set<core::int*>* #t7 = col::LinkedHashSet::•<core::int*>();
- #t7.{core::Set::add}(inf::field7){(core::int*) →* core::bool*};
- #t7.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t7.{core::Set::add}{Invariant}(inf::field7){(core::int*) →* core::bool*};
+ #t7.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t7;
core::Set<core::int*>* local2h = block {
final core::Set<core::int*>* #t8 = col::LinkedHashSet::•<core::int*>();
- #t8.{core::Set::add}(inf::field8){(core::int*) →* core::bool*};
- #t8.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(inf::field8){(core::int*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t8;
core::Set<inf::C<dynamic>*>* local3a = block {
final core::Set<inf::C<dynamic>*>* #t9 = col::LinkedHashSet::•<inf::C<dynamic>*>();
- #t9.{core::Set::add}(null){(inf::C<dynamic>*) →* core::bool*};
- #t9.{core::Set::add}(inf::field1){(inf::C<dynamic>*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(null){(inf::C<dynamic>*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(inf::field1){(inf::C<dynamic>*) →* core::bool*};
} =>#t9;
core::Set<inf::C<dynamic>*>* local3b = block {
final core::Set<inf::C<dynamic>*>* #t10 = col::LinkedHashSet::•<inf::C<dynamic>*>();
- #t10.{core::Set::add}(null){(inf::C<dynamic>*) →* core::bool*};
- #t10.{core::Set::add}(inf::field2){(inf::C<dynamic>*) →* core::bool*};
+ #t10.{core::Set::add}{Invariant}(null){(inf::C<dynamic>*) →* core::bool*};
+ #t10.{core::Set::add}{Invariant}(inf::field2){(inf::C<dynamic>*) →* core::bool*};
} =>#t10;
core::Set<inf::C<core::int*>*>* local3c = block {
final core::Set<inf::C<core::int*>*>* #t11 = col::LinkedHashSet::•<inf::C<core::int*>*>();
- #t11.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
- #t11.{core::Set::add}(inf::field3){(inf::C<core::int*>*) →* core::bool*};
+ #t11.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t11.{core::Set::add}{Invariant}(inf::field3){(inf::C<core::int*>*) →* core::bool*};
} =>#t11;
core::Set<inf::C<core::int*>*>* local3d = block {
final core::Set<inf::C<core::int*>*>* #t12 = col::LinkedHashSet::•<inf::C<core::int*>*>();
- #t12.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
- #t12.{core::Set::add}(inf::field4){(inf::C<core::int*>*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(inf::field4){(inf::C<core::int*>*) →* core::bool*};
} =>#t12;
core::Set<inf::C<core::int*>*>* local3e = block {
final core::Set<inf::C<core::int*>*>* #t13 = col::LinkedHashSet::•<inf::C<core::int*>*>();
- #t13.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
- #t13.{core::Set::add}(inf::field5){(inf::C<core::int*>*) →* core::bool*};
+ #t13.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t13.{core::Set::add}{Invariant}(inf::field5){(inf::C<core::int*>*) →* core::bool*};
} =>#t13;
core::Set<inf::C<core::int*>*>* local3f = block {
final core::Set<inf::C<core::int*>*>* #t14 = col::LinkedHashSet::•<inf::C<core::int*>*>();
- #t14.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
- #t14.{core::Set::add}(inf::field6){(inf::C<core::int*>*) →* core::bool*};
+ #t14.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t14.{core::Set::add}{Invariant}(inf::field6){(inf::C<core::int*>*) →* core::bool*};
} =>#t14;
core::Set<core::int*>* local3g = block {
final core::Set<core::int*>* #t15 = col::LinkedHashSet::•<core::int*>();
- #t15.{core::Set::add}(null){(core::int*) →* core::bool*};
- #t15.{core::Set::add}(inf::field7){(core::int*) →* core::bool*};
+ #t15.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
+ #t15.{core::Set::add}{Invariant}(inf::field7){(core::int*) →* core::bool*};
} =>#t15;
core::Set<core::int*>* local3h = block {
final core::Set<core::int*>* #t16 = col::LinkedHashSet::•<core::int*>();
- #t16.{core::Set::add}(null){(core::int*) →* core::bool*};
- #t16.{core::Set::add}(inf::field8){(core::int*) →* core::bool*};
+ #t16.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
+ #t16.{core::Set::add}{Invariant}(inf::field8){(core::int*) →* core::bool*};
} =>#t16;
}
@@ -167,82 +167,82 @@
core::List<Null> local1i = <Null>[null];
core::Set<inf::C<dynamic>?> local2a = block {
final core::Set<inf::C<dynamic>?> #t17 = col::LinkedHashSet::•<inf::C<dynamic>?>();
- #t17.{core::Set::add}(inf::field1){(inf::C<dynamic>?) → core::bool};
- #t17.{core::Set::add}(null){(inf::C<dynamic>?) → core::bool};
+ #t17.{core::Set::add}{Invariant}(inf::field1){(inf::C<dynamic>?) → core::bool};
+ #t17.{core::Set::add}{Invariant}(null){(inf::C<dynamic>?) → core::bool};
} =>#t17;
core::Set<inf::C<dynamic>?> local2b = block {
final core::Set<inf::C<dynamic>?> #t18 = col::LinkedHashSet::•<inf::C<dynamic>?>();
- #t18.{core::Set::add}(inf::field2){(inf::C<dynamic>?) → core::bool};
- #t18.{core::Set::add}(null){(inf::C<dynamic>?) → core::bool};
+ #t18.{core::Set::add}{Invariant}(inf::field2){(inf::C<dynamic>?) → core::bool};
+ #t18.{core::Set::add}{Invariant}(null){(inf::C<dynamic>?) → core::bool};
} =>#t18;
core::Set<inf::C<core::int>?> local2c = block {
final core::Set<inf::C<core::int>?> #t19 = col::LinkedHashSet::•<inf::C<core::int>?>();
- #t19.{core::Set::add}(inf::field3){(inf::C<core::int>?) → core::bool};
- #t19.{core::Set::add}(null){(inf::C<core::int>?) → core::bool};
+ #t19.{core::Set::add}{Invariant}(inf::field3){(inf::C<core::int>?) → core::bool};
+ #t19.{core::Set::add}{Invariant}(null){(inf::C<core::int>?) → core::bool};
} =>#t19;
core::Set<inf::C<core::int>?> local2d = block {
final core::Set<inf::C<core::int>?> #t20 = col::LinkedHashSet::•<inf::C<core::int>?>();
- #t20.{core::Set::add}(inf::field4){(inf::C<core::int>?) → core::bool};
- #t20.{core::Set::add}(null){(inf::C<core::int>?) → core::bool};
+ #t20.{core::Set::add}{Invariant}(inf::field4){(inf::C<core::int>?) → core::bool};
+ #t20.{core::Set::add}{Invariant}(null){(inf::C<core::int>?) → core::bool};
} =>#t20;
core::Set<inf::C<core::int?>?> local2e = block {
final core::Set<inf::C<core::int?>?> #t21 = col::LinkedHashSet::•<inf::C<core::int?>?>();
- #t21.{core::Set::add}(inf::field5){(inf::C<core::int?>?) → core::bool};
- #t21.{core::Set::add}(null){(inf::C<core::int?>?) → core::bool};
+ #t21.{core::Set::add}{Invariant}(inf::field5){(inf::C<core::int?>?) → core::bool};
+ #t21.{core::Set::add}{Invariant}(null){(inf::C<core::int?>?) → core::bool};
} =>#t21;
core::Set<inf::C<core::int?>?> local2f = block {
final core::Set<inf::C<core::int?>?> #t22 = col::LinkedHashSet::•<inf::C<core::int?>?>();
- #t22.{core::Set::add}(inf::field6){(inf::C<core::int?>?) → core::bool};
- #t22.{core::Set::add}(null){(inf::C<core::int?>?) → core::bool};
+ #t22.{core::Set::add}{Invariant}(inf::field6){(inf::C<core::int?>?) → core::bool};
+ #t22.{core::Set::add}{Invariant}(null){(inf::C<core::int?>?) → core::bool};
} =>#t22;
core::Set<core::int?> local2g = block {
final core::Set<core::int?> #t23 = col::LinkedHashSet::•<core::int?>();
- #t23.{core::Set::add}(inf::field7){(core::int?) → core::bool};
- #t23.{core::Set::add}(null){(core::int?) → core::bool};
+ #t23.{core::Set::add}{Invariant}(inf::field7){(core::int?) → core::bool};
+ #t23.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
} =>#t23;
core::Set<core::int?> local2h = block {
final core::Set<core::int?> #t24 = col::LinkedHashSet::•<core::int?>();
- #t24.{core::Set::add}(inf::field8){(core::int?) → core::bool};
- #t24.{core::Set::add}(null){(core::int?) → core::bool};
+ #t24.{core::Set::add}{Invariant}(inf::field8){(core::int?) → core::bool};
+ #t24.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
} =>#t24;
core::Set<inf::C<dynamic>?> local3a = block {
final core::Set<inf::C<dynamic>?> #t25 = col::LinkedHashSet::•<inf::C<dynamic>?>();
- #t25.{core::Set::add}(null){(inf::C<dynamic>?) → core::bool};
- #t25.{core::Set::add}(inf::field1){(inf::C<dynamic>?) → core::bool};
+ #t25.{core::Set::add}{Invariant}(null){(inf::C<dynamic>?) → core::bool};
+ #t25.{core::Set::add}{Invariant}(inf::field1){(inf::C<dynamic>?) → core::bool};
} =>#t25;
core::Set<inf::C<dynamic>?> local3b = block {
final core::Set<inf::C<dynamic>?> #t26 = col::LinkedHashSet::•<inf::C<dynamic>?>();
- #t26.{core::Set::add}(null){(inf::C<dynamic>?) → core::bool};
- #t26.{core::Set::add}(inf::field2){(inf::C<dynamic>?) → core::bool};
+ #t26.{core::Set::add}{Invariant}(null){(inf::C<dynamic>?) → core::bool};
+ #t26.{core::Set::add}{Invariant}(inf::field2){(inf::C<dynamic>?) → core::bool};
} =>#t26;
core::Set<inf::C<core::int>?> local3c = block {
final core::Set<inf::C<core::int>?> #t27 = col::LinkedHashSet::•<inf::C<core::int>?>();
- #t27.{core::Set::add}(null){(inf::C<core::int>?) → core::bool};
- #t27.{core::Set::add}(inf::field3){(inf::C<core::int>?) → core::bool};
+ #t27.{core::Set::add}{Invariant}(null){(inf::C<core::int>?) → core::bool};
+ #t27.{core::Set::add}{Invariant}(inf::field3){(inf::C<core::int>?) → core::bool};
} =>#t27;
core::Set<inf::C<core::int>?> local3d = block {
final core::Set<inf::C<core::int>?> #t28 = col::LinkedHashSet::•<inf::C<core::int>?>();
- #t28.{core::Set::add}(null){(inf::C<core::int>?) → core::bool};
- #t28.{core::Set::add}(inf::field4){(inf::C<core::int>?) → core::bool};
+ #t28.{core::Set::add}{Invariant}(null){(inf::C<core::int>?) → core::bool};
+ #t28.{core::Set::add}{Invariant}(inf::field4){(inf::C<core::int>?) → core::bool};
} =>#t28;
core::Set<inf::C<core::int?>?> local3e = block {
final core::Set<inf::C<core::int?>?> #t29 = col::LinkedHashSet::•<inf::C<core::int?>?>();
- #t29.{core::Set::add}(null){(inf::C<core::int?>?) → core::bool};
- #t29.{core::Set::add}(inf::field5){(inf::C<core::int?>?) → core::bool};
+ #t29.{core::Set::add}{Invariant}(null){(inf::C<core::int?>?) → core::bool};
+ #t29.{core::Set::add}{Invariant}(inf::field5){(inf::C<core::int?>?) → core::bool};
} =>#t29;
core::Set<inf::C<core::int?>?> local3f = block {
final core::Set<inf::C<core::int?>?> #t30 = col::LinkedHashSet::•<inf::C<core::int?>?>();
- #t30.{core::Set::add}(null){(inf::C<core::int?>?) → core::bool};
- #t30.{core::Set::add}(inf::field6){(inf::C<core::int?>?) → core::bool};
+ #t30.{core::Set::add}{Invariant}(null){(inf::C<core::int?>?) → core::bool};
+ #t30.{core::Set::add}{Invariant}(inf::field6){(inf::C<core::int?>?) → core::bool};
} =>#t30;
core::Set<core::int?> local3g = block {
final core::Set<core::int?> #t31 = col::LinkedHashSet::•<core::int?>();
- #t31.{core::Set::add}(null){(core::int?) → core::bool};
- #t31.{core::Set::add}(inf::field7){(core::int?) → core::bool};
+ #t31.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+ #t31.{core::Set::add}{Invariant}(inf::field7){(core::int?) → core::bool};
} =>#t31;
core::Set<core::int?> local3h = block {
final core::Set<core::int?> #t32 = col::LinkedHashSet::•<core::int?>();
- #t32.{core::Set::add}(null){(core::int?) → core::bool};
- #t32.{core::Set::add}(inf::field8){(core::int?) → core::bool};
+ #t32.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+ #t32.{core::Set::add}{Invariant}(inf::field8){(core::int?) → core::bool};
} =>#t32;
}
diff --git a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect
index 3f7b98d..865f8c3 100644
--- a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect
@@ -37,83 +37,83 @@
core::List<Null>* local1i = core::_GrowableList::_literal1<Null>(null);
core::Set<inf::C<dynamic>*>* local2a = block {
final core::Set<inf::C<dynamic>*>* #t1 = new col::_CompactLinkedHashSet::•<inf::C<dynamic>*>();
- #t1.{core::Set::add}(inf::field1){(inf::C<dynamic>*) →* core::bool*};
- #t1.{core::Set::add}(null){(inf::C<dynamic>*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(inf::field1){(inf::C<dynamic>*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(null){(inf::C<dynamic>*) →* core::bool*};
} =>#t1;
core::Set<inf::C<dynamic>*>* local2b = block {
final core::Set<inf::C<dynamic>*>* #t2 = new col::_CompactLinkedHashSet::•<inf::C<dynamic>*>();
- #t2.{core::Set::add}(inf::field2){(inf::C<dynamic>*) →* core::bool*};
- #t2.{core::Set::add}(null){(inf::C<dynamic>*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(inf::field2){(inf::C<dynamic>*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(null){(inf::C<dynamic>*) →* core::bool*};
} =>#t2;
core::Set<inf::C<core::int*>*>* local2c = block {
final core::Set<inf::C<core::int*>*>* #t3 = new col::_CompactLinkedHashSet::•<inf::C<core::int*>*>();
- #t3.{core::Set::add}(inf::field3){(inf::C<core::int*>*) →* core::bool*};
- #t3.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t3.{core::Set::add}{Invariant}(inf::field3){(inf::C<core::int*>*) →* core::bool*};
+ #t3.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
} =>#t3;
core::Set<inf::C<core::int*>*>* local2d = block {
final core::Set<inf::C<core::int*>*>* #t4 = new col::_CompactLinkedHashSet::•<inf::C<core::int*>*>();
- #t4.{core::Set::add}(inf::field4){(inf::C<core::int*>*) →* core::bool*};
- #t4.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t4.{core::Set::add}{Invariant}(inf::field4){(inf::C<core::int*>*) →* core::bool*};
+ #t4.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
} =>#t4;
core::Set<inf::C<core::int*>*>* local2e = block {
final core::Set<inf::C<core::int*>*>* #t5 = new col::_CompactLinkedHashSet::•<inf::C<core::int*>*>();
- #t5.{core::Set::add}(inf::field5){(inf::C<core::int*>*) →* core::bool*};
- #t5.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(inf::field5){(inf::C<core::int*>*) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
} =>#t5;
core::Set<inf::C<core::int*>*>* local2f = block {
final core::Set<inf::C<core::int*>*>* #t6 = new col::_CompactLinkedHashSet::•<inf::C<core::int*>*>();
- #t6.{core::Set::add}(inf::field6){(inf::C<core::int*>*) →* core::bool*};
- #t6.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(inf::field6){(inf::C<core::int*>*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
} =>#t6;
core::Set<core::int*>* local2g = block {
final core::Set<core::int*>* #t7 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t7.{core::Set::add}(inf::field7){(core::int*) →* core::bool*};
- #t7.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t7.{core::Set::add}{Invariant}(inf::field7){(core::int*) →* core::bool*};
+ #t7.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t7;
core::Set<core::int*>* local2h = block {
final core::Set<core::int*>* #t8 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t8.{core::Set::add}(inf::field8){(core::int*) →* core::bool*};
- #t8.{core::Set::add}(null){(core::int*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(inf::field8){(core::int*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
} =>#t8;
core::Set<inf::C<dynamic>*>* local3a = block {
final core::Set<inf::C<dynamic>*>* #t9 = new col::_CompactLinkedHashSet::•<inf::C<dynamic>*>();
- #t9.{core::Set::add}(null){(inf::C<dynamic>*) →* core::bool*};
- #t9.{core::Set::add}(inf::field1){(inf::C<dynamic>*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(null){(inf::C<dynamic>*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(inf::field1){(inf::C<dynamic>*) →* core::bool*};
} =>#t9;
core::Set<inf::C<dynamic>*>* local3b = block {
final core::Set<inf::C<dynamic>*>* #t10 = new col::_CompactLinkedHashSet::•<inf::C<dynamic>*>();
- #t10.{core::Set::add}(null){(inf::C<dynamic>*) →* core::bool*};
- #t10.{core::Set::add}(inf::field2){(inf::C<dynamic>*) →* core::bool*};
+ #t10.{core::Set::add}{Invariant}(null){(inf::C<dynamic>*) →* core::bool*};
+ #t10.{core::Set::add}{Invariant}(inf::field2){(inf::C<dynamic>*) →* core::bool*};
} =>#t10;
core::Set<inf::C<core::int*>*>* local3c = block {
final core::Set<inf::C<core::int*>*>* #t11 = new col::_CompactLinkedHashSet::•<inf::C<core::int*>*>();
- #t11.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
- #t11.{core::Set::add}(inf::field3){(inf::C<core::int*>*) →* core::bool*};
+ #t11.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t11.{core::Set::add}{Invariant}(inf::field3){(inf::C<core::int*>*) →* core::bool*};
} =>#t11;
core::Set<inf::C<core::int*>*>* local3d = block {
final core::Set<inf::C<core::int*>*>* #t12 = new col::_CompactLinkedHashSet::•<inf::C<core::int*>*>();
- #t12.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
- #t12.{core::Set::add}(inf::field4){(inf::C<core::int*>*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(inf::field4){(inf::C<core::int*>*) →* core::bool*};
} =>#t12;
core::Set<inf::C<core::int*>*>* local3e = block {
final core::Set<inf::C<core::int*>*>* #t13 = new col::_CompactLinkedHashSet::•<inf::C<core::int*>*>();
- #t13.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
- #t13.{core::Set::add}(inf::field5){(inf::C<core::int*>*) →* core::bool*};
+ #t13.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t13.{core::Set::add}{Invariant}(inf::field5){(inf::C<core::int*>*) →* core::bool*};
} =>#t13;
core::Set<inf::C<core::int*>*>* local3f = block {
final core::Set<inf::C<core::int*>*>* #t14 = new col::_CompactLinkedHashSet::•<inf::C<core::int*>*>();
- #t14.{core::Set::add}(null){(inf::C<core::int*>*) →* core::bool*};
- #t14.{core::Set::add}(inf::field6){(inf::C<core::int*>*) →* core::bool*};
+ #t14.{core::Set::add}{Invariant}(null){(inf::C<core::int*>*) →* core::bool*};
+ #t14.{core::Set::add}{Invariant}(inf::field6){(inf::C<core::int*>*) →* core::bool*};
} =>#t14;
core::Set<core::int*>* local3g = block {
final core::Set<core::int*>* #t15 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t15.{core::Set::add}(null){(core::int*) →* core::bool*};
- #t15.{core::Set::add}(inf::field7){(core::int*) →* core::bool*};
+ #t15.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
+ #t15.{core::Set::add}{Invariant}(inf::field7){(core::int*) →* core::bool*};
} =>#t15;
core::Set<core::int*>* local3h = block {
final core::Set<core::int*>* #t16 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t16.{core::Set::add}(null){(core::int*) →* core::bool*};
- #t16.{core::Set::add}(inf::field8){(core::int*) →* core::bool*};
+ #t16.{core::Set::add}{Invariant}(null){(core::int*) →* core::bool*};
+ #t16.{core::Set::add}{Invariant}(inf::field8){(core::int*) →* core::bool*};
} =>#t16;
}
@@ -167,82 +167,82 @@
core::List<Null> local1i = core::_GrowableList::_literal1<Null>(null);
core::Set<inf::C<dynamic>?> local2a = block {
final core::Set<inf::C<dynamic>?> #t17 = new col::_CompactLinkedHashSet::•<inf::C<dynamic>?>();
- #t17.{core::Set::add}(inf::field1){(inf::C<dynamic>?) → core::bool};
- #t17.{core::Set::add}(null){(inf::C<dynamic>?) → core::bool};
+ #t17.{core::Set::add}{Invariant}(inf::field1){(inf::C<dynamic>?) → core::bool};
+ #t17.{core::Set::add}{Invariant}(null){(inf::C<dynamic>?) → core::bool};
} =>#t17;
core::Set<inf::C<dynamic>?> local2b = block {
final core::Set<inf::C<dynamic>?> #t18 = new col::_CompactLinkedHashSet::•<inf::C<dynamic>?>();
- #t18.{core::Set::add}(inf::field2){(inf::C<dynamic>?) → core::bool};
- #t18.{core::Set::add}(null){(inf::C<dynamic>?) → core::bool};
+ #t18.{core::Set::add}{Invariant}(inf::field2){(inf::C<dynamic>?) → core::bool};
+ #t18.{core::Set::add}{Invariant}(null){(inf::C<dynamic>?) → core::bool};
} =>#t18;
core::Set<inf::C<core::int>?> local2c = block {
final core::Set<inf::C<core::int>?> #t19 = new col::_CompactLinkedHashSet::•<inf::C<core::int>?>();
- #t19.{core::Set::add}(inf::field3){(inf::C<core::int>?) → core::bool};
- #t19.{core::Set::add}(null){(inf::C<core::int>?) → core::bool};
+ #t19.{core::Set::add}{Invariant}(inf::field3){(inf::C<core::int>?) → core::bool};
+ #t19.{core::Set::add}{Invariant}(null){(inf::C<core::int>?) → core::bool};
} =>#t19;
core::Set<inf::C<core::int>?> local2d = block {
final core::Set<inf::C<core::int>?> #t20 = new col::_CompactLinkedHashSet::•<inf::C<core::int>?>();
- #t20.{core::Set::add}(inf::field4){(inf::C<core::int>?) → core::bool};
- #t20.{core::Set::add}(null){(inf::C<core::int>?) → core::bool};
+ #t20.{core::Set::add}{Invariant}(inf::field4){(inf::C<core::int>?) → core::bool};
+ #t20.{core::Set::add}{Invariant}(null){(inf::C<core::int>?) → core::bool};
} =>#t20;
core::Set<inf::C<core::int?>?> local2e = block {
final core::Set<inf::C<core::int?>?> #t21 = new col::_CompactLinkedHashSet::•<inf::C<core::int?>?>();
- #t21.{core::Set::add}(inf::field5){(inf::C<core::int?>?) → core::bool};
- #t21.{core::Set::add}(null){(inf::C<core::int?>?) → core::bool};
+ #t21.{core::Set::add}{Invariant}(inf::field5){(inf::C<core::int?>?) → core::bool};
+ #t21.{core::Set::add}{Invariant}(null){(inf::C<core::int?>?) → core::bool};
} =>#t21;
core::Set<inf::C<core::int?>?> local2f = block {
final core::Set<inf::C<core::int?>?> #t22 = new col::_CompactLinkedHashSet::•<inf::C<core::int?>?>();
- #t22.{core::Set::add}(inf::field6){(inf::C<core::int?>?) → core::bool};
- #t22.{core::Set::add}(null){(inf::C<core::int?>?) → core::bool};
+ #t22.{core::Set::add}{Invariant}(inf::field6){(inf::C<core::int?>?) → core::bool};
+ #t22.{core::Set::add}{Invariant}(null){(inf::C<core::int?>?) → core::bool};
} =>#t22;
core::Set<core::int?> local2g = block {
final core::Set<core::int?> #t23 = new col::_CompactLinkedHashSet::•<core::int?>();
- #t23.{core::Set::add}(inf::field7){(core::int?) → core::bool};
- #t23.{core::Set::add}(null){(core::int?) → core::bool};
+ #t23.{core::Set::add}{Invariant}(inf::field7){(core::int?) → core::bool};
+ #t23.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
} =>#t23;
core::Set<core::int?> local2h = block {
final core::Set<core::int?> #t24 = new col::_CompactLinkedHashSet::•<core::int?>();
- #t24.{core::Set::add}(inf::field8){(core::int?) → core::bool};
- #t24.{core::Set::add}(null){(core::int?) → core::bool};
+ #t24.{core::Set::add}{Invariant}(inf::field8){(core::int?) → core::bool};
+ #t24.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
} =>#t24;
core::Set<inf::C<dynamic>?> local3a = block {
final core::Set<inf::C<dynamic>?> #t25 = new col::_CompactLinkedHashSet::•<inf::C<dynamic>?>();
- #t25.{core::Set::add}(null){(inf::C<dynamic>?) → core::bool};
- #t25.{core::Set::add}(inf::field1){(inf::C<dynamic>?) → core::bool};
+ #t25.{core::Set::add}{Invariant}(null){(inf::C<dynamic>?) → core::bool};
+ #t25.{core::Set::add}{Invariant}(inf::field1){(inf::C<dynamic>?) → core::bool};
} =>#t25;
core::Set<inf::C<dynamic>?> local3b = block {
final core::Set<inf::C<dynamic>?> #t26 = new col::_CompactLinkedHashSet::•<inf::C<dynamic>?>();
- #t26.{core::Set::add}(null){(inf::C<dynamic>?) → core::bool};
- #t26.{core::Set::add}(inf::field2){(inf::C<dynamic>?) → core::bool};
+ #t26.{core::Set::add}{Invariant}(null){(inf::C<dynamic>?) → core::bool};
+ #t26.{core::Set::add}{Invariant}(inf::field2){(inf::C<dynamic>?) → core::bool};
} =>#t26;
core::Set<inf::C<core::int>?> local3c = block {
final core::Set<inf::C<core::int>?> #t27 = new col::_CompactLinkedHashSet::•<inf::C<core::int>?>();
- #t27.{core::Set::add}(null){(inf::C<core::int>?) → core::bool};
- #t27.{core::Set::add}(inf::field3){(inf::C<core::int>?) → core::bool};
+ #t27.{core::Set::add}{Invariant}(null){(inf::C<core::int>?) → core::bool};
+ #t27.{core::Set::add}{Invariant}(inf::field3){(inf::C<core::int>?) → core::bool};
} =>#t27;
core::Set<inf::C<core::int>?> local3d = block {
final core::Set<inf::C<core::int>?> #t28 = new col::_CompactLinkedHashSet::•<inf::C<core::int>?>();
- #t28.{core::Set::add}(null){(inf::C<core::int>?) → core::bool};
- #t28.{core::Set::add}(inf::field4){(inf::C<core::int>?) → core::bool};
+ #t28.{core::Set::add}{Invariant}(null){(inf::C<core::int>?) → core::bool};
+ #t28.{core::Set::add}{Invariant}(inf::field4){(inf::C<core::int>?) → core::bool};
} =>#t28;
core::Set<inf::C<core::int?>?> local3e = block {
final core::Set<inf::C<core::int?>?> #t29 = new col::_CompactLinkedHashSet::•<inf::C<core::int?>?>();
- #t29.{core::Set::add}(null){(inf::C<core::int?>?) → core::bool};
- #t29.{core::Set::add}(inf::field5){(inf::C<core::int?>?) → core::bool};
+ #t29.{core::Set::add}{Invariant}(null){(inf::C<core::int?>?) → core::bool};
+ #t29.{core::Set::add}{Invariant}(inf::field5){(inf::C<core::int?>?) → core::bool};
} =>#t29;
core::Set<inf::C<core::int?>?> local3f = block {
final core::Set<inf::C<core::int?>?> #t30 = new col::_CompactLinkedHashSet::•<inf::C<core::int?>?>();
- #t30.{core::Set::add}(null){(inf::C<core::int?>?) → core::bool};
- #t30.{core::Set::add}(inf::field6){(inf::C<core::int?>?) → core::bool};
+ #t30.{core::Set::add}{Invariant}(null){(inf::C<core::int?>?) → core::bool};
+ #t30.{core::Set::add}{Invariant}(inf::field6){(inf::C<core::int?>?) → core::bool};
} =>#t30;
core::Set<core::int?> local3g = block {
final core::Set<core::int?> #t31 = new col::_CompactLinkedHashSet::•<core::int?>();
- #t31.{core::Set::add}(null){(core::int?) → core::bool};
- #t31.{core::Set::add}(inf::field7){(core::int?) → core::bool};
+ #t31.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+ #t31.{core::Set::add}{Invariant}(inf::field7){(core::int?) → core::bool};
} =>#t31;
core::Set<core::int?> local3h = block {
final core::Set<core::int?> #t32 = new col::_CompactLinkedHashSet::•<core::int?>();
- #t32.{core::Set::add}(null){(core::int?) → core::bool};
- #t32.{core::Set::add}(inf::field8){(core::int?) → core::bool};
+ #t32.{core::Set::add}{Invariant}(null){(core::int?) → core::bool};
+ #t32.{core::Set::add}{Invariant}(inf::field8){(core::int?) → core::bool};
} =>#t32;
}
diff --git a/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.expect
index c4d17c9..54456fa 100644
--- a/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.expect
@@ -13,7 +13,7 @@
final core::List<core::String*>* #t1 = <core::String*>[node];
final core::Iterable<core::String*>* #t2 = let final core::Iterable<core::String*>* #t3 = let final core::Set<core::String*>* #t4 = this.{self::Class::map}{core::Map<core::String*, core::Set<core::String*>*>*}.{core::Map::[]}(node){(core::Object*) →* core::Set<core::String*>*} in #t4 == null ?{core::Iterable<core::String*>*} null : #t4.{core::Iterable::expand}<core::String*>((core::String* node) → core::List<core::String*>* => this.{self::Class::method}(node, set){(core::String*, core::Set<core::String*>*) →* core::List<core::String*>*}){((core::String*) →* core::Iterable<core::String*>*) →* core::Iterable<core::String*>*} in #t3 == null ?{core::List<core::String*>*} null : #t3.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
if(!(#t2 == null))
- #t1.{core::List::addAll}(#t2){(core::Iterable<core::String*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(#t2){(core::Iterable<core::String*>*) →* void};
} =>#t1 : <core::String*>[];
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.transformed.expect
index eb3b7ce..3720023 100644
--- a/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.transformed.expect
@@ -13,7 +13,7 @@
final core::List<core::String*>* #t1 = core::_GrowableList::_literal1<core::String*>(node);
final core::Iterable<core::String*>* #t2 = let final core::Iterable<core::String*>* #t3 = let final core::Set<core::String*>* #t4 = this.{self::Class::map}{core::Map<core::String*, core::Set<core::String*>*>*}.{core::Map::[]}(node){(core::Object*) →* core::Set<core::String*>*} in #t4 == null ?{core::Iterable<core::String*>*} null : #t4.{core::Iterable::expand}<core::String*>((core::String* node) → core::List<core::String*>* => this.{self::Class::method}(node, set){(core::String*, core::Set<core::String*>*) →* core::List<core::String*>*}){((core::String*) →* core::Iterable<core::String*>*) →* core::Iterable<core::String*>*} in #t3 == null ?{core::List<core::String*>*} null : #t3.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
if(!(#t2 == null))
- #t1.{core::List::addAll}(#t2){(core::Iterable<core::String*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(#t2){(core::Iterable<core::String*>*) →* void};
} =>#t1 : core::_GrowableList::•<core::String*>(0);
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/none/property_get.dart.strong.expect b/pkg/front_end/testcases/none/property_get.dart.strong.expect
index 921ff16..4163115 100644
--- a/pkg/front_end/testcases/none/property_get.dart.strong.expect
+++ b/pkg/front_end/testcases/none/property_get.dart.strong.expect
@@ -84,7 +84,7 @@
core::print(invalid-expression "pkg/front_end/testcases/none/property_get.dart:63:36: Error: Not a constant expression.
const dynamic instance_tearOff = nonNullableClass1.method;
^^^^^^^^^^^^^^^^^");
- core::Function f1 = let final self::Class2<core::String> #t5 = nonNullableClass2 in #t5 == null ?{() → core::int} null : #t5.{self::Class2::call};
+ core::Function f1 = let final self::Class2<core::String> #t5 = nonNullableClass2 in #t5 == null ?{() → core::int} null : #t5.{self::Class2::call}{() → core::int};
core::Function? f2 = let final Never #t6 = invalid-expression "pkg/front_end/testcases/none/property_get.dart:67:18: Error: Can't tear off method 'call' from a potentially null value.
Function? f2 = nullableClass2;
^" in nullableClass2 as{TypeError} core::Function?;
diff --git a/pkg/front_end/testcases/none/property_get.dart.weak.expect b/pkg/front_end/testcases/none/property_get.dart.weak.expect
index 67ded25..fcb468d 100644
--- a/pkg/front_end/testcases/none/property_get.dart.weak.expect
+++ b/pkg/front_end/testcases/none/property_get.dart.weak.expect
@@ -85,7 +85,7 @@
core::print(invalid-expression "pkg/front_end/testcases/none/property_get.dart:63:36: Error: Not a constant expression.
const dynamic instance_tearOff = nonNullableClass1.method;
^^^^^^^^^^^^^^^^^");
- core::Function f1 = let final self::Class2<core::String> #t5 = nonNullableClass2 in #t5 == null ?{() → core::int} null : #t5.{self::Class2::call};
+ core::Function f1 = let final self::Class2<core::String> #t5 = nonNullableClass2 in #t5 == null ?{() → core::int} null : #t5.{self::Class2::call}{() → core::int};
core::Function? f2 = let final Never #t6 = invalid-expression "pkg/front_end/testcases/none/property_get.dart:67:18: Error: Can't tear off method 'call' from a potentially null value.
Function? f2 = nullableClass2;
^" in nullableClass2 as{TypeError} core::Function?;
diff --git a/pkg/front_end/testcases/none/tearoff_opt_out.dart.strong.expect b/pkg/front_end/testcases/none/tearoff_opt_out.dart.strong.expect
index 51270b9..0661b92 100644
--- a/pkg/front_end/testcases/none/tearoff_opt_out.dart.strong.expect
+++ b/pkg/front_end/testcases/none/tearoff_opt_out.dart.strong.expect
@@ -26,6 +26,6 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test(self::Class* c) → dynamic {
- core::Function* f = let final self::Class* #t1 = c in #t1 == null ?{() →* void} null : #t1.{self::Class::call};
+ core::Function* f = let final self::Class* #t1 = c in #t1 == null ?{() →* void} null : #t1.{self::Class::call}{() →* void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/none/tearoff_opt_out.dart.strong.transformed.expect b/pkg/front_end/testcases/none/tearoff_opt_out.dart.strong.transformed.expect
index 51270b9..0661b92 100644
--- a/pkg/front_end/testcases/none/tearoff_opt_out.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/none/tearoff_opt_out.dart.strong.transformed.expect
@@ -26,6 +26,6 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test(self::Class* c) → dynamic {
- core::Function* f = let final self::Class* #t1 = c in #t1 == null ?{() →* void} null : #t1.{self::Class::call};
+ core::Function* f = let final self::Class* #t1 = c in #t1 == null ?{() →* void} null : #t1.{self::Class::call}{() →* void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/none/tearoff_opt_out.dart.weak.expect b/pkg/front_end/testcases/none/tearoff_opt_out.dart.weak.expect
index 7b89feb..3be713b 100644
--- a/pkg/front_end/testcases/none/tearoff_opt_out.dart.weak.expect
+++ b/pkg/front_end/testcases/none/tearoff_opt_out.dart.weak.expect
@@ -19,6 +19,6 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test(self::Class* c) → dynamic {
- core::Function* f = let final self::Class* #t1 = c in #t1 == null ?{() →* void} null : #t1.{self::Class::call};
+ core::Function* f = let final self::Class* #t1 = c in #t1 == null ?{() →* void} null : #t1.{self::Class::call}{() →* void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/none/tearoff_opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/none/tearoff_opt_out.dart.weak.transformed.expect
index 7b89feb..3be713b 100644
--- a/pkg/front_end/testcases/none/tearoff_opt_out.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/none/tearoff_opt_out.dart.weak.transformed.expect
@@ -19,6 +19,6 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test(self::Class* c) → dynamic {
- core::Function* f = let final self::Class* #t1 = c in #t1 == null ?{() →* void} null : #t1.{self::Class::call};
+ core::Function* f = let final self::Class* #t1 = c in #t1 == null ?{() →* void} null : #t1.{self::Class::call}{() →* void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31198.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31198.dart.weak.expect
index d8c2257..3bc5419 100644
--- a/pkg/front_end/testcases/regress/issue_31198.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31198.dart.weak.expect
@@ -34,7 +34,7 @@
: final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_31198.dart:8:8: Error: Can't use 'super' as an expression.
To delegate a constructor to a super constructor, put the super call as an initializer.
B(): super().foo() {}
- ^".foo() {}
+ ^"{dynamic}.foo() {}
}
static method bad() → dynamic {
new self::B::•();
diff --git a/pkg/front_end/testcases/regress/issue_31198.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31198.dart.weak.transformed.expect
index d8c2257..3bc5419 100644
--- a/pkg/front_end/testcases/regress/issue_31198.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31198.dart.weak.transformed.expect
@@ -34,7 +34,7 @@
: final dynamic #t1 = invalid-expression "pkg/front_end/testcases/regress/issue_31198.dart:8:8: Error: Can't use 'super' as an expression.
To delegate a constructor to a super constructor, put the super call as an initializer.
B(): super().foo() {}
- ^".foo() {}
+ ^"{dynamic}.foo() {}
}
static method bad() → dynamic {
new self::B::•();
diff --git a/pkg/front_end/testcases/regress/issue_42423.dart.weak.expect b/pkg/front_end/testcases/regress/issue_42423.dart.weak.expect
index 55da096..ed0856a 100644
--- a/pkg/front_end/testcases/regress/issue_42423.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_42423.dart.weak.expect
@@ -13,7 +13,7 @@
if(!(#t2 == null))
for (final dynamic #t3 in #t2) {
final core::int* #t4 = #t3 as{TypeError} core::int*;
- #t1.{core::Set::add}(#t4){(core::int*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(#t4){(core::int*) →* core::bool*};
}
} =>#t1;
}
@@ -24,7 +24,7 @@
if(!(#t6 == null))
for (final dynamic #t7 in #t6) {
final core::int* #t8 = #t7 as{TypeError} core::int*;
- #t5.{core::List::add}(#t8){(core::int*) →* void};
+ #t5.{core::List::add}{Invariant}(#t8){(core::int*) →* void};
}
} =>#t5;
}
@@ -36,7 +36,7 @@
for (final core::MapEntry<dynamic, dynamic>* #t11 in #t10.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>}) {
final core::int* #t12 = #t11.{core::MapEntry::key}{dynamic} as{TypeError} core::int*;
final core::int* #t13 = #t11.{core::MapEntry::value}{dynamic} as{TypeError} core::int*;
- #t9.{core::Map::[]=}(#t12, #t13){(core::int*, core::int*) →* void};
+ #t9.{core::Map::[]=}{Invariant}(#t12, #t13){(core::int*, core::int*) →* void};
}
} =>#t9;
}
diff --git a/pkg/front_end/testcases/regress/issue_42423.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_42423.dart.weak.transformed.expect
index 8aff3a5..2fb8e72 100644
--- a/pkg/front_end/testcases/regress/issue_42423.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_42423.dart.weak.transformed.expect
@@ -16,7 +16,7 @@
final dynamic #t3 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t4 = #t3 as{TypeError} core::int*;
- #t1.{core::Set::add}(#t4){(core::int*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(#t4){(core::int*) →* core::bool*};
}
}
}
@@ -32,7 +32,7 @@
final dynamic #t7 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t8 = #t7 as{TypeError} core::int*;
- #t5.{core::List::add}(#t8){(core::int*) →* void};
+ #t5.{core::List::add}{Invariant}(#t8){(core::int*) →* void};
}
}
}
@@ -49,7 +49,7 @@
{
final core::int* #t12 = #t11.{core::MapEntry::key}{dynamic} as{TypeError} core::int*;
final core::int* #t13 = #t11.{core::MapEntry::value}{dynamic} as{TypeError} core::int*;
- #t9.{core::Map::[]=}(#t12, #t13){(core::int*, core::int*) →* void};
+ #t9.{core::Map::[]=}{Invariant}(#t12, #t13){(core::int*, core::int*) →* void};
}
}
}
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.expect
index eb56668..bffdb53 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.expect
@@ -19,5 +19,5 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- () →* void x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call};
+ () →* void x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call}{() →* void};
}
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.transformed.expect
index eb56668..bffdb53 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off.dart.weak.transformed.expect
@@ -19,5 +19,5 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- () →* void x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call};
+ () →* void x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call}{() →* void};
}
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.expect
index 2d573c9..edf5d5c 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.expect
@@ -21,5 +21,5 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- FutureOr<() →* void>* x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call};
+ FutureOr<() →* void>* x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call}{() →* void};
}
diff --git a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.transformed.expect
index 2d573c9..edf5d5c 100644
--- a/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/call_method_implicit_tear_off_future_or.dart.weak.transformed.expect
@@ -21,5 +21,5 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- FutureOr<() →* void>* x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call};
+ FutureOr<() →* void>* x = let final self::C* #t1 = new self::C::•() in #t1 == null ?{() →* void} null : #t1.{self::C::call}{() →* void};
}
diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status
index 5dd912a..7c64966 100644
--- a/pkg/front_end/testcases/textual_outline.status
+++ b/pkg/front_end/testcases/textual_outline.status
@@ -29,6 +29,7 @@
constructor_tearoffs/nongeneric_tearoff_with_context: FormatterCrash
constructor_tearoffs/nongeneric_tearoff_without_context: FormatterCrash
constructor_tearoffs/redirecting_constructors: FormatterCrash
+constructor_tearoffs/simple_instantiated_type_literals: FormatterCrash
constructor_tearoffs/unnamed_constructor: FormatterCrash
dart2js/late_fields: FormatterCrash
dart2js/late_statics: FormatterCrash
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.expect b/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.expect
index 2e6cfa8..9474a72 100644
--- a/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.expect
+++ b/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.expect
@@ -10,22 +10,22 @@
core::List<core::int*>* list = block {
final core::List<core::int*>* #t1 = <core::int*>[element0 as{TypeError,ForDynamic} core::int*, element1 as{TypeError} core::int*, element2];
if(true)
- #t1.{core::List::add}(3){(core::int*) →* void};
- #t1.{core::List::add}(4){(core::int*) →* void};
- #t1.{core::List::add}(5){(core::int*) →* void};
- #t1.{core::List::add}(6){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t1;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t2 = col::LinkedHashSet::•<core::int*>();
- #t2.{core::Set::add}(element0 as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
- #t2.{core::Set::add}(element1 as{TypeError} core::int*){(core::int*) →* core::bool*};
- #t2.{core::Set::add}(element2){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(element0 as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(element1 as{TypeError} core::int*){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(element2){(core::int*) →* core::bool*};
if(true)
- #t2.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t2.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t2.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t2.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t2;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
@@ -35,26 +35,26 @@
final core::List<core::int*>* #t3 = <core::int*>[];
for (final dynamic #t4 in initial as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t5 = #t4 as{TypeError} core::int*;
- #t3.{core::List::add}(#t5){(core::int*) →* void};
+ #t3.{core::List::add}{Invariant}(#t5){(core::int*) →* void};
}
if(true)
- #t3.{core::List::add}(3){(core::int*) →* void};
- #t3.{core::List::add}(4){(core::int*) →* void};
- #t3.{core::List::add}(5){(core::int*) →* void};
- #t3.{core::List::add}(6){(core::int*) →* void};
+ #t3.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t3.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t3.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t3.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t3;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t6 = col::LinkedHashSet::•<core::int*>();
for (final dynamic #t7 in initial as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t8 = #t7 as{TypeError} core::int*;
- #t6.{core::Set::add}(#t8){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(#t8){(core::int*) →* core::bool*};
}
if(true)
- #t6.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t6.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t6.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t6.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t6;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
@@ -64,26 +64,26 @@
final core::List<core::int*>* #t9 = <core::int*>[];
for (final dynamic #t10 in initial) {
final core::int* #t11 = #t10 as{TypeError} core::int*;
- #t9.{core::List::add}(#t11){(core::int*) →* void};
+ #t9.{core::List::add}{Invariant}(#t11){(core::int*) →* void};
}
if(true)
- #t9.{core::List::add}(3){(core::int*) →* void};
- #t9.{core::List::add}(4){(core::int*) →* void};
- #t9.{core::List::add}(5){(core::int*) →* void};
- #t9.{core::List::add}(6){(core::int*) →* void};
+ #t9.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t9.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t9.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t9.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t9;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t12 = col::LinkedHashSet::•<core::int*>();
for (final dynamic #t13 in initial) {
final core::int* #t14 = #t13 as{TypeError} core::int*;
- #t12.{core::Set::add}(#t14){(core::int*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(#t14){(core::int*) →* core::bool*};
}
if(true)
- #t12.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t12.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t12.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t12.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t12;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
@@ -93,26 +93,26 @@
final core::List<core::int*>* #t15 = <core::int*>[];
for (final dynamic #t16 in initial) {
final core::int* #t17 = #t16 as{TypeError} core::int*;
- #t15.{core::List::add}(#t17){(core::int*) →* void};
+ #t15.{core::List::add}{Invariant}(#t17){(core::int*) →* void};
}
if(true)
- #t15.{core::List::add}(3){(core::int*) →* void};
- #t15.{core::List::add}(4){(core::int*) →* void};
- #t15.{core::List::add}(5){(core::int*) →* void};
- #t15.{core::List::add}(6){(core::int*) →* void};
+ #t15.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t15.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t15.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t15.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t15;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t18 = col::LinkedHashSet::•<core::int*>();
for (final dynamic #t19 in initial) {
final core::int* #t20 = #t19 as{TypeError} core::int*;
- #t18.{core::Set::add}(#t20){(core::int*) →* core::bool*};
+ #t18.{core::Set::add}{Invariant}(#t20){(core::int*) →* core::bool*};
}
if(true)
- #t18.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t18.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t18.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t18.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t18.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t18.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t18.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t18.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t18;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
@@ -121,19 +121,19 @@
core::List<core::int*>* list = block {
final core::List<core::int*>* #t21 = core::List::of<core::int*>(initial);
if(true)
- #t21.{core::List::add}(3){(core::int*) →* void};
- #t21.{core::List::add}(4){(core::int*) →* void};
- #t21.{core::List::add}(5){(core::int*) →* void};
- #t21.{core::List::add}(6){(core::int*) →* void};
+ #t21.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t21.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t21.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t21.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t21;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t22 = col::LinkedHashSet::of<core::int*>(initial);
if(true)
- #t22.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t22.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t22.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t22.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t22;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
@@ -142,19 +142,19 @@
core::List<core::int*>* list = block {
final core::List<core::int*>* #t23 = core::List::of<core::int*>(initial);
if(true)
- #t23.{core::List::add}(3){(core::int*) →* void};
- #t23.{core::List::add}(4){(core::int*) →* void};
- #t23.{core::List::add}(5){(core::int*) →* void};
- #t23.{core::List::add}(6){(core::int*) →* void};
+ #t23.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t23.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t23.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t23.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t23;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t24 = col::LinkedHashSet::of<core::int*>(initial);
if(true)
- #t24.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t24.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t24.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t24.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t24.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t24.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t24.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t24.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t24;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
@@ -164,24 +164,24 @@
final core::List<core::int*>* #t25 = <core::int*>[];
final core::Iterable<core::int*>* #t26 = initial;
if(!(#t26 == null))
- #t25.{core::List::addAll}(#t26){(core::Iterable<core::int*>*) →* void};
+ #t25.{core::List::addAll}{Invariant}(#t26){(core::Iterable<core::int*>*) →* void};
if(true)
- #t25.{core::List::add}(3){(core::int*) →* void};
- #t25.{core::List::add}(4){(core::int*) →* void};
- #t25.{core::List::add}(5){(core::int*) →* void};
- #t25.{core::List::add}(6){(core::int*) →* void};
+ #t25.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t25.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t25.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t25.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t25;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t27 = col::LinkedHashSet::•<core::int*>();
final core::Iterable<core::int*>* #t28 = initial;
if(!(#t28 == null))
- #t27.{core::Set::addAll}(#t28){(core::Iterable<core::int*>*) →* void};
+ #t27.{core::Set::addAll}{Invariant}(#t28){(core::Iterable<core::int*>*) →* void};
if(true)
- #t27.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t27.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t27.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t27.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t27;
self::expect(core::List::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.transformed.expect
index 371f045..7ebbdd7 100644
--- a/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.transformed.expect
@@ -10,22 +10,22 @@
core::List<core::int*>* list = block {
final core::List<core::int*>* #t1 = core::_GrowableList::_literal3<core::int*>(element0 as{TypeError,ForDynamic} core::int*, element1 as{TypeError} core::int*, element2);
if(true)
- #t1.{core::List::add}(3){(core::int*) →* void};
- #t1.{core::List::add}(4){(core::int*) →* void};
- #t1.{core::List::add}(5){(core::int*) →* void};
- #t1.{core::List::add}(6){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t1;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t2 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t2.{core::Set::add}(element0 as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
- #t2.{core::Set::add}(element1 as{TypeError} core::int*){(core::int*) →* core::bool*};
- #t2.{core::Set::add}(element2){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(element0 as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(element1 as{TypeError} core::int*){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(element2){(core::int*) →* core::bool*};
if(true)
- #t2.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t2.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t2.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t2.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t2;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
@@ -39,15 +39,15 @@
final dynamic #t4 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t5 = #t4 as{TypeError} core::int*;
- #t3.{core::List::add}(#t5){(core::int*) →* void};
+ #t3.{core::List::add}{Invariant}(#t5){(core::int*) →* void};
}
}
}
if(true)
- #t3.{core::List::add}(3){(core::int*) →* void};
- #t3.{core::List::add}(4){(core::int*) →* void};
- #t3.{core::List::add}(5){(core::int*) →* void};
- #t3.{core::List::add}(6){(core::int*) →* void};
+ #t3.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t3.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t3.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t3.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t3;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
@@ -58,15 +58,15 @@
final dynamic #t7 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t8 = #t7 as{TypeError} core::int*;
- #t6.{core::Set::add}(#t8){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(#t8){(core::int*) →* core::bool*};
}
}
}
if(true)
- #t6.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t6.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t6.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t6.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t6;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
@@ -80,15 +80,15 @@
final dynamic #t10 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t11 = #t10 as{TypeError} core::int*;
- #t9.{core::List::add}(#t11){(core::int*) →* void};
+ #t9.{core::List::add}{Invariant}(#t11){(core::int*) →* void};
}
}
}
if(true)
- #t9.{core::List::add}(3){(core::int*) →* void};
- #t9.{core::List::add}(4){(core::int*) →* void};
- #t9.{core::List::add}(5){(core::int*) →* void};
- #t9.{core::List::add}(6){(core::int*) →* void};
+ #t9.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t9.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t9.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t9.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t9;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
@@ -99,15 +99,15 @@
final dynamic #t13 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t14 = #t13 as{TypeError} core::int*;
- #t12.{core::Set::add}(#t14){(core::int*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(#t14){(core::int*) →* core::bool*};
}
}
}
if(true)
- #t12.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t12.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t12.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t12.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t12.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t12;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
@@ -121,15 +121,15 @@
final dynamic #t16 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t17 = #t16 as{TypeError} core::int*;
- #t15.{core::List::add}(#t17){(core::int*) →* void};
+ #t15.{core::List::add}{Invariant}(#t17){(core::int*) →* void};
}
}
}
if(true)
- #t15.{core::List::add}(3){(core::int*) →* void};
- #t15.{core::List::add}(4){(core::int*) →* void};
- #t15.{core::List::add}(5){(core::int*) →* void};
- #t15.{core::List::add}(6){(core::int*) →* void};
+ #t15.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t15.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t15.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t15.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t15;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
@@ -140,15 +140,15 @@
final dynamic #t19 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t20 = #t19 as{TypeError} core::int*;
- #t18.{core::Set::add}(#t20){(core::int*) →* core::bool*};
+ #t18.{core::Set::add}{Invariant}(#t20){(core::int*) →* core::bool*};
}
}
}
if(true)
- #t18.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t18.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t18.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t18.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t18.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t18.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t18.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t18.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t18;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
@@ -157,19 +157,19 @@
core::List<core::int*>* list = block {
final core::List<core::int*>* #t21 = core::List::of<core::int*>(initial);
if(true)
- #t21.{core::List::add}(3){(core::int*) →* void};
- #t21.{core::List::add}(4){(core::int*) →* void};
- #t21.{core::List::add}(5){(core::int*) →* void};
- #t21.{core::List::add}(6){(core::int*) →* void};
+ #t21.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t21.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t21.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t21.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t21;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t22 = col::LinkedHashSet::of<core::int*>(initial);
if(true)
- #t22.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t22.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t22.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t22.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t22;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
@@ -178,19 +178,19 @@
core::List<core::int*>* list = block {
final core::List<core::int*>* #t23 = core::List::of<core::int*>(initial);
if(true)
- #t23.{core::List::add}(3){(core::int*) →* void};
- #t23.{core::List::add}(4){(core::int*) →* void};
- #t23.{core::List::add}(5){(core::int*) →* void};
- #t23.{core::List::add}(6){(core::int*) →* void};
+ #t23.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t23.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t23.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t23.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t23;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t24 = col::LinkedHashSet::of<core::int*>(initial);
if(true)
- #t24.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t24.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t24.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t24.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t24.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t24.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t24.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t24.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t24;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
@@ -200,24 +200,24 @@
final core::List<core::int*>* #t25 = core::_GrowableList::•<core::int*>(0);
final core::Iterable<core::int*>* #t26 = initial;
if(!(#t26 == null))
- #t25.{core::List::addAll}(#t26){(core::Iterable<core::int*>*) →* void};
+ #t25.{core::List::addAll}{Invariant}(#t26){(core::Iterable<core::int*>*) →* void};
if(true)
- #t25.{core::List::add}(3){(core::int*) →* void};
- #t25.{core::List::add}(4){(core::int*) →* void};
- #t25.{core::List::add}(5){(core::int*) →* void};
- #t25.{core::List::add}(6){(core::int*) →* void};
+ #t25.{core::List::add}{Invariant}(3){(core::int*) →* void};
+ #t25.{core::List::add}{Invariant}(4){(core::int*) →* void};
+ #t25.{core::List::add}{Invariant}(5){(core::int*) →* void};
+ #t25.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t25;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t27 = new col::_CompactLinkedHashSet::•<core::int*>();
final core::Iterable<core::int*>* #t28 = initial;
if(!(#t28 == null))
- #t27.{core::Set::addAll}(#t28){(core::Iterable<core::int*>*) →* void};
+ #t27.{core::Set::addAll}{Invariant}(#t28){(core::Iterable<core::int*>*) →* void};
if(true)
- #t27.{core::Set::add}(3){(core::int*) →* core::bool*};
- #t27.{core::Set::add}(4){(core::int*) →* core::bool*};
- #t27.{core::Set::add}(5){(core::int*) →* core::bool*};
- #t27.{core::Set::add}(6){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t27;
self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
diff --git a/pkg/front_end/testcases/unified_collections/invariance.dart.weak.expect b/pkg/front_end/testcases/unified_collections/invariance.dart.weak.expect
index 4292215..78bb3e0 100644
--- a/pkg/front_end/testcases/unified_collections/invariance.dart.weak.expect
+++ b/pkg/front_end/testcases/unified_collections/invariance.dart.weak.expect
@@ -9,64 +9,64 @@
dynamic list3 = <core::int*>[0];
core::List<core::int*>* list = block {
final core::List<core::int*>* #t1 = <core::int*>[0];
- #t1.{core::List::addAll}(list1){(core::Iterable<core::int*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(list1){(core::Iterable<core::int*>*) →* void};
for (final dynamic #t2 in list2) {
final core::int* #t3 = #t2 as{TypeError} core::int*;
- #t1.{core::List::add}(#t3){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t3){(core::int*) →* void};
}
for (final dynamic #t4 in list3 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t5 = #t4 as{TypeError} core::int*;
- #t1.{core::List::add}(#t5){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t5){(core::int*) →* void};
}
if(true)
- #t1.{core::List::add}(2){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(2){(core::int*) →* void};
} =>#t1;
core::Set<core::int*>* set1 = block {
final core::Set<core::int*>* #t6 = col::LinkedHashSet::•<core::int*>();
- #t6.{core::Set::add}(0){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(0){(core::int*) →* core::bool*};
} =>#t6;
core::Set<core::num*>* set2 = block {
final core::Set<core::num*>* #t7 = col::LinkedHashSet::•<core::num*>();
- #t7.{core::Set::add}(0){(core::num*) →* core::bool*};
+ #t7.{core::Set::add}{Invariant}(0){(core::num*) →* core::bool*};
} =>#t7;
dynamic set3 = block {
final core::Set<core::int*>* #t8 = col::LinkedHashSet::•<core::int*>();
- #t8.{core::Set::add}(0){(core::int*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(0){(core::int*) →* core::bool*};
} =>#t8;
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t9 = col::LinkedHashSet::•<core::int*>();
- #t9.{core::Set::add}(0){(core::int*) →* core::bool*};
- #t9.{core::Set::addAll}(set1){(core::Iterable<core::int*>*) →* void};
+ #t9.{core::Set::add}{Invariant}(0){(core::int*) →* core::bool*};
+ #t9.{core::Set::addAll}{Invariant}(set1){(core::Iterable<core::int*>*) →* void};
for (final dynamic #t10 in set2) {
final core::int* #t11 = #t10 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t11){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t11){(core::int*) →* core::bool*};
}
for (final dynamic #t12 in set3 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t13 = #t12 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t13){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t13){(core::int*) →* core::bool*};
}
if(true)
- #t9.{core::Set::add}(2){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(2){(core::int*) →* core::bool*};
} =>#t9;
core::Map<core::int*, core::String*>* map1 = <core::int*, core::String*>{0: "foo"};
core::Map<core::num*, core::Object*>* map2 = <core::num*, core::Object*>{0: "bar"};
dynamic map3 = <core::int*, core::String*>{0: "baz"};
core::Map<core::int*, core::String*>* map = block {
final core::Map<core::int*, core::String*>* #t14 = <core::int*, core::String*>{};
- #t14.{core::Map::[]=}(0, "foo"){(core::int*, core::String*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(0, "foo"){(core::int*, core::String*) →* void};
for (final core::MapEntry<core::int*, core::String*>* #t15 in map1.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::String*>>})
- #t14.{core::Map::[]=}(#t15.{core::MapEntry::key}{core::int*}, #t15.{core::MapEntry::value}{core::String*}){(core::int*, core::String*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}{core::int*}, #t15.{core::MapEntry::value}{core::String*}){(core::int*, core::String*) →* void};
for (final core::MapEntry<dynamic, dynamic>* #t16 in map2.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::String*>>}) {
final core::int* #t17 = #t16.{core::MapEntry::key}{dynamic} as{TypeError} core::int*;
final core::String* #t18 = #t16.{core::MapEntry::value}{dynamic} as{TypeError} core::String*;
- #t14.{core::Map::[]=}(#t17, #t18){(core::int*, core::String*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(#t17, #t18){(core::int*, core::String*) →* void};
}
for (final core::MapEntry<dynamic, dynamic>* #t19 in (map3 as{TypeError,ForDynamic} core::Map<dynamic, dynamic>*).{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::String*>>}) {
final core::int* #t20 = #t19.{core::MapEntry::key}{dynamic} as{TypeError} core::int*;
final core::String* #t21 = #t19.{core::MapEntry::value}{dynamic} as{TypeError} core::String*;
- #t14.{core::Map::[]=}(#t20, #t21){(core::int*, core::String*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(#t20, #t21){(core::int*, core::String*) →* void};
}
if(true)
- #t14.{core::Map::[]=}(2, "baz"){(core::int*, core::String*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(2, "baz"){(core::int*, core::String*) →* void};
} =>#t14;
}
diff --git a/pkg/front_end/testcases/unified_collections/invariance.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/invariance.dart.weak.transformed.expect
index c778d8e..64652c2 100644
--- a/pkg/front_end/testcases/unified_collections/invariance.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/invariance.dart.weak.transformed.expect
@@ -9,14 +9,14 @@
dynamic list3 = core::_GrowableList::_literal1<core::int*>(0);
core::List<core::int*>* list = block {
final core::List<core::int*>* #t1 = core::_GrowableList::_literal1<core::int*>(0);
- #t1.{core::List::addAll}(list1){(core::Iterable<core::int*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(list1){(core::Iterable<core::int*>*) →* void};
{
core::Iterator<core::num*>* :sync-for-iterator = list2.{core::Iterable::iterator}{core::Iterator<core::num*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t2 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t3 = #t2 as{TypeError} core::int*;
- #t1.{core::List::add}(#t3){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t3){(core::int*) →* void};
}
}
}
@@ -26,36 +26,36 @@
final dynamic #t4 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t5 = #t4 as{TypeError} core::int*;
- #t1.{core::List::add}(#t5){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t5){(core::int*) →* void};
}
}
}
if(true)
- #t1.{core::List::add}(2){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(2){(core::int*) →* void};
} =>#t1;
core::Set<core::int*>* set1 = block {
final core::Set<core::int*>* #t6 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t6.{core::Set::add}(0){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(0){(core::int*) →* core::bool*};
} =>#t6;
core::Set<core::num*>* set2 = block {
final core::Set<core::num*>* #t7 = new col::_CompactLinkedHashSet::•<core::num*>();
- #t7.{core::Set::add}(0){(core::num*) →* core::bool*};
+ #t7.{core::Set::add}{Invariant}(0){(core::num*) →* core::bool*};
} =>#t7;
dynamic set3 = block {
final core::Set<core::int*>* #t8 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t8.{core::Set::add}(0){(core::int*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(0){(core::int*) →* core::bool*};
} =>#t8;
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t9 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t9.{core::Set::add}(0){(core::int*) →* core::bool*};
- #t9.{core::Set::addAll}(set1){(core::Iterable<core::int*>*) →* void};
+ #t9.{core::Set::add}{Invariant}(0){(core::int*) →* core::bool*};
+ #t9.{core::Set::addAll}{Invariant}(set1){(core::Iterable<core::int*>*) →* void};
{
core::Iterator<core::num*>* :sync-for-iterator = set2.{core::Iterable::iterator}{core::Iterator<core::num*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t10 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t11 = #t10 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t11){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t11){(core::int*) →* core::bool*};
}
}
}
@@ -65,24 +65,24 @@
final dynamic #t12 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t13 = #t12 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t13){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t13){(core::int*) →* core::bool*};
}
}
}
if(true)
- #t9.{core::Set::add}(2){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(2){(core::int*) →* core::bool*};
} =>#t9;
core::Map<core::int*, core::String*>* map1 = <core::int*, core::String*>{0: "foo"};
core::Map<core::num*, core::Object*>* map2 = <core::num*, core::Object*>{0: "bar"};
dynamic map3 = <core::int*, core::String*>{0: "baz"};
core::Map<core::int*, core::String*>* map = block {
final core::Map<core::int*, core::String*>* #t14 = <core::int*, core::String*>{};
- #t14.{core::Map::[]=}(0, "foo"){(core::int*, core::String*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(0, "foo"){(core::int*, core::String*) →* void};
{
core::Iterator<core::MapEntry<core::int*, core::String*>>* :sync-for-iterator = map1.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::String*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int*, core::String*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int*, core::String*>* #t15 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int*, core::String*>};
- #t14.{core::Map::[]=}(#t15.{core::MapEntry::key}{core::int*}, #t15.{core::MapEntry::value}{core::String*}){(core::int*, core::String*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(#t15.{core::MapEntry::key}{core::int*}, #t15.{core::MapEntry::value}{core::String*}){(core::int*, core::String*) →* void};
}
}
{
@@ -92,7 +92,7 @@
{
final core::int* #t17 = #t16.{core::MapEntry::key}{dynamic} as{TypeError} core::int*;
final core::String* #t18 = #t16.{core::MapEntry::value}{dynamic} as{TypeError} core::String*;
- #t14.{core::Map::[]=}(#t17, #t18){(core::int*, core::String*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(#t17, #t18){(core::int*, core::String*) →* void};
}
}
}
@@ -103,11 +103,11 @@
{
final core::int* #t20 = #t19.{core::MapEntry::key}{dynamic} as{TypeError} core::int*;
final core::String* #t21 = #t19.{core::MapEntry::value}{dynamic} as{TypeError} core::String*;
- #t14.{core::Map::[]=}(#t20, #t21){(core::int*, core::String*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(#t20, #t21){(core::int*, core::String*) →* void};
}
}
}
if(true)
- #t14.{core::Map::[]=}(2, "baz"){(core::int*, core::String*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(2, "baz"){(core::int*, core::String*) →* void};
} =>#t14;
}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.expect b/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.expect
index 3a1f942..253e487 100644
--- a/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.expect
+++ b/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.expect
@@ -15,29 +15,29 @@
final core::List<core::int*>* #t1 = <core::int*>[];
for (final dynamic #t2 in dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t3 = #t2 as{TypeError} core::int*;
- #t1.{core::List::add}(#t3){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t3){(core::int*) →* void};
}
for (final dynamic #t4 in dynamicList2 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t5 = #t4 as{TypeError} core::int*;
- #t1.{core::List::add}(#t5){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t5){(core::int*) →* void};
}
- #t1.{core::List::addAll}(iterableIntList){(core::Iterable<core::int*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(iterableIntList){(core::Iterable<core::int*>*) →* void};
for (final dynamic #t6 in iterableNumList1) {
final core::int* #t7 = #t6 as{TypeError} core::int*;
- #t1.{core::List::add}(#t7){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t7){(core::int*) →* void};
}
for (final dynamic #t8 in iterableNumList2) {
final core::int* #t9 = #t8 as{TypeError} core::int*;
- #t1.{core::List::add}(#t9){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t9){(core::int*) →* void};
}
- #t1.{core::List::addAll}(intList){(core::Iterable<core::int*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(intList){(core::Iterable<core::int*>*) →* void};
for (final dynamic #t10 in numList1) {
final core::int* #t11 = #t10 as{TypeError} core::int*;
- #t1.{core::List::add}(#t11){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t11){(core::int*) →* void};
}
for (final dynamic #t12 in numList2) {
final core::int* #t13 = #t12 as{TypeError} core::int*;
- #t1.{core::List::add}(#t13){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t13){(core::int*) →* void};
}
} =>#t1;
self::expect(core::List::generate<core::int*>(24, (core::int* i) → core::int* => i), list1);
@@ -45,18 +45,18 @@
final core::List<core::num*>* #t14 = <core::num*>[];
for (final dynamic #t15 in dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::num* #t16 = #t15 as{TypeError} core::num*;
- #t14.{core::List::add}(#t16){(core::num*) →* void};
+ #t14.{core::List::add}{Invariant}(#t16){(core::num*) →* void};
}
for (final dynamic #t17 in dynamicList2 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::num* #t18 = #t17 as{TypeError} core::num*;
- #t14.{core::List::add}(#t18){(core::num*) →* void};
+ #t14.{core::List::add}{Invariant}(#t18){(core::num*) →* void};
}
- #t14.{core::List::addAll}(iterableIntList){(core::Iterable<core::num*>*) →* void};
- #t14.{core::List::addAll}(iterableNumList1){(core::Iterable<core::num*>*) →* void};
- #t14.{core::List::addAll}(iterableNumList2){(core::Iterable<core::num*>*) →* void};
- #t14.{core::List::addAll}(intList){(core::Iterable<core::num*>*) →* void};
- #t14.{core::List::addAll}(numList1){(core::Iterable<core::num*>*) →* void};
- #t14.{core::List::addAll}(numList2){(core::Iterable<core::num*>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(iterableIntList){(core::Iterable<core::num*>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(iterableNumList1){(core::Iterable<core::num*>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(iterableNumList2){(core::Iterable<core::num*>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(intList){(core::Iterable<core::num*>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(numList1){(core::Iterable<core::num*>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(numList2){(core::Iterable<core::num*>*) →* void};
} =>#t14;
self::expect(core::List::generate<core::num*>(24, (core::int* i) → core::int* => i), list2);
core::List<core::int*>* list3 = block {
@@ -65,43 +65,43 @@
if(!(#t20 == null))
for (final dynamic #t21 in #t20) {
final core::int* #t22 = #t21 as{TypeError} core::int*;
- #t19.{core::List::add}(#t22){(core::int*) →* void};
+ #t19.{core::List::add}{Invariant}(#t22){(core::int*) →* void};
}
final core::Iterable<dynamic>* #t23 = dynamicList2 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
if(!(#t23 == null))
for (final dynamic #t24 in #t23) {
final core::int* #t25 = #t24 as{TypeError} core::int*;
- #t19.{core::List::add}(#t25){(core::int*) →* void};
+ #t19.{core::List::add}{Invariant}(#t25){(core::int*) →* void};
}
final core::Iterable<core::int*>* #t26 = iterableIntList;
if(!(#t26 == null))
- #t19.{core::List::addAll}(#t26){(core::Iterable<core::int*>*) →* void};
+ #t19.{core::List::addAll}{Invariant}(#t26){(core::Iterable<core::int*>*) →* void};
final core::Iterable<dynamic>* #t27 = iterableNumList1;
if(!(#t27 == null))
for (final dynamic #t28 in #t27) {
final core::int* #t29 = #t28 as{TypeError} core::int*;
- #t19.{core::List::add}(#t29){(core::int*) →* void};
+ #t19.{core::List::add}{Invariant}(#t29){(core::int*) →* void};
}
final core::Iterable<dynamic>* #t30 = iterableNumList2;
if(!(#t30 == null))
for (final dynamic #t31 in #t30) {
final core::int* #t32 = #t31 as{TypeError} core::int*;
- #t19.{core::List::add}(#t32){(core::int*) →* void};
+ #t19.{core::List::add}{Invariant}(#t32){(core::int*) →* void};
}
final core::Iterable<core::int*>* #t33 = intList;
if(!(#t33 == null))
- #t19.{core::List::addAll}(#t33){(core::Iterable<core::int*>*) →* void};
+ #t19.{core::List::addAll}{Invariant}(#t33){(core::Iterable<core::int*>*) →* void};
final core::Iterable<dynamic>* #t34 = numList1;
if(!(#t34 == null))
for (final dynamic #t35 in #t34) {
final core::int* #t36 = #t35 as{TypeError} core::int*;
- #t19.{core::List::add}(#t36){(core::int*) →* void};
+ #t19.{core::List::add}{Invariant}(#t36){(core::int*) →* void};
}
final core::Iterable<dynamic>* #t37 = numList2;
if(!(#t37 == null))
for (final dynamic #t38 in #t37) {
final core::int* #t39 = #t38 as{TypeError} core::int*;
- #t19.{core::List::add}(#t39){(core::int*) →* void};
+ #t19.{core::List::add}{Invariant}(#t39){(core::int*) →* void};
}
} =>#t19;
self::expect(core::List::generate<core::int*>(24, (core::int* i) → core::int* => i), list3);
@@ -111,32 +111,32 @@
if(!(#t41 == null))
for (final dynamic #t42 in #t41) {
final core::num* #t43 = #t42 as{TypeError} core::num*;
- #t40.{core::List::add}(#t43){(core::num*) →* void};
+ #t40.{core::List::add}{Invariant}(#t43){(core::num*) →* void};
}
final core::Iterable<dynamic>* #t44 = dynamicList2 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
if(!(#t44 == null))
for (final dynamic #t45 in #t44) {
final core::num* #t46 = #t45 as{TypeError} core::num*;
- #t40.{core::List::add}(#t46){(core::num*) →* void};
+ #t40.{core::List::add}{Invariant}(#t46){(core::num*) →* void};
}
final core::Iterable<core::num*>* #t47 = iterableIntList;
if(!(#t47 == null))
- #t40.{core::List::addAll}(#t47){(core::Iterable<core::num*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(#t47){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t48 = iterableNumList1;
if(!(#t48 == null))
- #t40.{core::List::addAll}(#t48){(core::Iterable<core::num*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(#t48){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t49 = iterableNumList2;
if(!(#t49 == null))
- #t40.{core::List::addAll}(#t49){(core::Iterable<core::num*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(#t49){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t50 = intList;
if(!(#t50 == null))
- #t40.{core::List::addAll}(#t50){(core::Iterable<core::num*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(#t50){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t51 = numList1;
if(!(#t51 == null))
- #t40.{core::List::addAll}(#t51){(core::Iterable<core::num*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(#t51){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t52 = numList2;
if(!(#t52 == null))
- #t40.{core::List::addAll}(#t52){(core::Iterable<core::num*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(#t52){(core::Iterable<core::num*>*) →* void};
} =>#t40;
self::expect(core::List::generate<core::num*>(24, (core::int* i) → core::int* => i), list4);
}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.transformed.expect
index cc8f344..92a2f2a 100644
--- a/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.transformed.expect
@@ -19,7 +19,7 @@
final dynamic #t2 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t3 = #t2 as{TypeError} core::int*;
- #t1.{core::List::add}(#t3){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t3){(core::int*) →* void};
}
}
}
@@ -29,18 +29,18 @@
final dynamic #t4 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t5 = #t4 as{TypeError} core::int*;
- #t1.{core::List::add}(#t5){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t5){(core::int*) →* void};
}
}
}
- #t1.{core::List::addAll}(iterableIntList){(core::Iterable<core::int*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(iterableIntList){(core::Iterable<core::int*>*) →* void};
{
core::Iterator<core::num*>* :sync-for-iterator = iterableNumList1.{core::Iterable::iterator}{core::Iterator<core::num*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t6 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t7 = #t6 as{TypeError} core::int*;
- #t1.{core::List::add}(#t7){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t7){(core::int*) →* void};
}
}
}
@@ -50,18 +50,18 @@
final dynamic #t8 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t9 = #t8 as{TypeError} core::int*;
- #t1.{core::List::add}(#t9){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t9){(core::int*) →* void};
}
}
}
- #t1.{core::List::addAll}(intList){(core::Iterable<core::int*>*) →* void};
+ #t1.{core::List::addAll}{Invariant}(intList){(core::Iterable<core::int*>*) →* void};
{
core::Iterator<core::num*>* :sync-for-iterator = numList1.{core::Iterable::iterator}{core::Iterator<core::num*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t10 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t11 = #t10 as{TypeError} core::int*;
- #t1.{core::List::add}(#t11){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t11){(core::int*) →* void};
}
}
}
@@ -71,7 +71,7 @@
final dynamic #t12 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t13 = #t12 as{TypeError} core::int*;
- #t1.{core::List::add}(#t13){(core::int*) →* void};
+ #t1.{core::List::add}{Invariant}(#t13){(core::int*) →* void};
}
}
}
@@ -85,7 +85,7 @@
final dynamic #t15 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num* #t16 = #t15 as{TypeError} core::num*;
- #t14.{core::List::add}(#t16){(core::num*) →* void};
+ #t14.{core::List::add}{Invariant}(#t16){(core::num*) →* void};
}
}
}
@@ -95,16 +95,16 @@
final dynamic #t17 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num* #t18 = #t17 as{TypeError} core::num*;
- #t14.{core::List::add}(#t18){(core::num*) →* void};
+ #t14.{core::List::add}{Invariant}(#t18){(core::num*) →* void};
}
}
}
- #t14.{core::List::addAll}(iterableIntList){(core::Iterable<core::num*>*) →* void};
- #t14.{core::List::addAll}(iterableNumList1){(core::Iterable<core::num*>*) →* void};
- #t14.{core::List::addAll}(iterableNumList2){(core::Iterable<core::num*>*) →* void};
- #t14.{core::List::addAll}(intList){(core::Iterable<core::num*>*) →* void};
- #t14.{core::List::addAll}(numList1){(core::Iterable<core::num*>*) →* void};
- #t14.{core::List::addAll}(numList2){(core::Iterable<core::num*>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(iterableIntList){(core::Iterable<core::num*>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(iterableNumList1){(core::Iterable<core::num*>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(iterableNumList2){(core::Iterable<core::num*>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(intList){(core::Iterable<core::num*>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(numList1){(core::Iterable<core::num*>*) →* void};
+ #t14.{core::List::addAll}{Invariant}(numList2){(core::Iterable<core::num*>*) →* void};
} =>#t14;
self::expect(core::_GrowableList::generate<core::num*>(24, (core::int* i) → core::int* => i), list2);
core::List<core::int*>* list3 = block {
@@ -116,7 +116,7 @@
final dynamic #t21 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t22 = #t21 as{TypeError} core::int*;
- #t19.{core::List::add}(#t22){(core::int*) →* void};
+ #t19.{core::List::add}{Invariant}(#t22){(core::int*) →* void};
}
}
}
@@ -127,13 +127,13 @@
final dynamic #t24 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t25 = #t24 as{TypeError} core::int*;
- #t19.{core::List::add}(#t25){(core::int*) →* void};
+ #t19.{core::List::add}{Invariant}(#t25){(core::int*) →* void};
}
}
}
final core::Iterable<core::int*>* #t26 = iterableIntList;
if(!(#t26 == null))
- #t19.{core::List::addAll}(#t26){(core::Iterable<core::int*>*) →* void};
+ #t19.{core::List::addAll}{Invariant}(#t26){(core::Iterable<core::int*>*) →* void};
final core::Iterable<dynamic>* #t27 = iterableNumList1;
if(!(#t27 == null)) {
core::Iterator<dynamic>* :sync-for-iterator = #t27.{core::Iterable::iterator}{core::Iterator<dynamic>*};
@@ -141,7 +141,7 @@
final dynamic #t28 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t29 = #t28 as{TypeError} core::int*;
- #t19.{core::List::add}(#t29){(core::int*) →* void};
+ #t19.{core::List::add}{Invariant}(#t29){(core::int*) →* void};
}
}
}
@@ -152,13 +152,13 @@
final dynamic #t31 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t32 = #t31 as{TypeError} core::int*;
- #t19.{core::List::add}(#t32){(core::int*) →* void};
+ #t19.{core::List::add}{Invariant}(#t32){(core::int*) →* void};
}
}
}
final core::Iterable<core::int*>* #t33 = intList;
if(!(#t33 == null))
- #t19.{core::List::addAll}(#t33){(core::Iterable<core::int*>*) →* void};
+ #t19.{core::List::addAll}{Invariant}(#t33){(core::Iterable<core::int*>*) →* void};
final core::Iterable<dynamic>* #t34 = numList1;
if(!(#t34 == null)) {
core::Iterator<dynamic>* :sync-for-iterator = #t34.{core::Iterable::iterator}{core::Iterator<dynamic>*};
@@ -166,7 +166,7 @@
final dynamic #t35 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t36 = #t35 as{TypeError} core::int*;
- #t19.{core::List::add}(#t36){(core::int*) →* void};
+ #t19.{core::List::add}{Invariant}(#t36){(core::int*) →* void};
}
}
}
@@ -177,7 +177,7 @@
final dynamic #t38 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t39 = #t38 as{TypeError} core::int*;
- #t19.{core::List::add}(#t39){(core::int*) →* void};
+ #t19.{core::List::add}{Invariant}(#t39){(core::int*) →* void};
}
}
}
@@ -192,7 +192,7 @@
final dynamic #t42 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num* #t43 = #t42 as{TypeError} core::num*;
- #t40.{core::List::add}(#t43){(core::num*) →* void};
+ #t40.{core::List::add}{Invariant}(#t43){(core::num*) →* void};
}
}
}
@@ -203,28 +203,28 @@
final dynamic #t45 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num* #t46 = #t45 as{TypeError} core::num*;
- #t40.{core::List::add}(#t46){(core::num*) →* void};
+ #t40.{core::List::add}{Invariant}(#t46){(core::num*) →* void};
}
}
}
final core::Iterable<core::num*>* #t47 = iterableIntList;
if(!(#t47 == null))
- #t40.{core::List::addAll}(#t47){(core::Iterable<core::num*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(#t47){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t48 = iterableNumList1;
if(!(#t48 == null))
- #t40.{core::List::addAll}(#t48){(core::Iterable<core::num*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(#t48){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t49 = iterableNumList2;
if(!(#t49 == null))
- #t40.{core::List::addAll}(#t49){(core::Iterable<core::num*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(#t49){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t50 = intList;
if(!(#t50 == null))
- #t40.{core::List::addAll}(#t50){(core::Iterable<core::num*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(#t50){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t51 = numList1;
if(!(#t51 == null))
- #t40.{core::List::addAll}(#t51){(core::Iterable<core::num*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(#t51){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t52 = numList2;
if(!(#t52 == null))
- #t40.{core::List::addAll}(#t52){(core::Iterable<core::num*>*) →* void};
+ #t40.{core::List::addAll}{Invariant}(#t52){(core::Iterable<core::num*>*) →* void};
} =>#t40;
self::expect(core::_GrowableList::generate<core::num*>(24, (core::int* i) → core::int* => i), list4);
}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.expect b/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.expect
index f5d6b5f..c6f63bf 100644
--- a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.expect
+++ b/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.expect
@@ -12,36 +12,36 @@
final core::List<core::int> #t1 = <core::int>[];
for (final dynamic #t2 in dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
final core::int #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int;
- #t1.{core::List::add}(#t3){(core::int) → void};
+ #t1.{core::List::add}{Invariant}(#t3){(core::int) → void};
}
for (final dynamic #t4 in dynamicList2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
final core::int #t5 = #t4 as{TypeError,ForNonNullableByDefault} core::int;
- #t1.{core::List::add}(#t5){(core::int) → void};
+ #t1.{core::List::add}{Invariant}(#t5){(core::int) → void};
}
for (final dynamic #t6 in dynamicList3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
final core::int #t7 = #t6 as{TypeError,ForNonNullableByDefault} core::int;
- #t1.{core::List::add}(#t7){(core::int) → void};
+ #t1.{core::List::add}{Invariant}(#t7){(core::int) → void};
}
- #t1.{core::List::addAll}(iterableIntList){(core::Iterable<core::int>) → void};
- #t1.{core::List::addAll}(intList){(core::Iterable<core::int>) → void};
+ #t1.{core::List::addAll}{Invariant}(iterableIntList){(core::Iterable<core::int>) → void};
+ #t1.{core::List::addAll}{Invariant}(intList){(core::Iterable<core::int>) → void};
} =>#t1;
self::expect(core::List::generate<core::int>(15, (core::int i) → core::int => i), list1);
core::List<core::num> list2 = block {
final core::List<core::num> #t8 = <core::num>[];
for (final dynamic #t9 in dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
final core::num #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::num;
- #t8.{core::List::add}(#t10){(core::num) → void};
+ #t8.{core::List::add}{Invariant}(#t10){(core::num) → void};
}
for (final dynamic #t11 in dynamicList2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
final core::num #t12 = #t11 as{TypeError,ForNonNullableByDefault} core::num;
- #t8.{core::List::add}(#t12){(core::num) → void};
+ #t8.{core::List::add}{Invariant}(#t12){(core::num) → void};
}
for (final dynamic #t13 in dynamicList3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
final core::num #t14 = #t13 as{TypeError,ForNonNullableByDefault} core::num;
- #t8.{core::List::add}(#t14){(core::num) → void};
+ #t8.{core::List::add}{Invariant}(#t14){(core::num) → void};
}
- #t8.{core::List::addAll}(iterableIntList){(core::Iterable<core::num>) → void};
- #t8.{core::List::addAll}(intList){(core::Iterable<core::num>) → void};
+ #t8.{core::List::addAll}{Invariant}(iterableIntList){(core::Iterable<core::num>) → void};
+ #t8.{core::List::addAll}{Invariant}(intList){(core::Iterable<core::num>) → void};
} =>#t8;
self::expect(core::List::generate<core::num>(15, (core::int i) → core::int => i), list2);
}
@@ -57,26 +57,26 @@
if(!(#t16 == null))
for (final dynamic #t17 in #t16{core::Iterable<dynamic>}) {
final core::int #t18 = #t17 as{TypeError,ForNonNullableByDefault} core::int;
- #t15.{core::List::add}(#t18){(core::int) → void};
+ #t15.{core::List::add}{Invariant}(#t18){(core::int) → void};
}
final core::Iterable<dynamic>? #t19 = dynamicList2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
if(!(#t19 == null))
for (final dynamic #t20 in #t19{core::Iterable<dynamic>}) {
final core::int #t21 = #t20 as{TypeError,ForNonNullableByDefault} core::int;
- #t15.{core::List::add}(#t21){(core::int) → void};
+ #t15.{core::List::add}{Invariant}(#t21){(core::int) → void};
}
final core::Iterable<dynamic>? #t22 = dynamicList3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
if(!(#t22 == null))
for (final dynamic #t23 in #t22{core::Iterable<dynamic>}) {
final core::int #t24 = #t23 as{TypeError,ForNonNullableByDefault} core::int;
- #t15.{core::List::add}(#t24){(core::int) → void};
+ #t15.{core::List::add}{Invariant}(#t24){(core::int) → void};
}
final core::Iterable<core::int>? #t25 = iterableIntList;
if(!(#t25 == null))
- #t15.{core::List::addAll}(#t25{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t15.{core::List::addAll}{Invariant}(#t25{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
final core::Iterable<core::int>? #t26 = intList;
if(!(#t26 == null))
- #t15.{core::List::addAll}(#t26{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t15.{core::List::addAll}{Invariant}(#t26{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
} =>#t15;
self::expect(core::List::generate<core::int>(15, (core::int i) → core::int => i), list1);
core::List<core::num> list2 = block {
@@ -85,26 +85,26 @@
if(!(#t28 == null))
for (final dynamic #t29 in #t28{core::Iterable<dynamic>}) {
final core::num #t30 = #t29 as{TypeError,ForNonNullableByDefault} core::num;
- #t27.{core::List::add}(#t30){(core::num) → void};
+ #t27.{core::List::add}{Invariant}(#t30){(core::num) → void};
}
final core::Iterable<dynamic>? #t31 = dynamicList2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
if(!(#t31 == null))
for (final dynamic #t32 in #t31{core::Iterable<dynamic>}) {
final core::num #t33 = #t32 as{TypeError,ForNonNullableByDefault} core::num;
- #t27.{core::List::add}(#t33){(core::num) → void};
+ #t27.{core::List::add}{Invariant}(#t33){(core::num) → void};
}
final core::Iterable<dynamic>? #t34 = dynamicList3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
if(!(#t34 == null))
for (final dynamic #t35 in #t34{core::Iterable<dynamic>}) {
final core::num #t36 = #t35 as{TypeError,ForNonNullableByDefault} core::num;
- #t27.{core::List::add}(#t36){(core::num) → void};
+ #t27.{core::List::add}{Invariant}(#t36){(core::num) → void};
}
final core::Iterable<core::num>? #t37 = iterableIntList;
if(!(#t37 == null))
- #t27.{core::List::addAll}(#t37{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
+ #t27.{core::List::addAll}{Invariant}(#t37{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
final core::Iterable<core::num>? #t38 = intList;
if(!(#t38 == null))
- #t27.{core::List::addAll}(#t38{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
+ #t27.{core::List::addAll}{Invariant}(#t38{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
} =>#t27;
self::expect(core::List::generate<core::num>(15, (core::int i) → core::int => i), list2);
}
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.transformed.expect
index 441c8f3..9fbd382 100644
--- a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.transformed.expect
@@ -16,7 +16,7 @@
final dynamic #t2 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t3 = #t2 as{TypeError,ForNonNullableByDefault} core::int;
- #t1.{core::List::add}(#t3){(core::int) → void};
+ #t1.{core::List::add}{Invariant}(#t3){(core::int) → void};
}
}
}
@@ -26,7 +26,7 @@
final dynamic #t4 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t5 = #t4 as{TypeError,ForNonNullableByDefault} core::int;
- #t1.{core::List::add}(#t5){(core::int) → void};
+ #t1.{core::List::add}{Invariant}(#t5){(core::int) → void};
}
}
}
@@ -36,12 +36,12 @@
final dynamic #t6 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t7 = #t6 as{TypeError,ForNonNullableByDefault} core::int;
- #t1.{core::List::add}(#t7){(core::int) → void};
+ #t1.{core::List::add}{Invariant}(#t7){(core::int) → void};
}
}
}
- #t1.{core::List::addAll}(iterableIntList){(core::Iterable<core::int>) → void};
- #t1.{core::List::addAll}(intList){(core::Iterable<core::int>) → void};
+ #t1.{core::List::addAll}{Invariant}(iterableIntList){(core::Iterable<core::int>) → void};
+ #t1.{core::List::addAll}{Invariant}(intList){(core::Iterable<core::int>) → void};
} =>#t1;
self::expect(core::_GrowableList::generate<core::int>(15, (core::int i) → core::int => i), list1);
core::List<core::num> list2 = block {
@@ -52,7 +52,7 @@
final dynamic #t9 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::num;
- #t8.{core::List::add}(#t10){(core::num) → void};
+ #t8.{core::List::add}{Invariant}(#t10){(core::num) → void};
}
}
}
@@ -62,7 +62,7 @@
final dynamic #t11 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num #t12 = #t11 as{TypeError,ForNonNullableByDefault} core::num;
- #t8.{core::List::add}(#t12){(core::num) → void};
+ #t8.{core::List::add}{Invariant}(#t12){(core::num) → void};
}
}
}
@@ -72,12 +72,12 @@
final dynamic #t13 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num #t14 = #t13 as{TypeError,ForNonNullableByDefault} core::num;
- #t8.{core::List::add}(#t14){(core::num) → void};
+ #t8.{core::List::add}{Invariant}(#t14){(core::num) → void};
}
}
}
- #t8.{core::List::addAll}(iterableIntList){(core::Iterable<core::num>) → void};
- #t8.{core::List::addAll}(intList){(core::Iterable<core::num>) → void};
+ #t8.{core::List::addAll}{Invariant}(iterableIntList){(core::Iterable<core::num>) → void};
+ #t8.{core::List::addAll}{Invariant}(intList){(core::Iterable<core::num>) → void};
} =>#t8;
self::expect(core::_GrowableList::generate<core::num>(15, (core::int i) → core::int => i), list2);
}
@@ -96,7 +96,7 @@
final dynamic #t17 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t18 = #t17 as{TypeError,ForNonNullableByDefault} core::int;
- #t15.{core::List::add}(#t18){(core::int) → void};
+ #t15.{core::List::add}{Invariant}(#t18){(core::int) → void};
}
}
}
@@ -107,7 +107,7 @@
final dynamic #t20 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t21 = #t20 as{TypeError,ForNonNullableByDefault} core::int;
- #t15.{core::List::add}(#t21){(core::int) → void};
+ #t15.{core::List::add}{Invariant}(#t21){(core::int) → void};
}
}
}
@@ -118,16 +118,16 @@
final dynamic #t23 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t24 = #t23 as{TypeError,ForNonNullableByDefault} core::int;
- #t15.{core::List::add}(#t24){(core::int) → void};
+ #t15.{core::List::add}{Invariant}(#t24){(core::int) → void};
}
}
}
final core::Iterable<core::int>? #t25 = iterableIntList;
if(!(#t25 == null))
- #t15.{core::List::addAll}(#t25{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t15.{core::List::addAll}{Invariant}(#t25{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
final core::Iterable<core::int>? #t26 = intList;
if(!(#t26 == null))
- #t15.{core::List::addAll}(#t26{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t15.{core::List::addAll}{Invariant}(#t26{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
} =>#t15;
self::expect(core::_GrowableList::generate<core::int>(15, (core::int i) → core::int => i), list1);
core::List<core::num> list2 = block {
@@ -139,7 +139,7 @@
final dynamic #t29 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num #t30 = #t29 as{TypeError,ForNonNullableByDefault} core::num;
- #t27.{core::List::add}(#t30){(core::num) → void};
+ #t27.{core::List::add}{Invariant}(#t30){(core::num) → void};
}
}
}
@@ -150,7 +150,7 @@
final dynamic #t32 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num #t33 = #t32 as{TypeError,ForNonNullableByDefault} core::num;
- #t27.{core::List::add}(#t33){(core::num) → void};
+ #t27.{core::List::add}{Invariant}(#t33){(core::num) → void};
}
}
}
@@ -161,16 +161,16 @@
final dynamic #t35 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num #t36 = #t35 as{TypeError,ForNonNullableByDefault} core::num;
- #t27.{core::List::add}(#t36){(core::num) → void};
+ #t27.{core::List::add}{Invariant}(#t36){(core::num) → void};
}
}
}
final core::Iterable<core::num>? #t37 = iterableIntList;
if(!(#t37 == null))
- #t27.{core::List::addAll}(#t37{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
+ #t27.{core::List::addAll}{Invariant}(#t37{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
final core::Iterable<core::num>? #t38 = intList;
if(!(#t38 == null))
- #t27.{core::List::addAll}(#t38{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
+ #t27.{core::List::addAll}{Invariant}(#t38{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
} =>#t27;
self::expect(core::_GrowableList::generate<core::num>(15, (core::int i) → core::int => i), list2);
}
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.expect
index b90b3064..a1e49d5 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.expect
@@ -47,104 +47,104 @@
static field core::Map<dynamic, dynamic>* map1 = block {
final core::Map<dynamic, dynamic>* #t1 = <dynamic, dynamic>{};
if(self::b)
- #t1.{core::Map::[]=}(0, 1){(dynamic, dynamic) →* void};
+ #t1.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) →* void};
else
for (final core::MapEntry<dynamic, dynamic>* #t2 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t1.{core::Map::[]=}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t1.{core::Map::[]=}{Invariant}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
} =>#t1;
static field core::Map<dynamic, dynamic>* map2 = block {
final core::Map<dynamic, dynamic>* #t3 = <dynamic, dynamic>{};
if(self::b)
for (final core::MapEntry<dynamic, dynamic>* #t4 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t3.{core::Map::[]=}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
else
- #t3.{core::Map::[]=}(0, 1){(dynamic, dynamic) →* void};
+ #t3.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) →* void};
} =>#t3;
static field core::Map<dynamic, dynamic>* map3 = block {
final core::Map<dynamic, dynamic>* #t5 = <dynamic, dynamic>{};
if(self::b)
for (final core::MapEntry<dynamic, dynamic>* #t6 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t5.{core::Map::[]=}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
else
for (final core::MapEntry<dynamic, dynamic>* #t7 in self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>})
- #t5.{core::Map::[]=}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
} =>#t5;
static field core::Map<dynamic, core::int*>* map4 = block {
final core::Map<dynamic, core::int*>* #t8 = <dynamic, core::int*>{};
if(self::b)
- #t8.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t8.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
else
for (dynamic a in self::list)
- #t8.{core::Map::[]=}(a, 1){(dynamic, core::int*) →* void};
+ #t8.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int*) →* void};
} =>#t8;
static field core::Map<dynamic, core::int*>* map5 = block {
final core::Map<dynamic, core::int*>* #t9 = <dynamic, core::int*>{};
if(self::b)
for (dynamic a in self::list)
- #t9.{core::Map::[]=}(a, 1){(dynamic, core::int*) →* void};
+ #t9.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int*) →* void};
else
- #t9.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t9.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
} =>#t9;
static field core::Map<dynamic, core::int*>* map6 = block {
final core::Map<dynamic, core::int*>* #t10 = <dynamic, core::int*>{};
if(self::b)
- #t10.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t10.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
else
for (dynamic a in self::list)
for (final core::MapEntry<dynamic, core::int*>* #t11 in <dynamic, core::int*>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>})
- #t10.{core::Map::[]=}(#t11.{core::MapEntry::key}{dynamic}, #t11.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+ #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}{dynamic}, #t11.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
} =>#t10;
static field core::Map<dynamic, core::int*>* map7 = block {
final core::Map<dynamic, core::int*>* #t12 = <dynamic, core::int*>{};
if(self::b)
for (dynamic a in self::list)
for (final core::MapEntry<dynamic, core::int*>* #t13 in <dynamic, core::int*>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>})
- #t12.{core::Map::[]=}(#t13.{core::MapEntry::key}{dynamic}, #t13.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+ #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{dynamic}, #t13.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
else
- #t12.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t12.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
} =>#t12;
static field core::Map<dynamic, core::int*>* map8 = block {
final core::Map<dynamic, core::int*>* #t14 = <dynamic, core::int*>{};
if(self::b)
- #t14.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
else
for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t14.{core::Map::[]=}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
} =>#t14;
static field core::Map<dynamic, core::int*>* map9 = block {
final core::Map<dynamic, core::int*>* #t15 = <dynamic, core::int*>{};
if(self::b)
for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t15.{core::Map::[]=}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
+ #t15.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
else
- #t15.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t15.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
} =>#t15;
static field core::Map<dynamic, core::int*>* map10 = block {
final core::Map<dynamic, core::int*>* #t16 = <dynamic, core::int*>{};
if(self::b)
- #t16.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t16.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
else
for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
for (final core::MapEntry<dynamic, core::int*>* #t17 in <dynamic, core::int*>{self::list.{core::List::[]}(i){(core::int*) →* dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>})
- #t16.{core::Map::[]=}(#t17.{core::MapEntry::key}{dynamic}, #t17.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+ #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}{dynamic}, #t17.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
} =>#t16;
static field core::Map<dynamic, core::int*>* map11 = block {
final core::Map<dynamic, core::int*>* #t18 = <dynamic, core::int*>{};
if(self::b)
for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
for (final core::MapEntry<dynamic, core::int*>* #t19 in <dynamic, core::int*>{self::list.{core::List::[]}(i){(core::int*) →* dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>})
- #t18.{core::Map::[]=}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+ #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
else
- #t18.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t18.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
} =>#t18;
static field core::Map<core::int*, core::int*>* map12 = block {
final core::Map<core::int*, core::int*>* #t20 = <core::int*, core::int*>{};
if(self::b)
- #t20.{core::Map::[]=}(0, 1){(core::int*, core::int*) →* void};
+ #t20.{core::Map::[]=}{Invariant}(0, 1){(core::int*, core::int*) →* void};
else
if(self::b)
for (final core::MapEntry<core::int*, core::int*>* #t21 in <core::int*, core::int*>{0: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>})
- #t20.{core::Map::[]=}(#t21.{core::MapEntry::key}{core::int*}, #t21.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
+ #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{core::int*}, #t21.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
} =>#t20;
static field core::Map<dynamic, Null>* error4 = <dynamic, Null>{invalid-expression "pkg/front_end/testcases/unified_collections/mixed_entries.dart:35:32: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
var error4 = {if (b) 0: 1 else for (var a in list) a};
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect
index 2becbbe..cf02136 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect
@@ -47,12 +47,12 @@
static field core::Map<dynamic, dynamic>* map1 = block {
final core::Map<dynamic, dynamic>* #t1 = <dynamic, dynamic>{};
if(self::b)
- #t1.{core::Map::[]=}(0, 1){(dynamic, dynamic) →* void};
+ #t1.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) →* void};
else {
core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic>* #t2 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t1.{core::Map::[]=}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t1.{core::Map::[]=}{Invariant}(#t2.{core::MapEntry::key}{dynamic}, #t2.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
}
}
} =>#t1;
@@ -62,11 +62,11 @@
core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic>* #t4 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t3.{core::Map::[]=}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t3.{core::Map::[]=}{Invariant}(#t4.{core::MapEntry::key}{dynamic}, #t4.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
}
}
else
- #t3.{core::Map::[]=}(0, 1){(dynamic, dynamic) →* void};
+ #t3.{core::Map::[]=}{Invariant}(0, 1){(dynamic, dynamic) →* void};
} =>#t3;
static field core::Map<dynamic, dynamic>* map3 = block {
final core::Map<dynamic, dynamic>* #t5 = <dynamic, dynamic>{};
@@ -74,26 +74,26 @@
core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic>* #t6 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t5.{core::Map::[]=}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t5.{core::Map::[]=}{Invariant}(#t6.{core::MapEntry::key}{dynamic}, #t6.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
}
}
else {
core::Iterator<core::MapEntry<dynamic, dynamic>>* :sync-for-iterator = self::map0.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, dynamic>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, dynamic>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, dynamic>* #t7 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, dynamic>};
- #t5.{core::Map::[]=}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
+ #t5.{core::Map::[]=}{Invariant}(#t7.{core::MapEntry::key}{dynamic}, #t7.{core::MapEntry::value}{dynamic}){(dynamic, dynamic) →* void};
}
}
} =>#t5;
static field core::Map<dynamic, core::int*>* map4 = block {
final core::Map<dynamic, core::int*>* #t8 = <dynamic, core::int*>{};
if(self::b)
- #t8.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t8.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
else {
core::Iterator<dynamic>* :sync-for-iterator = self::list.{core::Iterable::iterator}{core::Iterator<dynamic>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic a = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t8.{core::Map::[]=}(a, 1){(dynamic, core::int*) →* void};
+ #t8.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int*) →* void};
}
}
} =>#t8;
@@ -103,16 +103,16 @@
core::Iterator<dynamic>* :sync-for-iterator = self::list.{core::Iterable::iterator}{core::Iterator<dynamic>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic a = :sync-for-iterator.{core::Iterator::current}{dynamic};
- #t9.{core::Map::[]=}(a, 1){(dynamic, core::int*) →* void};
+ #t9.{core::Map::[]=}{Invariant}(a, 1){(dynamic, core::int*) →* void};
}
}
else
- #t9.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t9.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
} =>#t9;
static field core::Map<dynamic, core::int*>* map6 = block {
final core::Map<dynamic, core::int*>* #t10 = <dynamic, core::int*>{};
if(self::b)
- #t10.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t10.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
else {
core::Iterator<dynamic>* :sync-for-iterator = self::list.{core::Iterable::iterator}{core::Iterator<dynamic>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
@@ -121,7 +121,7 @@
core::Iterator<core::MapEntry<dynamic, core::int*>>* :sync-for-iterator = <dynamic, core::int*>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, core::int*>* #t11 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, core::int*>};
- #t10.{core::Map::[]=}(#t11.{core::MapEntry::key}{dynamic}, #t11.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+ #t10.{core::Map::[]=}{Invariant}(#t11.{core::MapEntry::key}{dynamic}, #t11.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
}
}
}
@@ -137,40 +137,40 @@
core::Iterator<core::MapEntry<dynamic, core::int*>>* :sync-for-iterator = <dynamic, core::int*>{a: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, core::int*>* #t13 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, core::int*>};
- #t12.{core::Map::[]=}(#t13.{core::MapEntry::key}{dynamic}, #t13.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+ #t12.{core::Map::[]=}{Invariant}(#t13.{core::MapEntry::key}{dynamic}, #t13.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
}
}
}
}
else
- #t12.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t12.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
} =>#t12;
static field core::Map<dynamic, core::int*>* map8 = block {
final core::Map<dynamic, core::int*>* #t14 = <dynamic, core::int*>{};
if(self::b)
- #t14.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
else
for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t14.{core::Map::[]=}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
+ #t14.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
} =>#t14;
static field core::Map<dynamic, core::int*>* map9 = block {
final core::Map<dynamic, core::int*>* #t15 = <dynamic, core::int*>{};
if(self::b)
for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*})
- #t15.{core::Map::[]=}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
+ #t15.{core::Map::[]=}{Invariant}(self::list.{core::List::[]}(i){(core::int*) →* dynamic}, 1){(dynamic, core::int*) →* void};
else
- #t15.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t15.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
} =>#t15;
static field core::Map<dynamic, core::int*>* map10 = block {
final core::Map<dynamic, core::int*>* #t16 = <dynamic, core::int*>{};
if(self::b)
- #t16.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t16.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
else
for (core::int* i = 0; i.{core::num::<}(self::list.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
core::Iterator<core::MapEntry<dynamic, core::int*>>* :sync-for-iterator = <dynamic, core::int*>{self::list.{core::List::[]}(i){(core::int*) →* dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, core::int*>* #t17 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, core::int*>};
- #t16.{core::Map::[]=}(#t17.{core::MapEntry::key}{dynamic}, #t17.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+ #t16.{core::Map::[]=}{Invariant}(#t17.{core::MapEntry::key}{dynamic}, #t17.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
}
}
} =>#t16;
@@ -181,22 +181,22 @@
core::Iterator<core::MapEntry<dynamic, core::int*>>* :sync-for-iterator = <dynamic, core::int*>{self::list.{core::List::[]}(i){(core::int*) →* dynamic}: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<dynamic, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<dynamic, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<dynamic, core::int*>* #t19 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<dynamic, core::int*>};
- #t18.{core::Map::[]=}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
+ #t18.{core::Map::[]=}{Invariant}(#t19.{core::MapEntry::key}{dynamic}, #t19.{core::MapEntry::value}{core::int*}){(dynamic, core::int*) →* void};
}
}
else
- #t18.{core::Map::[]=}(0, 1){(dynamic, core::int*) →* void};
+ #t18.{core::Map::[]=}{Invariant}(0, 1){(dynamic, core::int*) →* void};
} =>#t18;
static field core::Map<core::int*, core::int*>* map12 = block {
final core::Map<core::int*, core::int*>* #t20 = <core::int*, core::int*>{};
if(self::b)
- #t20.{core::Map::[]=}(0, 1){(core::int*, core::int*) →* void};
+ #t20.{core::Map::[]=}{Invariant}(0, 1){(core::int*, core::int*) →* void};
else
if(self::b) {
core::Iterator<core::MapEntry<core::int*, core::int*>>* :sync-for-iterator = <core::int*, core::int*>{0: 1}.{core::Map::entries}{core::Iterable<core::MapEntry<core::int*, core::int*>>}.{core::Iterable::iterator}{core::Iterator<core::MapEntry<core::int*, core::int*>>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::MapEntry<core::int*, core::int*>* #t21 = :sync-for-iterator.{core::Iterator::current}{core::MapEntry<core::int*, core::int*>};
- #t20.{core::Map::[]=}(#t21.{core::MapEntry::key}{core::int*}, #t21.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
+ #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}{core::int*}, #t21.{core::MapEntry::value}{core::int*}){(core::int*, core::int*) →* void};
}
}
} =>#t20;
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.expect b/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.expect
index d99b951..5fe44fb 100644
--- a/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.expect
+++ b/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.expect
@@ -7,79 +7,79 @@
static method useAddAll() → void {
dynamic dynamicSet1 = block {
final core::Set<core::int*>* #t1 = col::LinkedHashSet::•<core::int*>();
- #t1.{core::Set::add}(0){(core::int*) →* core::bool*};
- #t1.{core::Set::add}(1){(core::int*) →* core::bool*};
- #t1.{core::Set::add}(2){(core::int*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(0){(core::int*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(1){(core::int*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(2){(core::int*) →* core::bool*};
} =>#t1;
dynamic dynamicSet2 = block {
final core::Set<core::num*>* #t2 = col::LinkedHashSet::•<core::num*>();
- #t2.{core::Set::add}(3){(core::num*) →* core::bool*};
- #t2.{core::Set::add}(4){(core::num*) →* core::bool*};
- #t2.{core::Set::add}(5){(core::num*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(3){(core::num*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(4){(core::num*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(5){(core::num*) →* core::bool*};
} =>#t2;
core::Iterable<core::int*>* iterableIntSet = block {
final core::Set<core::int*>* #t3 = col::LinkedHashSet::•<core::int*>();
- #t3.{core::Set::add}(6){(core::int*) →* core::bool*};
- #t3.{core::Set::add}(7){(core::int*) →* core::bool*};
- #t3.{core::Set::add}(8){(core::int*) →* core::bool*};
+ #t3.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
+ #t3.{core::Set::add}{Invariant}(7){(core::int*) →* core::bool*};
+ #t3.{core::Set::add}{Invariant}(8){(core::int*) →* core::bool*};
} =>#t3;
core::Iterable<core::num*>* iterableNumSet1 = block {
final core::Set<core::int*>* #t4 = col::LinkedHashSet::•<core::int*>();
- #t4.{core::Set::add}(9){(core::int*) →* core::bool*};
- #t4.{core::Set::add}(10){(core::int*) →* core::bool*};
- #t4.{core::Set::add}(11){(core::int*) →* core::bool*};
+ #t4.{core::Set::add}{Invariant}(9){(core::int*) →* core::bool*};
+ #t4.{core::Set::add}{Invariant}(10){(core::int*) →* core::bool*};
+ #t4.{core::Set::add}{Invariant}(11){(core::int*) →* core::bool*};
} =>#t4;
core::Iterable<core::num*>* iterableNumSet2 = block {
final core::Set<core::num*>* #t5 = col::LinkedHashSet::•<core::num*>();
- #t5.{core::Set::add}(12){(core::num*) →* core::bool*};
- #t5.{core::Set::add}(13){(core::num*) →* core::bool*};
- #t5.{core::Set::add}(14){(core::num*) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(12){(core::num*) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(13){(core::num*) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(14){(core::num*) →* core::bool*};
} =>#t5;
core::Set<core::int*>* intSet = block {
final core::Set<core::int*>* #t6 = col::LinkedHashSet::•<core::int*>();
- #t6.{core::Set::add}(15){(core::int*) →* core::bool*};
- #t6.{core::Set::add}(16){(core::int*) →* core::bool*};
- #t6.{core::Set::add}(17){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(15){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(16){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(17){(core::int*) →* core::bool*};
} =>#t6;
core::Set<core::num*>* numSet1 = block {
final core::Set<core::int*>* #t7 = col::LinkedHashSet::•<core::int*>();
- #t7.{core::Set::add}(18){(core::int*) →* core::bool*};
- #t7.{core::Set::add}(19){(core::int*) →* core::bool*};
- #t7.{core::Set::add}(20){(core::int*) →* core::bool*};
+ #t7.{core::Set::add}{Invariant}(18){(core::int*) →* core::bool*};
+ #t7.{core::Set::add}{Invariant}(19){(core::int*) →* core::bool*};
+ #t7.{core::Set::add}{Invariant}(20){(core::int*) →* core::bool*};
} =>#t7;
core::Set<core::num*>* numSet2 = block {
final core::Set<core::num*>* #t8 = col::LinkedHashSet::•<core::num*>();
- #t8.{core::Set::add}(21){(core::num*) →* core::bool*};
- #t8.{core::Set::add}(22){(core::num*) →* core::bool*};
- #t8.{core::Set::add}(23){(core::num*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(21){(core::num*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(22){(core::num*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(23){(core::num*) →* core::bool*};
} =>#t8;
core::Set<core::int*>* set1 = block {
final core::Set<core::int*>* #t9 = col::LinkedHashSet::•<core::int*>();
for (final dynamic #t10 in dynamicSet1 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t11 = #t10 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t11){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t11){(core::int*) →* core::bool*};
}
for (final dynamic #t12 in dynamicSet2 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t13 = #t12 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t13){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t13){(core::int*) →* core::bool*};
}
- #t9.{core::Set::addAll}(iterableIntSet){(core::Iterable<core::int*>*) →* void};
+ #t9.{core::Set::addAll}{Invariant}(iterableIntSet){(core::Iterable<core::int*>*) →* void};
for (final dynamic #t14 in iterableNumSet1) {
final core::int* #t15 = #t14 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t15){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t15){(core::int*) →* core::bool*};
}
for (final dynamic #t16 in iterableNumSet2) {
final core::int* #t17 = #t16 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t17){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t17){(core::int*) →* core::bool*};
}
- #t9.{core::Set::addAll}(intSet){(core::Iterable<core::int*>*) →* void};
+ #t9.{core::Set::addAll}{Invariant}(intSet){(core::Iterable<core::int*>*) →* void};
for (final dynamic #t18 in numSet1) {
final core::int* #t19 = #t18 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t19){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t19){(core::int*) →* core::bool*};
}
for (final dynamic #t20 in numSet2) {
final core::int* #t21 = #t20 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t21){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t21){(core::int*) →* core::bool*};
}
} =>#t9;
self::expect(core::List::generate<core::int*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(){() →* core::Set<core::int*>*}, set1);
@@ -87,18 +87,18 @@
final core::Set<core::num*>* #t22 = col::LinkedHashSet::•<core::num*>();
for (final dynamic #t23 in dynamicSet1 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::num* #t24 = #t23 as{TypeError} core::num*;
- #t22.{core::Set::add}(#t24){(core::num*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(#t24){(core::num*) →* core::bool*};
}
for (final dynamic #t25 in dynamicSet2 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::num* #t26 = #t25 as{TypeError} core::num*;
- #t22.{core::Set::add}(#t26){(core::num*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(#t26){(core::num*) →* core::bool*};
}
- #t22.{core::Set::addAll}(iterableIntSet){(core::Iterable<core::num*>*) →* void};
- #t22.{core::Set::addAll}(iterableNumSet1){(core::Iterable<core::num*>*) →* void};
- #t22.{core::Set::addAll}(iterableNumSet2){(core::Iterable<core::num*>*) →* void};
- #t22.{core::Set::addAll}(intSet){(core::Iterable<core::num*>*) →* void};
- #t22.{core::Set::addAll}(numSet1){(core::Iterable<core::num*>*) →* void};
- #t22.{core::Set::addAll}(numSet2){(core::Iterable<core::num*>*) →* void};
+ #t22.{core::Set::addAll}{Invariant}(iterableIntSet){(core::Iterable<core::num*>*) →* void};
+ #t22.{core::Set::addAll}{Invariant}(iterableNumSet1){(core::Iterable<core::num*>*) →* void};
+ #t22.{core::Set::addAll}{Invariant}(iterableNumSet2){(core::Iterable<core::num*>*) →* void};
+ #t22.{core::Set::addAll}{Invariant}(intSet){(core::Iterable<core::num*>*) →* void};
+ #t22.{core::Set::addAll}{Invariant}(numSet1){(core::Iterable<core::num*>*) →* void};
+ #t22.{core::Set::addAll}{Invariant}(numSet2){(core::Iterable<core::num*>*) →* void};
} =>#t22;
self::expect(core::List::generate<core::num*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(){() →* core::Set<core::num*>*}, set2);
core::Set<core::int*>* set3 = block {
@@ -107,43 +107,43 @@
if(!(#t28 == null))
for (final dynamic #t29 in #t28) {
final core::int* #t30 = #t29 as{TypeError} core::int*;
- #t27.{core::Set::add}(#t30){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(#t30){(core::int*) →* core::bool*};
}
final core::Iterable<dynamic>* #t31 = dynamicSet2 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
if(!(#t31 == null))
for (final dynamic #t32 in #t31) {
final core::int* #t33 = #t32 as{TypeError} core::int*;
- #t27.{core::Set::add}(#t33){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(#t33){(core::int*) →* core::bool*};
}
final core::Iterable<core::int*>* #t34 = iterableIntSet;
if(!(#t34 == null))
- #t27.{core::Set::addAll}(#t34){(core::Iterable<core::int*>*) →* void};
+ #t27.{core::Set::addAll}{Invariant}(#t34){(core::Iterable<core::int*>*) →* void};
final core::Iterable<dynamic>* #t35 = iterableNumSet1;
if(!(#t35 == null))
for (final dynamic #t36 in #t35) {
final core::int* #t37 = #t36 as{TypeError} core::int*;
- #t27.{core::Set::add}(#t37){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(#t37){(core::int*) →* core::bool*};
}
final core::Iterable<dynamic>* #t38 = iterableNumSet2;
if(!(#t38 == null))
for (final dynamic #t39 in #t38) {
final core::int* #t40 = #t39 as{TypeError} core::int*;
- #t27.{core::Set::add}(#t40){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(#t40){(core::int*) →* core::bool*};
}
final core::Iterable<core::int*>* #t41 = intSet;
if(!(#t41 == null))
- #t27.{core::Set::addAll}(#t41){(core::Iterable<core::int*>*) →* void};
+ #t27.{core::Set::addAll}{Invariant}(#t41){(core::Iterable<core::int*>*) →* void};
final core::Iterable<dynamic>* #t42 = numSet1;
if(!(#t42 == null))
for (final dynamic #t43 in #t42) {
final core::int* #t44 = #t43 as{TypeError} core::int*;
- #t27.{core::Set::add}(#t44){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(#t44){(core::int*) →* core::bool*};
}
final core::Iterable<dynamic>* #t45 = numSet2;
if(!(#t45 == null))
for (final dynamic #t46 in #t45) {
final core::int* #t47 = #t46 as{TypeError} core::int*;
- #t27.{core::Set::add}(#t47){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(#t47){(core::int*) →* core::bool*};
}
} =>#t27;
self::expect(core::List::generate<core::int*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(){() →* core::Set<core::int*>*}, set3);
@@ -153,32 +153,32 @@
if(!(#t49 == null))
for (final dynamic #t50 in #t49) {
final core::num* #t51 = #t50 as{TypeError} core::num*;
- #t48.{core::Set::add}(#t51){(core::num*) →* core::bool*};
+ #t48.{core::Set::add}{Invariant}(#t51){(core::num*) →* core::bool*};
}
final core::Iterable<dynamic>* #t52 = dynamicSet2 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
if(!(#t52 == null))
for (final dynamic #t53 in #t52) {
final core::num* #t54 = #t53 as{TypeError} core::num*;
- #t48.{core::Set::add}(#t54){(core::num*) →* core::bool*};
+ #t48.{core::Set::add}{Invariant}(#t54){(core::num*) →* core::bool*};
}
final core::Iterable<core::num*>* #t55 = iterableIntSet;
if(!(#t55 == null))
- #t48.{core::Set::addAll}(#t55){(core::Iterable<core::num*>*) →* void};
+ #t48.{core::Set::addAll}{Invariant}(#t55){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t56 = iterableNumSet1;
if(!(#t56 == null))
- #t48.{core::Set::addAll}(#t56){(core::Iterable<core::num*>*) →* void};
+ #t48.{core::Set::addAll}{Invariant}(#t56){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t57 = iterableNumSet2;
if(!(#t57 == null))
- #t48.{core::Set::addAll}(#t57){(core::Iterable<core::num*>*) →* void};
+ #t48.{core::Set::addAll}{Invariant}(#t57){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t58 = intSet;
if(!(#t58 == null))
- #t48.{core::Set::addAll}(#t58){(core::Iterable<core::num*>*) →* void};
+ #t48.{core::Set::addAll}{Invariant}(#t58){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t59 = numSet1;
if(!(#t59 == null))
- #t48.{core::Set::addAll}(#t59){(core::Iterable<core::num*>*) →* void};
+ #t48.{core::Set::addAll}{Invariant}(#t59){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t60 = numSet2;
if(!(#t60 == null))
- #t48.{core::Set::addAll}(#t60){(core::Iterable<core::num*>*) →* void};
+ #t48.{core::Set::addAll}{Invariant}(#t60){(core::Iterable<core::num*>*) →* void};
} =>#t48;
self::expect(core::List::generate<core::num*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(){() →* core::Set<core::num*>*}, set4);
}
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.transformed.expect
index 1623845..be03a2d 100644
--- a/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/set_add_all.dart.weak.transformed.expect
@@ -7,51 +7,51 @@
static method useAddAll() → void {
dynamic dynamicSet1 = block {
final core::Set<core::int*>* #t1 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t1.{core::Set::add}(0){(core::int*) →* core::bool*};
- #t1.{core::Set::add}(1){(core::int*) →* core::bool*};
- #t1.{core::Set::add}(2){(core::int*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(0){(core::int*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(1){(core::int*) →* core::bool*};
+ #t1.{core::Set::add}{Invariant}(2){(core::int*) →* core::bool*};
} =>#t1;
dynamic dynamicSet2 = block {
final core::Set<core::num*>* #t2 = new col::_CompactLinkedHashSet::•<core::num*>();
- #t2.{core::Set::add}(3){(core::num*) →* core::bool*};
- #t2.{core::Set::add}(4){(core::num*) →* core::bool*};
- #t2.{core::Set::add}(5){(core::num*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(3){(core::num*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(4){(core::num*) →* core::bool*};
+ #t2.{core::Set::add}{Invariant}(5){(core::num*) →* core::bool*};
} =>#t2;
core::Iterable<core::int*>* iterableIntSet = block {
final core::Set<core::int*>* #t3 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t3.{core::Set::add}(6){(core::int*) →* core::bool*};
- #t3.{core::Set::add}(7){(core::int*) →* core::bool*};
- #t3.{core::Set::add}(8){(core::int*) →* core::bool*};
+ #t3.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
+ #t3.{core::Set::add}{Invariant}(7){(core::int*) →* core::bool*};
+ #t3.{core::Set::add}{Invariant}(8){(core::int*) →* core::bool*};
} =>#t3;
core::Iterable<core::num*>* iterableNumSet1 = block {
final core::Set<core::int*>* #t4 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t4.{core::Set::add}(9){(core::int*) →* core::bool*};
- #t4.{core::Set::add}(10){(core::int*) →* core::bool*};
- #t4.{core::Set::add}(11){(core::int*) →* core::bool*};
+ #t4.{core::Set::add}{Invariant}(9){(core::int*) →* core::bool*};
+ #t4.{core::Set::add}{Invariant}(10){(core::int*) →* core::bool*};
+ #t4.{core::Set::add}{Invariant}(11){(core::int*) →* core::bool*};
} =>#t4;
core::Iterable<core::num*>* iterableNumSet2 = block {
final core::Set<core::num*>* #t5 = new col::_CompactLinkedHashSet::•<core::num*>();
- #t5.{core::Set::add}(12){(core::num*) →* core::bool*};
- #t5.{core::Set::add}(13){(core::num*) →* core::bool*};
- #t5.{core::Set::add}(14){(core::num*) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(12){(core::num*) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(13){(core::num*) →* core::bool*};
+ #t5.{core::Set::add}{Invariant}(14){(core::num*) →* core::bool*};
} =>#t5;
core::Set<core::int*>* intSet = block {
final core::Set<core::int*>* #t6 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t6.{core::Set::add}(15){(core::int*) →* core::bool*};
- #t6.{core::Set::add}(16){(core::int*) →* core::bool*};
- #t6.{core::Set::add}(17){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(15){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(16){(core::int*) →* core::bool*};
+ #t6.{core::Set::add}{Invariant}(17){(core::int*) →* core::bool*};
} =>#t6;
core::Set<core::num*>* numSet1 = block {
final core::Set<core::int*>* #t7 = new col::_CompactLinkedHashSet::•<core::int*>();
- #t7.{core::Set::add}(18){(core::int*) →* core::bool*};
- #t7.{core::Set::add}(19){(core::int*) →* core::bool*};
- #t7.{core::Set::add}(20){(core::int*) →* core::bool*};
+ #t7.{core::Set::add}{Invariant}(18){(core::int*) →* core::bool*};
+ #t7.{core::Set::add}{Invariant}(19){(core::int*) →* core::bool*};
+ #t7.{core::Set::add}{Invariant}(20){(core::int*) →* core::bool*};
} =>#t7;
core::Set<core::num*>* numSet2 = block {
final core::Set<core::num*>* #t8 = new col::_CompactLinkedHashSet::•<core::num*>();
- #t8.{core::Set::add}(21){(core::num*) →* core::bool*};
- #t8.{core::Set::add}(22){(core::num*) →* core::bool*};
- #t8.{core::Set::add}(23){(core::num*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(21){(core::num*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(22){(core::num*) →* core::bool*};
+ #t8.{core::Set::add}{Invariant}(23){(core::num*) →* core::bool*};
} =>#t8;
core::Set<core::int*>* set1 = block {
final core::Set<core::int*>* #t9 = new col::_CompactLinkedHashSet::•<core::int*>();
@@ -61,7 +61,7 @@
final dynamic #t10 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t11 = #t10 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t11){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t11){(core::int*) →* core::bool*};
}
}
}
@@ -71,18 +71,18 @@
final dynamic #t12 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t13 = #t12 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t13){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t13){(core::int*) →* core::bool*};
}
}
}
- #t9.{core::Set::addAll}(iterableIntSet){(core::Iterable<core::int*>*) →* void};
+ #t9.{core::Set::addAll}{Invariant}(iterableIntSet){(core::Iterable<core::int*>*) →* void};
{
core::Iterator<core::num*>* :sync-for-iterator = iterableNumSet1.{core::Iterable::iterator}{core::Iterator<core::num*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t14 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t15 = #t14 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t15){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t15){(core::int*) →* core::bool*};
}
}
}
@@ -92,18 +92,18 @@
final dynamic #t16 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t17 = #t16 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t17){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t17){(core::int*) →* core::bool*};
}
}
}
- #t9.{core::Set::addAll}(intSet){(core::Iterable<core::int*>*) →* void};
+ #t9.{core::Set::addAll}{Invariant}(intSet){(core::Iterable<core::int*>*) →* void};
{
core::Iterator<core::num*>* :sync-for-iterator = numSet1.{core::Iterable::iterator}{core::Iterator<core::num*>*};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t18 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t19 = #t18 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t19){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t19){(core::int*) →* core::bool*};
}
}
}
@@ -113,7 +113,7 @@
final dynamic #t20 = :sync-for-iterator.{core::Iterator::current}{core::num*};
{
final core::int* #t21 = #t20 as{TypeError} core::int*;
- #t9.{core::Set::add}(#t21){(core::int*) →* core::bool*};
+ #t9.{core::Set::add}{Invariant}(#t21){(core::int*) →* core::bool*};
}
}
}
@@ -127,7 +127,7 @@
final dynamic #t23 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num* #t24 = #t23 as{TypeError} core::num*;
- #t22.{core::Set::add}(#t24){(core::num*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(#t24){(core::num*) →* core::bool*};
}
}
}
@@ -137,16 +137,16 @@
final dynamic #t25 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num* #t26 = #t25 as{TypeError} core::num*;
- #t22.{core::Set::add}(#t26){(core::num*) →* core::bool*};
+ #t22.{core::Set::add}{Invariant}(#t26){(core::num*) →* core::bool*};
}
}
}
- #t22.{core::Set::addAll}(iterableIntSet){(core::Iterable<core::num*>*) →* void};
- #t22.{core::Set::addAll}(iterableNumSet1){(core::Iterable<core::num*>*) →* void};
- #t22.{core::Set::addAll}(iterableNumSet2){(core::Iterable<core::num*>*) →* void};
- #t22.{core::Set::addAll}(intSet){(core::Iterable<core::num*>*) →* void};
- #t22.{core::Set::addAll}(numSet1){(core::Iterable<core::num*>*) →* void};
- #t22.{core::Set::addAll}(numSet2){(core::Iterable<core::num*>*) →* void};
+ #t22.{core::Set::addAll}{Invariant}(iterableIntSet){(core::Iterable<core::num*>*) →* void};
+ #t22.{core::Set::addAll}{Invariant}(iterableNumSet1){(core::Iterable<core::num*>*) →* void};
+ #t22.{core::Set::addAll}{Invariant}(iterableNumSet2){(core::Iterable<core::num*>*) →* void};
+ #t22.{core::Set::addAll}{Invariant}(intSet){(core::Iterable<core::num*>*) →* void};
+ #t22.{core::Set::addAll}{Invariant}(numSet1){(core::Iterable<core::num*>*) →* void};
+ #t22.{core::Set::addAll}{Invariant}(numSet2){(core::Iterable<core::num*>*) →* void};
} =>#t22;
self::expect(core::_GrowableList::generate<core::num*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(){() →* core::Set<core::num*>*}, set2);
core::Set<core::int*>* set3 = block {
@@ -158,7 +158,7 @@
final dynamic #t29 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t30 = #t29 as{TypeError} core::int*;
- #t27.{core::Set::add}(#t30){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(#t30){(core::int*) →* core::bool*};
}
}
}
@@ -169,13 +169,13 @@
final dynamic #t32 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t33 = #t32 as{TypeError} core::int*;
- #t27.{core::Set::add}(#t33){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(#t33){(core::int*) →* core::bool*};
}
}
}
final core::Iterable<core::int*>* #t34 = iterableIntSet;
if(!(#t34 == null))
- #t27.{core::Set::addAll}(#t34){(core::Iterable<core::int*>*) →* void};
+ #t27.{core::Set::addAll}{Invariant}(#t34){(core::Iterable<core::int*>*) →* void};
final core::Iterable<dynamic>* #t35 = iterableNumSet1;
if(!(#t35 == null)) {
core::Iterator<dynamic>* :sync-for-iterator = #t35.{core::Iterable::iterator}{core::Iterator<dynamic>*};
@@ -183,7 +183,7 @@
final dynamic #t36 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t37 = #t36 as{TypeError} core::int*;
- #t27.{core::Set::add}(#t37){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(#t37){(core::int*) →* core::bool*};
}
}
}
@@ -194,13 +194,13 @@
final dynamic #t39 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t40 = #t39 as{TypeError} core::int*;
- #t27.{core::Set::add}(#t40){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(#t40){(core::int*) →* core::bool*};
}
}
}
final core::Iterable<core::int*>* #t41 = intSet;
if(!(#t41 == null))
- #t27.{core::Set::addAll}(#t41){(core::Iterable<core::int*>*) →* void};
+ #t27.{core::Set::addAll}{Invariant}(#t41){(core::Iterable<core::int*>*) →* void};
final core::Iterable<dynamic>* #t42 = numSet1;
if(!(#t42 == null)) {
core::Iterator<dynamic>* :sync-for-iterator = #t42.{core::Iterable::iterator}{core::Iterator<dynamic>*};
@@ -208,7 +208,7 @@
final dynamic #t43 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t44 = #t43 as{TypeError} core::int*;
- #t27.{core::Set::add}(#t44){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(#t44){(core::int*) →* core::bool*};
}
}
}
@@ -219,7 +219,7 @@
final dynamic #t46 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int* #t47 = #t46 as{TypeError} core::int*;
- #t27.{core::Set::add}(#t47){(core::int*) →* core::bool*};
+ #t27.{core::Set::add}{Invariant}(#t47){(core::int*) →* core::bool*};
}
}
}
@@ -234,7 +234,7 @@
final dynamic #t50 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num* #t51 = #t50 as{TypeError} core::num*;
- #t48.{core::Set::add}(#t51){(core::num*) →* core::bool*};
+ #t48.{core::Set::add}{Invariant}(#t51){(core::num*) →* core::bool*};
}
}
}
@@ -245,28 +245,28 @@
final dynamic #t53 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num* #t54 = #t53 as{TypeError} core::num*;
- #t48.{core::Set::add}(#t54){(core::num*) →* core::bool*};
+ #t48.{core::Set::add}{Invariant}(#t54){(core::num*) →* core::bool*};
}
}
}
final core::Iterable<core::num*>* #t55 = iterableIntSet;
if(!(#t55 == null))
- #t48.{core::Set::addAll}(#t55){(core::Iterable<core::num*>*) →* void};
+ #t48.{core::Set::addAll}{Invariant}(#t55){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t56 = iterableNumSet1;
if(!(#t56 == null))
- #t48.{core::Set::addAll}(#t56){(core::Iterable<core::num*>*) →* void};
+ #t48.{core::Set::addAll}{Invariant}(#t56){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t57 = iterableNumSet2;
if(!(#t57 == null))
- #t48.{core::Set::addAll}(#t57){(core::Iterable<core::num*>*) →* void};
+ #t48.{core::Set::addAll}{Invariant}(#t57){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t58 = intSet;
if(!(#t58 == null))
- #t48.{core::Set::addAll}(#t58){(core::Iterable<core::num*>*) →* void};
+ #t48.{core::Set::addAll}{Invariant}(#t58){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t59 = numSet1;
if(!(#t59 == null))
- #t48.{core::Set::addAll}(#t59){(core::Iterable<core::num*>*) →* void};
+ #t48.{core::Set::addAll}{Invariant}(#t59){(core::Iterable<core::num*>*) →* void};
final core::Iterable<core::num*>* #t60 = numSet2;
if(!(#t60 == null))
- #t48.{core::Set::addAll}(#t60){(core::Iterable<core::num*>*) →* void};
+ #t48.{core::Set::addAll}{Invariant}(#t60){(core::Iterable<core::num*>*) →* void};
} =>#t48;
self::expect(core::_GrowableList::generate<core::num*>(24, (core::int* i) → core::int* => i).{core::Iterable::toSet}(){() →* core::Set<core::num*>*}, set4);
}
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.expect b/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.expect
index 867c99e..4037509 100644
--- a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.expect
+++ b/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.expect
@@ -7,101 +7,101 @@
static method useAddAll() → void {
dynamic dynamicSet1 = block {
final core::Set<core::int> #t1 = col::LinkedHashSet::•<core::int>();
- #t1.{core::Set::add}(0){(core::int) → core::bool};
- #t1.{core::Set::add}(1){(core::int) → core::bool};
- #t1.{core::Set::add}(2){(core::int) → core::bool};
+ #t1.{core::Set::add}{Invariant}(0){(core::int) → core::bool};
+ #t1.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t1.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
} =>#t1;
dynamic dynamicSet2 = block {
final core::Set<core::num> #t2 = col::LinkedHashSet::•<core::num>();
- #t2.{core::Set::add}(3){(core::num) → core::bool};
- #t2.{core::Set::add}(4){(core::num) → core::bool};
- #t2.{core::Set::add}(5){(core::num) → core::bool};
+ #t2.{core::Set::add}{Invariant}(3){(core::num) → core::bool};
+ #t2.{core::Set::add}{Invariant}(4){(core::num) → core::bool};
+ #t2.{core::Set::add}{Invariant}(5){(core::num) → core::bool};
} =>#t2;
dynamic dynamicSet3 = block {
final core::Set<core::int?> #t3 = col::LinkedHashSet::•<core::int?>();
- #t3.{core::Set::add}(6){(core::int?) → core::bool};
- #t3.{core::Set::add}(7){(core::int?) → core::bool};
- #t3.{core::Set::add}(8){(core::int?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(6){(core::int?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(7){(core::int?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(8){(core::int?) → core::bool};
} =>#t3;
core::Iterable<core::int> iterableIntSet = block {
final core::Set<core::int> #t4 = col::LinkedHashSet::•<core::int>();
- #t4.{core::Set::add}(9){(core::int) → core::bool};
- #t4.{core::Set::add}(10){(core::int) → core::bool};
- #t4.{core::Set::add}(11){(core::int) → core::bool};
+ #t4.{core::Set::add}{Invariant}(9){(core::int) → core::bool};
+ #t4.{core::Set::add}{Invariant}(10){(core::int) → core::bool};
+ #t4.{core::Set::add}{Invariant}(11){(core::int) → core::bool};
} =>#t4;
core::Set<core::int> intSet = block {
final core::Set<core::int> #t5 = col::LinkedHashSet::•<core::int>();
- #t5.{core::Set::add}(12){(core::int) → core::bool};
- #t5.{core::Set::add}(13){(core::int) → core::bool};
- #t5.{core::Set::add}(14){(core::int) → core::bool};
+ #t5.{core::Set::add}{Invariant}(12){(core::int) → core::bool};
+ #t5.{core::Set::add}{Invariant}(13){(core::int) → core::bool};
+ #t5.{core::Set::add}{Invariant}(14){(core::int) → core::bool};
} =>#t5;
core::Set<core::int> set1 = block {
final core::Set<core::int> #t6 = col::LinkedHashSet::•<core::int>();
for (final dynamic #t7 in dynamicSet1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
final core::int #t8 = #t7 as{TypeError,ForNonNullableByDefault} core::int;
- #t6.{core::Set::add}(#t8){(core::int) → core::bool};
+ #t6.{core::Set::add}{Invariant}(#t8){(core::int) → core::bool};
}
for (final dynamic #t9 in dynamicSet2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
final core::int #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::int;
- #t6.{core::Set::add}(#t10){(core::int) → core::bool};
+ #t6.{core::Set::add}{Invariant}(#t10){(core::int) → core::bool};
}
for (final dynamic #t11 in dynamicSet3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
final core::int #t12 = #t11 as{TypeError,ForNonNullableByDefault} core::int;
- #t6.{core::Set::add}(#t12){(core::int) → core::bool};
+ #t6.{core::Set::add}{Invariant}(#t12){(core::int) → core::bool};
}
- #t6.{core::Set::addAll}(iterableIntSet){(core::Iterable<core::int>) → void};
- #t6.{core::Set::addAll}(intSet){(core::Iterable<core::int>) → void};
+ #t6.{core::Set::addAll}{Invariant}(iterableIntSet){(core::Iterable<core::int>) → void};
+ #t6.{core::Set::addAll}{Invariant}(intSet){(core::Iterable<core::int>) → void};
} =>#t6;
self::expect(core::List::generate<core::int>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(){() → core::Set<core::int>}, set1);
core::Set<core::num> set2 = block {
final core::Set<core::num> #t13 = col::LinkedHashSet::•<core::num>();
for (final dynamic #t14 in dynamicSet1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
final core::num #t15 = #t14 as{TypeError,ForNonNullableByDefault} core::num;
- #t13.{core::Set::add}(#t15){(core::num) → core::bool};
+ #t13.{core::Set::add}{Invariant}(#t15){(core::num) → core::bool};
}
for (final dynamic #t16 in dynamicSet2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
final core::num #t17 = #t16 as{TypeError,ForNonNullableByDefault} core::num;
- #t13.{core::Set::add}(#t17){(core::num) → core::bool};
+ #t13.{core::Set::add}{Invariant}(#t17){(core::num) → core::bool};
}
for (final dynamic #t18 in dynamicSet3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
final core::num #t19 = #t18 as{TypeError,ForNonNullableByDefault} core::num;
- #t13.{core::Set::add}(#t19){(core::num) → core::bool};
+ #t13.{core::Set::add}{Invariant}(#t19){(core::num) → core::bool};
}
- #t13.{core::Set::addAll}(iterableIntSet){(core::Iterable<core::num>) → void};
- #t13.{core::Set::addAll}(intSet){(core::Iterable<core::num>) → void};
+ #t13.{core::Set::addAll}{Invariant}(iterableIntSet){(core::Iterable<core::num>) → void};
+ #t13.{core::Set::addAll}{Invariant}(intSet){(core::Iterable<core::num>) → void};
} =>#t13;
self::expect(core::List::generate<core::num>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(){() → core::Set<core::num>}, set2);
}
static method useAddAllNullable() → void {
dynamic dynamicSet1 = block {
final core::Set<core::int> #t20 = col::LinkedHashSet::•<core::int>();
- #t20.{core::Set::add}(0){(core::int) → core::bool};
- #t20.{core::Set::add}(1){(core::int) → core::bool};
- #t20.{core::Set::add}(2){(core::int) → core::bool};
+ #t20.{core::Set::add}{Invariant}(0){(core::int) → core::bool};
+ #t20.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t20.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
} =>#t20;
dynamic dynamicSet2 = block {
final core::Set<core::num> #t21 = col::LinkedHashSet::•<core::num>();
- #t21.{core::Set::add}(3){(core::num) → core::bool};
- #t21.{core::Set::add}(4){(core::num) → core::bool};
- #t21.{core::Set::add}(5){(core::num) → core::bool};
+ #t21.{core::Set::add}{Invariant}(3){(core::num) → core::bool};
+ #t21.{core::Set::add}{Invariant}(4){(core::num) → core::bool};
+ #t21.{core::Set::add}{Invariant}(5){(core::num) → core::bool};
} =>#t21;
dynamic dynamicSet3 = block {
final core::Set<core::int?> #t22 = col::LinkedHashSet::•<core::int?>();
- #t22.{core::Set::add}(6){(core::int?) → core::bool};
- #t22.{core::Set::add}(7){(core::int?) → core::bool};
- #t22.{core::Set::add}(8){(core::int?) → core::bool};
+ #t22.{core::Set::add}{Invariant}(6){(core::int?) → core::bool};
+ #t22.{core::Set::add}{Invariant}(7){(core::int?) → core::bool};
+ #t22.{core::Set::add}{Invariant}(8){(core::int?) → core::bool};
} =>#t22;
core::Iterable<core::int>? iterableIntSet = true ?{core::Set<core::int>?} block {
final core::Set<core::int> #t23 = col::LinkedHashSet::•<core::int>();
- #t23.{core::Set::add}(9){(core::int) → core::bool};
- #t23.{core::Set::add}(10){(core::int) → core::bool};
- #t23.{core::Set::add}(11){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(9){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(10){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(11){(core::int) → core::bool};
} =>#t23 : null;
core::Set<core::int>? intSet = true ?{core::Set<core::int>?} block {
final core::Set<core::int> #t24 = col::LinkedHashSet::•<core::int>();
- #t24.{core::Set::add}(12){(core::int) → core::bool};
- #t24.{core::Set::add}(13){(core::int) → core::bool};
- #t24.{core::Set::add}(14){(core::int) → core::bool};
+ #t24.{core::Set::add}{Invariant}(12){(core::int) → core::bool};
+ #t24.{core::Set::add}{Invariant}(13){(core::int) → core::bool};
+ #t24.{core::Set::add}{Invariant}(14){(core::int) → core::bool};
} =>#t24 : null;
core::Set<core::int> set1 = block {
final core::Set<core::int> #t25 = col::LinkedHashSet::•<core::int>();
@@ -109,26 +109,26 @@
if(!(#t26 == null))
for (final dynamic #t27 in #t26{core::Iterable<dynamic>}) {
final core::int #t28 = #t27 as{TypeError,ForNonNullableByDefault} core::int;
- #t25.{core::Set::add}(#t28){(core::int) → core::bool};
+ #t25.{core::Set::add}{Invariant}(#t28){(core::int) → core::bool};
}
final core::Iterable<dynamic>? #t29 = dynamicSet2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
if(!(#t29 == null))
for (final dynamic #t30 in #t29{core::Iterable<dynamic>}) {
final core::int #t31 = #t30 as{TypeError,ForNonNullableByDefault} core::int;
- #t25.{core::Set::add}(#t31){(core::int) → core::bool};
+ #t25.{core::Set::add}{Invariant}(#t31){(core::int) → core::bool};
}
final core::Iterable<dynamic>? #t32 = dynamicSet3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
if(!(#t32 == null))
for (final dynamic #t33 in #t32{core::Iterable<dynamic>}) {
final core::int #t34 = #t33 as{TypeError,ForNonNullableByDefault} core::int;
- #t25.{core::Set::add}(#t34){(core::int) → core::bool};
+ #t25.{core::Set::add}{Invariant}(#t34){(core::int) → core::bool};
}
final core::Iterable<core::int>? #t35 = iterableIntSet;
if(!(#t35 == null))
- #t25.{core::Set::addAll}(#t35{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t25.{core::Set::addAll}{Invariant}(#t35{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
final core::Iterable<core::int>? #t36 = intSet;
if(!(#t36 == null))
- #t25.{core::Set::addAll}(#t36{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t25.{core::Set::addAll}{Invariant}(#t36{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
} =>#t25;
self::expect(core::List::generate<core::int>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(){() → core::Set<core::int>}, set1);
core::Set<core::num> set2 = block {
@@ -137,26 +137,26 @@
if(!(#t38 == null))
for (final dynamic #t39 in #t38{core::Iterable<dynamic>}) {
final core::num #t40 = #t39 as{TypeError,ForNonNullableByDefault} core::num;
- #t37.{core::Set::add}(#t40){(core::num) → core::bool};
+ #t37.{core::Set::add}{Invariant}(#t40){(core::num) → core::bool};
}
final core::Iterable<dynamic>? #t41 = dynamicSet2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
if(!(#t41 == null))
for (final dynamic #t42 in #t41{core::Iterable<dynamic>}) {
final core::num #t43 = #t42 as{TypeError,ForNonNullableByDefault} core::num;
- #t37.{core::Set::add}(#t43){(core::num) → core::bool};
+ #t37.{core::Set::add}{Invariant}(#t43){(core::num) → core::bool};
}
final core::Iterable<dynamic>? #t44 = dynamicSet3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
if(!(#t44 == null))
for (final dynamic #t45 in #t44{core::Iterable<dynamic>}) {
final core::num #t46 = #t45 as{TypeError,ForNonNullableByDefault} core::num;
- #t37.{core::Set::add}(#t46){(core::num) → core::bool};
+ #t37.{core::Set::add}{Invariant}(#t46){(core::num) → core::bool};
}
final core::Iterable<core::num>? #t47 = iterableIntSet;
if(!(#t47 == null))
- #t37.{core::Set::addAll}(#t47{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
+ #t37.{core::Set::addAll}{Invariant}(#t47{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
final core::Iterable<core::num>? #t48 = intSet;
if(!(#t48 == null))
- #t37.{core::Set::addAll}(#t48{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
+ #t37.{core::Set::addAll}{Invariant}(#t48{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
} =>#t37;
self::expect(core::List::generate<core::num>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(){() → core::Set<core::num>}, set2);
}
diff --git a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.transformed.expect
index bc0fac7..65a9653 100644
--- a/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/set_add_all_nnbd.dart.weak.transformed.expect
@@ -7,33 +7,33 @@
static method useAddAll() → void {
dynamic dynamicSet1 = block {
final core::Set<core::int> #t1 = new col::_CompactLinkedHashSet::•<core::int>();
- #t1.{core::Set::add}(0){(core::int) → core::bool};
- #t1.{core::Set::add}(1){(core::int) → core::bool};
- #t1.{core::Set::add}(2){(core::int) → core::bool};
+ #t1.{core::Set::add}{Invariant}(0){(core::int) → core::bool};
+ #t1.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t1.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
} =>#t1;
dynamic dynamicSet2 = block {
final core::Set<core::num> #t2 = new col::_CompactLinkedHashSet::•<core::num>();
- #t2.{core::Set::add}(3){(core::num) → core::bool};
- #t2.{core::Set::add}(4){(core::num) → core::bool};
- #t2.{core::Set::add}(5){(core::num) → core::bool};
+ #t2.{core::Set::add}{Invariant}(3){(core::num) → core::bool};
+ #t2.{core::Set::add}{Invariant}(4){(core::num) → core::bool};
+ #t2.{core::Set::add}{Invariant}(5){(core::num) → core::bool};
} =>#t2;
dynamic dynamicSet3 = block {
final core::Set<core::int?> #t3 = new col::_CompactLinkedHashSet::•<core::int?>();
- #t3.{core::Set::add}(6){(core::int?) → core::bool};
- #t3.{core::Set::add}(7){(core::int?) → core::bool};
- #t3.{core::Set::add}(8){(core::int?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(6){(core::int?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(7){(core::int?) → core::bool};
+ #t3.{core::Set::add}{Invariant}(8){(core::int?) → core::bool};
} =>#t3;
core::Iterable<core::int> iterableIntSet = block {
final core::Set<core::int> #t4 = new col::_CompactLinkedHashSet::•<core::int>();
- #t4.{core::Set::add}(9){(core::int) → core::bool};
- #t4.{core::Set::add}(10){(core::int) → core::bool};
- #t4.{core::Set::add}(11){(core::int) → core::bool};
+ #t4.{core::Set::add}{Invariant}(9){(core::int) → core::bool};
+ #t4.{core::Set::add}{Invariant}(10){(core::int) → core::bool};
+ #t4.{core::Set::add}{Invariant}(11){(core::int) → core::bool};
} =>#t4;
core::Set<core::int> intSet = block {
final core::Set<core::int> #t5 = new col::_CompactLinkedHashSet::•<core::int>();
- #t5.{core::Set::add}(12){(core::int) → core::bool};
- #t5.{core::Set::add}(13){(core::int) → core::bool};
- #t5.{core::Set::add}(14){(core::int) → core::bool};
+ #t5.{core::Set::add}{Invariant}(12){(core::int) → core::bool};
+ #t5.{core::Set::add}{Invariant}(13){(core::int) → core::bool};
+ #t5.{core::Set::add}{Invariant}(14){(core::int) → core::bool};
} =>#t5;
core::Set<core::int> set1 = block {
final core::Set<core::int> #t6 = new col::_CompactLinkedHashSet::•<core::int>();
@@ -43,7 +43,7 @@
final dynamic #t7 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t8 = #t7 as{TypeError,ForNonNullableByDefault} core::int;
- #t6.{core::Set::add}(#t8){(core::int) → core::bool};
+ #t6.{core::Set::add}{Invariant}(#t8){(core::int) → core::bool};
}
}
}
@@ -53,7 +53,7 @@
final dynamic #t9 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t10 = #t9 as{TypeError,ForNonNullableByDefault} core::int;
- #t6.{core::Set::add}(#t10){(core::int) → core::bool};
+ #t6.{core::Set::add}{Invariant}(#t10){(core::int) → core::bool};
}
}
}
@@ -63,12 +63,12 @@
final dynamic #t11 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t12 = #t11 as{TypeError,ForNonNullableByDefault} core::int;
- #t6.{core::Set::add}(#t12){(core::int) → core::bool};
+ #t6.{core::Set::add}{Invariant}(#t12){(core::int) → core::bool};
}
}
}
- #t6.{core::Set::addAll}(iterableIntSet){(core::Iterable<core::int>) → void};
- #t6.{core::Set::addAll}(intSet){(core::Iterable<core::int>) → void};
+ #t6.{core::Set::addAll}{Invariant}(iterableIntSet){(core::Iterable<core::int>) → void};
+ #t6.{core::Set::addAll}{Invariant}(intSet){(core::Iterable<core::int>) → void};
} =>#t6;
self::expect(core::_GrowableList::generate<core::int>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(){() → core::Set<core::int>}, set1);
core::Set<core::num> set2 = block {
@@ -79,7 +79,7 @@
final dynamic #t14 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num #t15 = #t14 as{TypeError,ForNonNullableByDefault} core::num;
- #t13.{core::Set::add}(#t15){(core::num) → core::bool};
+ #t13.{core::Set::add}{Invariant}(#t15){(core::num) → core::bool};
}
}
}
@@ -89,7 +89,7 @@
final dynamic #t16 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num #t17 = #t16 as{TypeError,ForNonNullableByDefault} core::num;
- #t13.{core::Set::add}(#t17){(core::num) → core::bool};
+ #t13.{core::Set::add}{Invariant}(#t17){(core::num) → core::bool};
}
}
}
@@ -99,45 +99,45 @@
final dynamic #t18 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num #t19 = #t18 as{TypeError,ForNonNullableByDefault} core::num;
- #t13.{core::Set::add}(#t19){(core::num) → core::bool};
+ #t13.{core::Set::add}{Invariant}(#t19){(core::num) → core::bool};
}
}
}
- #t13.{core::Set::addAll}(iterableIntSet){(core::Iterable<core::num>) → void};
- #t13.{core::Set::addAll}(intSet){(core::Iterable<core::num>) → void};
+ #t13.{core::Set::addAll}{Invariant}(iterableIntSet){(core::Iterable<core::num>) → void};
+ #t13.{core::Set::addAll}{Invariant}(intSet){(core::Iterable<core::num>) → void};
} =>#t13;
self::expect(core::_GrowableList::generate<core::num>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(){() → core::Set<core::num>}, set2);
}
static method useAddAllNullable() → void {
dynamic dynamicSet1 = block {
final core::Set<core::int> #t20 = new col::_CompactLinkedHashSet::•<core::int>();
- #t20.{core::Set::add}(0){(core::int) → core::bool};
- #t20.{core::Set::add}(1){(core::int) → core::bool};
- #t20.{core::Set::add}(2){(core::int) → core::bool};
+ #t20.{core::Set::add}{Invariant}(0){(core::int) → core::bool};
+ #t20.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ #t20.{core::Set::add}{Invariant}(2){(core::int) → core::bool};
} =>#t20;
dynamic dynamicSet2 = block {
final core::Set<core::num> #t21 = new col::_CompactLinkedHashSet::•<core::num>();
- #t21.{core::Set::add}(3){(core::num) → core::bool};
- #t21.{core::Set::add}(4){(core::num) → core::bool};
- #t21.{core::Set::add}(5){(core::num) → core::bool};
+ #t21.{core::Set::add}{Invariant}(3){(core::num) → core::bool};
+ #t21.{core::Set::add}{Invariant}(4){(core::num) → core::bool};
+ #t21.{core::Set::add}{Invariant}(5){(core::num) → core::bool};
} =>#t21;
dynamic dynamicSet3 = block {
final core::Set<core::int?> #t22 = new col::_CompactLinkedHashSet::•<core::int?>();
- #t22.{core::Set::add}(6){(core::int?) → core::bool};
- #t22.{core::Set::add}(7){(core::int?) → core::bool};
- #t22.{core::Set::add}(8){(core::int?) → core::bool};
+ #t22.{core::Set::add}{Invariant}(6){(core::int?) → core::bool};
+ #t22.{core::Set::add}{Invariant}(7){(core::int?) → core::bool};
+ #t22.{core::Set::add}{Invariant}(8){(core::int?) → core::bool};
} =>#t22;
core::Iterable<core::int>? iterableIntSet = true ?{core::Set<core::int>?} block {
final core::Set<core::int> #t23 = new col::_CompactLinkedHashSet::•<core::int>();
- #t23.{core::Set::add}(9){(core::int) → core::bool};
- #t23.{core::Set::add}(10){(core::int) → core::bool};
- #t23.{core::Set::add}(11){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(9){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(10){(core::int) → core::bool};
+ #t23.{core::Set::add}{Invariant}(11){(core::int) → core::bool};
} =>#t23 : null;
core::Set<core::int>? intSet = true ?{core::Set<core::int>?} block {
final core::Set<core::int> #t24 = new col::_CompactLinkedHashSet::•<core::int>();
- #t24.{core::Set::add}(12){(core::int) → core::bool};
- #t24.{core::Set::add}(13){(core::int) → core::bool};
- #t24.{core::Set::add}(14){(core::int) → core::bool};
+ #t24.{core::Set::add}{Invariant}(12){(core::int) → core::bool};
+ #t24.{core::Set::add}{Invariant}(13){(core::int) → core::bool};
+ #t24.{core::Set::add}{Invariant}(14){(core::int) → core::bool};
} =>#t24 : null;
core::Set<core::int> set1 = block {
final core::Set<core::int> #t25 = new col::_CompactLinkedHashSet::•<core::int>();
@@ -148,7 +148,7 @@
final dynamic #t27 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t28 = #t27 as{TypeError,ForNonNullableByDefault} core::int;
- #t25.{core::Set::add}(#t28){(core::int) → core::bool};
+ #t25.{core::Set::add}{Invariant}(#t28){(core::int) → core::bool};
}
}
}
@@ -159,7 +159,7 @@
final dynamic #t30 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t31 = #t30 as{TypeError,ForNonNullableByDefault} core::int;
- #t25.{core::Set::add}(#t31){(core::int) → core::bool};
+ #t25.{core::Set::add}{Invariant}(#t31){(core::int) → core::bool};
}
}
}
@@ -170,16 +170,16 @@
final dynamic #t33 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::int #t34 = #t33 as{TypeError,ForNonNullableByDefault} core::int;
- #t25.{core::Set::add}(#t34){(core::int) → core::bool};
+ #t25.{core::Set::add}{Invariant}(#t34){(core::int) → core::bool};
}
}
}
final core::Iterable<core::int>? #t35 = iterableIntSet;
if(!(#t35 == null))
- #t25.{core::Set::addAll}(#t35{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t25.{core::Set::addAll}{Invariant}(#t35{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
final core::Iterable<core::int>? #t36 = intSet;
if(!(#t36 == null))
- #t25.{core::Set::addAll}(#t36{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
+ #t25.{core::Set::addAll}{Invariant}(#t36{core::Iterable<core::int>}){(core::Iterable<core::int>) → void};
} =>#t25;
self::expect(core::_GrowableList::generate<core::int>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(){() → core::Set<core::int>}, set1);
core::Set<core::num> set2 = block {
@@ -191,7 +191,7 @@
final dynamic #t39 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num #t40 = #t39 as{TypeError,ForNonNullableByDefault} core::num;
- #t37.{core::Set::add}(#t40){(core::num) → core::bool};
+ #t37.{core::Set::add}{Invariant}(#t40){(core::num) → core::bool};
}
}
}
@@ -202,7 +202,7 @@
final dynamic #t42 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num #t43 = #t42 as{TypeError,ForNonNullableByDefault} core::num;
- #t37.{core::Set::add}(#t43){(core::num) → core::bool};
+ #t37.{core::Set::add}{Invariant}(#t43){(core::num) → core::bool};
}
}
}
@@ -213,16 +213,16 @@
final dynamic #t45 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
final core::num #t46 = #t45 as{TypeError,ForNonNullableByDefault} core::num;
- #t37.{core::Set::add}(#t46){(core::num) → core::bool};
+ #t37.{core::Set::add}{Invariant}(#t46){(core::num) → core::bool};
}
}
}
final core::Iterable<core::num>? #t47 = iterableIntSet;
if(!(#t47 == null))
- #t37.{core::Set::addAll}(#t47{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
+ #t37.{core::Set::addAll}{Invariant}(#t47{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
final core::Iterable<core::num>? #t48 = intSet;
if(!(#t48 == null))
- #t37.{core::Set::addAll}(#t48{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
+ #t37.{core::Set::addAll}{Invariant}(#t48{core::Iterable<core::num>}){(core::Iterable<core::num>) → void};
} =>#t37;
self::expect(core::_GrowableList::generate<core::num>(15, (core::int i) → core::int => i).{core::Iterable::toSet}(){() → core::Set<core::num>}, set2);
}
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.expect
index 93346f1..2263773 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.expect
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.expect
@@ -7,6 +7,6 @@
block {
final core::List<core::String*>* #t1 = <core::String*>["ab"];
if(b)
- #t1.{core::List::add}("cd"){(core::String*) →* void};
+ #t1.{core::List::add}{Invariant}("cd"){(core::String*) →* void};
} =>#t1;
}
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect
index 0a6d17a..30ae805 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect
@@ -7,7 +7,7 @@
block {
final core::List<core::String*>* #t1 = core::_GrowableList::_literal1<core::String*>("ab");
if(b)
- #t1.{core::List::add}("cd"){(core::String*) →* void};
+ #t1.{core::List::add}{Invariant}("cd"){(core::String*) →* void};
} =>#t1;
}
diff --git a/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.strong.expect b/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.strong.expect
index ab48d3f..31c63c2 100644
--- a/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.strong.expect
+++ b/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.strong.expect
@@ -60,11 +60,11 @@
: self::Cat::numberOfWhiskers = numberOfWhiskers, super self::Animal::•(numberOfLegs)
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Cat}.{self::Animal::numberOfLegs}) && this.{self::Cat::numberOfWhiskers}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfWhiskers});
+ return other is self::Cat && this.{self::Animal::numberOfLegs}{core::int?} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Animal::numberOfLegs}{core::int?} && this.{self::Cat::numberOfWhiskers}{core::int?} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfWhiskers}{core::int?};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///copy_with_call_sites.dartCat".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}), this.{self::Cat::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///copy_with_call_sites.dartCat".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int?}.{core::num::hashCode}{core::int}), this.{self::Cat::numberOfWhiskers}{core::int?}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int?}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}{core::int?}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int? numberOfLegs, core::int? numberOfWhiskers}) → dynamic
return new self::Cat::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
@@ -88,7 +88,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///copy_with_call_sites.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///copy_with_call_sites.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.strong.transformed.expect b/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.strong.transformed.expect
index 7e11dd4..b4dffa3 100644
--- a/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.strong.transformed.expect
@@ -60,11 +60,11 @@
: self::Cat::numberOfWhiskers = numberOfWhiskers, super self::Animal::•(numberOfLegs)
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Cat}.{self::Animal::numberOfLegs}) && this.{self::Cat::numberOfWhiskers}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfWhiskers});
+ return other is self::Cat && this.{self::Animal::numberOfLegs}{core::int?} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Animal::numberOfLegs}{core::int?} && this.{self::Cat::numberOfWhiskers}{core::int?} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfWhiskers}{core::int?};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///copy_with_call_sites.dartCat".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}), this.{self::Cat::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///copy_with_call_sites.dartCat".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int?}.{core::num::hashCode}{core::int}), this.{self::Cat::numberOfWhiskers}{core::int?}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int?}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}{core::int?}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int? numberOfLegs, core::int? numberOfWhiskers}) → dynamic
return new self::Cat::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
@@ -88,7 +88,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///copy_with_call_sites.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///copy_with_call_sites.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.weak.expect b/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.weak.expect
index ab48d3f..31c63c2 100644
--- a/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.weak.expect
+++ b/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.weak.expect
@@ -60,11 +60,11 @@
: self::Cat::numberOfWhiskers = numberOfWhiskers, super self::Animal::•(numberOfLegs)
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Cat}.{self::Animal::numberOfLegs}) && this.{self::Cat::numberOfWhiskers}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfWhiskers});
+ return other is self::Cat && this.{self::Animal::numberOfLegs}{core::int?} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Animal::numberOfLegs}{core::int?} && this.{self::Cat::numberOfWhiskers}{core::int?} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfWhiskers}{core::int?};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///copy_with_call_sites.dartCat".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}), this.{self::Cat::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///copy_with_call_sites.dartCat".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int?}.{core::num::hashCode}{core::int}), this.{self::Cat::numberOfWhiskers}{core::int?}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int?}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}{core::int?}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int? numberOfLegs, core::int? numberOfWhiskers}) → dynamic
return new self::Cat::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
@@ -88,7 +88,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///copy_with_call_sites.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///copy_with_call_sites.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.weak.transformed.expect b/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.weak.transformed.expect
index 7e11dd4..b4dffa3 100644
--- a/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/value_class/copy_with_call_sites.dart.weak.transformed.expect
@@ -60,11 +60,11 @@
: self::Cat::numberOfWhiskers = numberOfWhiskers, super self::Animal::•(numberOfLegs)
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Cat}.{self::Animal::numberOfLegs}) && this.{self::Cat::numberOfWhiskers}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfWhiskers});
+ return other is self::Cat && this.{self::Animal::numberOfLegs}{core::int?} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Animal::numberOfLegs}{core::int?} && this.{self::Cat::numberOfWhiskers}{core::int?} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfWhiskers}{core::int?};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///copy_with_call_sites.dartCat".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}), this.{self::Cat::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///copy_with_call_sites.dartCat".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int?}.{core::num::hashCode}{core::int}), this.{self::Cat::numberOfWhiskers}{core::int?}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int?}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}{core::int?}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int? numberOfLegs, core::int? numberOfWhiskers}) → dynamic
return new self::Cat::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
@@ -88,7 +88,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///copy_with_call_sites.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///copy_with_call_sites.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/empty.dart.strong.expect b/pkg/front_end/testcases/value_class/empty.dart.strong.expect
index ee36638..d243d4d 100644
--- a/pkg/front_end/testcases/value_class/empty.dart.strong.expect
+++ b/pkg/front_end/testcases/value_class/empty.dart.strong.expect
@@ -12,7 +12,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::EmptyClass;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///empty.dartEmptyClass".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///empty.dartEmptyClass".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "EmptyClass()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/empty.dart.strong.transformed.expect b/pkg/front_end/testcases/value_class/empty.dart.strong.transformed.expect
index dfd863f..eae2ec9 100644
--- a/pkg/front_end/testcases/value_class/empty.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/value_class/empty.dart.strong.transformed.expect
@@ -12,7 +12,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::EmptyClass;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///empty.dartEmptyClass".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///empty.dartEmptyClass".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "EmptyClass()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/empty.dart.weak.expect b/pkg/front_end/testcases/value_class/empty.dart.weak.expect
index ee36638..d243d4d 100644
--- a/pkg/front_end/testcases/value_class/empty.dart.weak.expect
+++ b/pkg/front_end/testcases/value_class/empty.dart.weak.expect
@@ -12,7 +12,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::EmptyClass;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///empty.dartEmptyClass".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///empty.dartEmptyClass".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "EmptyClass()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/empty.dart.weak.transformed.expect b/pkg/front_end/testcases/value_class/empty.dart.weak.transformed.expect
index dfd863f..eae2ec9 100644
--- a/pkg/front_end/testcases/value_class/empty.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/value_class/empty.dart.weak.transformed.expect
@@ -12,7 +12,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::EmptyClass;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///empty.dartEmptyClass".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///empty.dartEmptyClass".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "EmptyClass()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/explicit_mixin.dart.strong.expect b/pkg/front_end/testcases/value_class/explicit_mixin.dart.strong.expect
index 874cf34..0509836 100644
--- a/pkg/front_end/testcases/value_class/explicit_mixin.dart.strong.expect
+++ b/pkg/front_end/testcases/value_class/explicit_mixin.dart.strong.expect
@@ -12,7 +12,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
@@ -45,7 +45,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::F;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartF".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartF".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "F()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/explicit_mixin.dart.strong.transformed.expect b/pkg/front_end/testcases/value_class/explicit_mixin.dart.strong.transformed.expect
index 9c48f3b..f3cd9d1 100644
--- a/pkg/front_end/testcases/value_class/explicit_mixin.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/value_class/explicit_mixin.dart.strong.transformed.expect
@@ -12,7 +12,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
@@ -40,7 +40,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
@@ -53,7 +53,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::F;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartF".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartF".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "F()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.expect b/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.expect
index 874cf34..0509836 100644
--- a/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.expect
+++ b/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.expect
@@ -12,7 +12,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
@@ -45,7 +45,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::F;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartF".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartF".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "F()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.transformed.expect
index 9c48f3b..f3cd9d1 100644
--- a/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.transformed.expect
@@ -12,7 +12,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
@@ -40,7 +40,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
@@ -53,7 +53,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::F;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartF".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///explicit_mixin.dartF".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "F()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/non_final_field_error.dart.strong.expect b/pkg/front_end/testcases/value_class/non_final_field_error.dart.strong.expect
index ef4afe1..a3eef16 100644
--- a/pkg/front_end/testcases/value_class/non_final_field_error.dart.strong.expect
+++ b/pkg/front_end/testcases/value_class/non_final_field_error.dart.strong.expect
@@ -18,11 +18,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_final_field_error.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_final_field_error.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/non_final_field_error.dart.strong.transformed.expect b/pkg/front_end/testcases/value_class/non_final_field_error.dart.strong.transformed.expect
index ef4afe1..a3eef16 100644
--- a/pkg/front_end/testcases/value_class/non_final_field_error.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/value_class/non_final_field_error.dart.strong.transformed.expect
@@ -18,11 +18,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_final_field_error.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_final_field_error.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/non_final_field_error.dart.weak.expect b/pkg/front_end/testcases/value_class/non_final_field_error.dart.weak.expect
index ef4afe1..a3eef16 100644
--- a/pkg/front_end/testcases/value_class/non_final_field_error.dart.weak.expect
+++ b/pkg/front_end/testcases/value_class/non_final_field_error.dart.weak.expect
@@ -18,11 +18,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_final_field_error.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_final_field_error.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/non_final_field_error.dart.weak.transformed.expect b/pkg/front_end/testcases/value_class/non_final_field_error.dart.weak.transformed.expect
index ef4afe1..a3eef16 100644
--- a/pkg/front_end/testcases/value_class/non_final_field_error.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/value_class/non_final_field_error.dart.weak.transformed.expect
@@ -18,11 +18,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_final_field_error.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_final_field_error.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.strong.expect b/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.strong.expect
index 59a319e..eca2eeb 100644
--- a/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.strong.expect
+++ b/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.strong.expect
@@ -19,11 +19,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_extends_value_error.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_extends_value_error.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.strong.transformed.expect b/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.strong.transformed.expect
index 59a319e..eca2eeb 100644
--- a/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.strong.transformed.expect
@@ -19,11 +19,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_extends_value_error.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_extends_value_error.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.weak.expect b/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.weak.expect
index 59a319e..eca2eeb 100644
--- a/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.weak.expect
+++ b/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.weak.expect
@@ -19,11 +19,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_extends_value_error.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_extends_value_error.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.weak.transformed.expect b/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.weak.transformed.expect
index 59a319e..eca2eeb 100644
--- a/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/value_class/non_value_extends_value_error.dart.weak.transformed.expect
@@ -19,11 +19,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_extends_value_error.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_extends_value_error.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.strong.expect b/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.strong.expect
index b2a184a..6759904 100644
--- a/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.strong.expect
+++ b/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.strong.expect
@@ -24,11 +24,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_implements_value_error.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_implements_value_error.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.strong.transformed.expect b/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.strong.transformed.expect
index b2a184a..6759904 100644
--- a/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.strong.transformed.expect
@@ -24,11 +24,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_implements_value_error.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_implements_value_error.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.weak.expect b/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.weak.expect
index b2a184a..6759904 100644
--- a/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.weak.expect
+++ b/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.weak.expect
@@ -24,11 +24,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_implements_value_error.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_implements_value_error.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.weak.transformed.expect b/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.weak.transformed.expect
index b2a184a..6759904 100644
--- a/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/value_class/non_value_implements_value_error.dart.weak.transformed.expect
@@ -24,11 +24,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_implements_value_error.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///non_value_implements_value_error.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/simple.dart.strong.expect b/pkg/front_end/testcases/value_class/simple.dart.strong.expect
index f0a1c74..cee962b 100644
--- a/pkg/front_end/testcases/value_class/simple.dart.strong.expect
+++ b/pkg/front_end/testcases/value_class/simple.dart.strong.expect
@@ -40,11 +40,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///simple.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///simple.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/simple.dart.strong.transformed.expect b/pkg/front_end/testcases/value_class/simple.dart.strong.transformed.expect
index 6c1ece6..0144bcf 100644
--- a/pkg/front_end/testcases/value_class/simple.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/value_class/simple.dart.strong.transformed.expect
@@ -40,11 +40,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///simple.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///simple.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/simple.dart.weak.expect b/pkg/front_end/testcases/value_class/simple.dart.weak.expect
index f0a1c74..cee962b 100644
--- a/pkg/front_end/testcases/value_class/simple.dart.weak.expect
+++ b/pkg/front_end/testcases/value_class/simple.dart.weak.expect
@@ -40,11 +40,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///simple.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///simple.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/simple.dart.weak.transformed.expect b/pkg/front_end/testcases/value_class/simple.dart.weak.transformed.expect
index 6c1ece6..0144bcf 100644
--- a/pkg/front_end/testcases/value_class/simple.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/value_class/simple.dart.weak.transformed.expect
@@ -40,11 +40,11 @@
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Animal && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Animal}.{self::Animal::numberOfLegs});
+ return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///simple.dartAnimal".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///simple.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()})";
+ return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) → dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
diff --git a/pkg/front_end/testcases/value_class/value_extends_non_value.dart.strong.expect b/pkg/front_end/testcases/value_class/value_extends_non_value.dart.strong.expect
index 08b2269..682fc4d 100644
--- a/pkg/front_end/testcases/value_class/value_extends_non_value.dart.strong.expect
+++ b/pkg/front_end/testcases/value_class/value_extends_non_value.dart.strong.expect
@@ -46,11 +46,11 @@
: self::Cat::numberOfWhiskers = numberOfWhiskers, super self::Animal::•(numberOfLegs)
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Cat}.{self::Animal::numberOfLegs}) && this.{self::Cat::numberOfWhiskers}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfWhiskers});
+ return other is self::Cat && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Animal::numberOfLegs}{core::int} && this.{self::Cat::numberOfWhiskers}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfWhiskers}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_extends_non_value.dartCat".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}), this.{self::Cat::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_extends_non_value.dartCat".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}), this.{self::Cat::numberOfWhiskers}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs, core::int numberOfWhiskers}) → dynamic
return new self::Cat::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
diff --git a/pkg/front_end/testcases/value_class/value_extends_non_value.dart.strong.transformed.expect b/pkg/front_end/testcases/value_class/value_extends_non_value.dart.strong.transformed.expect
index 3954e85..955fab2 100644
--- a/pkg/front_end/testcases/value_class/value_extends_non_value.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/value_class/value_extends_non_value.dart.strong.transformed.expect
@@ -46,11 +46,11 @@
: self::Cat::numberOfWhiskers = numberOfWhiskers, super self::Animal::•(numberOfLegs)
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Cat}.{self::Animal::numberOfLegs}) && this.{self::Cat::numberOfWhiskers}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfWhiskers});
+ return other is self::Cat && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Animal::numberOfLegs}{core::int} && this.{self::Cat::numberOfWhiskers}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfWhiskers}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_extends_non_value.dartCat".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}), this.{self::Cat::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_extends_non_value.dartCat".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}), this.{self::Cat::numberOfWhiskers}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs, core::int numberOfWhiskers}) → dynamic
return new self::Cat::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
diff --git a/pkg/front_end/testcases/value_class/value_extends_non_value.dart.weak.expect b/pkg/front_end/testcases/value_class/value_extends_non_value.dart.weak.expect
index 08b2269..682fc4d 100644
--- a/pkg/front_end/testcases/value_class/value_extends_non_value.dart.weak.expect
+++ b/pkg/front_end/testcases/value_class/value_extends_non_value.dart.weak.expect
@@ -46,11 +46,11 @@
: self::Cat::numberOfWhiskers = numberOfWhiskers, super self::Animal::•(numberOfLegs)
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Cat}.{self::Animal::numberOfLegs}) && this.{self::Cat::numberOfWhiskers}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfWhiskers});
+ return other is self::Cat && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Animal::numberOfLegs}{core::int} && this.{self::Cat::numberOfWhiskers}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfWhiskers}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_extends_non_value.dartCat".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}), this.{self::Cat::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_extends_non_value.dartCat".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}), this.{self::Cat::numberOfWhiskers}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs, core::int numberOfWhiskers}) → dynamic
return new self::Cat::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
diff --git a/pkg/front_end/testcases/value_class/value_extends_non_value.dart.weak.transformed.expect b/pkg/front_end/testcases/value_class/value_extends_non_value.dart.weak.transformed.expect
index 3954e85..955fab2 100644
--- a/pkg/front_end/testcases/value_class/value_extends_non_value.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/value_class/value_extends_non_value.dart.weak.transformed.expect
@@ -46,11 +46,11 @@
: self::Cat::numberOfWhiskers = numberOfWhiskers, super self::Animal::•(numberOfLegs)
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat && this.{self::Animal::numberOfLegs}.{core::num::==}(other{self::Cat}.{self::Animal::numberOfLegs}) && this.{self::Cat::numberOfWhiskers}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfWhiskers});
+ return other is self::Cat && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Animal::numberOfLegs}{core::int} && this.{self::Cat::numberOfWhiskers}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfWhiskers}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_extends_non_value.dartCat".{core::String::hashCode}, this.{self::Animal::numberOfLegs}.{core::num::hashCode}), this.{self::Cat::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_extends_non_value.dartCat".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}), this.{self::Cat::numberOfWhiskers}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs, core::int numberOfWhiskers}) → dynamic
return new self::Cat::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
diff --git a/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.strong.expect b/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.strong.expect
index 263682d..068409c 100644
--- a/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.strong.expect
+++ b/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.strong.expect
@@ -30,7 +30,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::Cat;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "Cat()";
method /*isLegacy*/ copyWith() → dynamic
@@ -49,7 +49,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::Cat2;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat2".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat2".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "Cat2()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.strong.transformed.expect b/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.strong.transformed.expect
index 523dee1f..846d751 100644
--- a/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.strong.transformed.expect
@@ -30,7 +30,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::Cat;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "Cat()";
method /*isLegacy*/ copyWith() → dynamic
@@ -49,7 +49,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::Cat2;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat2".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat2".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "Cat2()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.weak.expect b/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.weak.expect
index 263682d..068409c 100644
--- a/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.weak.expect
+++ b/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.weak.expect
@@ -30,7 +30,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::Cat;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "Cat()";
method /*isLegacy*/ copyWith() → dynamic
@@ -49,7 +49,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::Cat2;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat2".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat2".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "Cat2()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.weak.transformed.expect b/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.weak.transformed.expect
index 523dee1f..846d751 100644
--- a/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/value_class/value_extends_non_value_error.dart.weak.transformed.expect
@@ -30,7 +30,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::Cat;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "Cat()";
method /*isLegacy*/ copyWith() → dynamic
@@ -49,7 +49,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::Cat2;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat2".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_extends_non_value_error.dartCat2".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "Cat2()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/value_implements_non_value.dart.strong.expect b/pkg/front_end/testcases/value_class/value_implements_non_value.dart.strong.expect
index 0f84494..47528c5 100644
--- a/pkg/front_end/testcases/value_class/value_implements_non_value.dart.strong.expect
+++ b/pkg/front_end/testcases/value_class/value_implements_non_value.dart.strong.expect
@@ -88,11 +88,11 @@
: self::Cat::numberOfLegs = numberOfLegs, self::Cat::numberOfWhiskers = numberOfWhiskers, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat && this.{self::Cat::numberOfLegs}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfLegs}) && this.{self::Cat::numberOfWhiskers}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfWhiskers});
+ return other is self::Cat && this.{self::Cat::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfLegs}{core::int} && this.{self::Cat::numberOfWhiskers}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfWhiskers}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat".{core::String::hashCode}, this.{self::Cat::numberOfLegs}.{core::num::hashCode}), this.{self::Cat::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat".{core::String::hashCode}{core::int}, this.{self::Cat::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}), this.{self::Cat::numberOfWhiskers}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat(numberOfLegs: ${this.{self::Cat::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat(numberOfLegs: ${this.{self::Cat::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs, core::int numberOfWhiskers}) → dynamic
return new self::Cat::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
@@ -109,11 +109,11 @@
: self::Cat2::numberOfLegs = numberOfLegs, self::Cat2::numberOfWhiskers = numberOfWhiskers, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat2 && this.{self::Cat2::numberOfLegs}.{core::num::==}(other{self::Cat2}.{self::Cat2::numberOfLegs}) && this.{self::Cat2::numberOfWhiskers}.{core::num::==}(other{self::Cat2}.{self::Cat2::numberOfWhiskers});
+ return other is self::Cat2 && this.{self::Cat2::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat2}.{self::Cat2::numberOfLegs}{core::int} && this.{self::Cat2::numberOfWhiskers}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat2}.{self::Cat2::numberOfWhiskers}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat2".{core::String::hashCode}, this.{self::Cat2::numberOfLegs}.{core::num::hashCode}), this.{self::Cat2::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat2".{core::String::hashCode}{core::int}, this.{self::Cat2::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}), this.{self::Cat2::numberOfWhiskers}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat2(numberOfLegs: ${this.{self::Cat2::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat2::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat2(numberOfLegs: ${this.{self::Cat2::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat2::numberOfWhiskers}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs, core::int numberOfWhiskers}) → dynamic
return new self::Cat2::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
diff --git a/pkg/front_end/testcases/value_class/value_implements_non_value.dart.strong.transformed.expect b/pkg/front_end/testcases/value_class/value_implements_non_value.dart.strong.transformed.expect
index b0fba59..28477fa 100644
--- a/pkg/front_end/testcases/value_class/value_implements_non_value.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/value_class/value_implements_non_value.dart.strong.transformed.expect
@@ -88,11 +88,11 @@
: self::Cat::numberOfLegs = numberOfLegs, self::Cat::numberOfWhiskers = numberOfWhiskers, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat && this.{self::Cat::numberOfLegs}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfLegs}) && this.{self::Cat::numberOfWhiskers}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfWhiskers});
+ return other is self::Cat && this.{self::Cat::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfLegs}{core::int} && this.{self::Cat::numberOfWhiskers}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfWhiskers}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat".{core::String::hashCode}, this.{self::Cat::numberOfLegs}.{core::num::hashCode}), this.{self::Cat::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat".{core::String::hashCode}{core::int}, this.{self::Cat::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}), this.{self::Cat::numberOfWhiskers}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat(numberOfLegs: ${this.{self::Cat::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat(numberOfLegs: ${this.{self::Cat::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs, core::int numberOfWhiskers}) → dynamic
return new self::Cat::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
@@ -109,11 +109,11 @@
: self::Cat2::numberOfLegs = numberOfLegs, self::Cat2::numberOfWhiskers = numberOfWhiskers, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat2 && this.{self::Cat2::numberOfLegs}.{core::num::==}(other{self::Cat2}.{self::Cat2::numberOfLegs}) && this.{self::Cat2::numberOfWhiskers}.{core::num::==}(other{self::Cat2}.{self::Cat2::numberOfWhiskers});
+ return other is self::Cat2 && this.{self::Cat2::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat2}.{self::Cat2::numberOfLegs}{core::int} && this.{self::Cat2::numberOfWhiskers}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat2}.{self::Cat2::numberOfWhiskers}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat2".{core::String::hashCode}, this.{self::Cat2::numberOfLegs}.{core::num::hashCode}), this.{self::Cat2::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat2".{core::String::hashCode}{core::int}, this.{self::Cat2::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}), this.{self::Cat2::numberOfWhiskers}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat2(numberOfLegs: ${this.{self::Cat2::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat2::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat2(numberOfLegs: ${this.{self::Cat2::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat2::numberOfWhiskers}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs, core::int numberOfWhiskers}) → dynamic
return new self::Cat2::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
diff --git a/pkg/front_end/testcases/value_class/value_implements_non_value.dart.weak.expect b/pkg/front_end/testcases/value_class/value_implements_non_value.dart.weak.expect
index 0f84494..47528c5 100644
--- a/pkg/front_end/testcases/value_class/value_implements_non_value.dart.weak.expect
+++ b/pkg/front_end/testcases/value_class/value_implements_non_value.dart.weak.expect
@@ -88,11 +88,11 @@
: self::Cat::numberOfLegs = numberOfLegs, self::Cat::numberOfWhiskers = numberOfWhiskers, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat && this.{self::Cat::numberOfLegs}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfLegs}) && this.{self::Cat::numberOfWhiskers}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfWhiskers});
+ return other is self::Cat && this.{self::Cat::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfLegs}{core::int} && this.{self::Cat::numberOfWhiskers}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfWhiskers}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat".{core::String::hashCode}, this.{self::Cat::numberOfLegs}.{core::num::hashCode}), this.{self::Cat::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat".{core::String::hashCode}{core::int}, this.{self::Cat::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}), this.{self::Cat::numberOfWhiskers}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat(numberOfLegs: ${this.{self::Cat::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat(numberOfLegs: ${this.{self::Cat::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs, core::int numberOfWhiskers}) → dynamic
return new self::Cat::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
@@ -109,11 +109,11 @@
: self::Cat2::numberOfLegs = numberOfLegs, self::Cat2::numberOfWhiskers = numberOfWhiskers, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat2 && this.{self::Cat2::numberOfLegs}.{core::num::==}(other{self::Cat2}.{self::Cat2::numberOfLegs}) && this.{self::Cat2::numberOfWhiskers}.{core::num::==}(other{self::Cat2}.{self::Cat2::numberOfWhiskers});
+ return other is self::Cat2 && this.{self::Cat2::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat2}.{self::Cat2::numberOfLegs}{core::int} && this.{self::Cat2::numberOfWhiskers}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat2}.{self::Cat2::numberOfWhiskers}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat2".{core::String::hashCode}, this.{self::Cat2::numberOfLegs}.{core::num::hashCode}), this.{self::Cat2::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat2".{core::String::hashCode}{core::int}, this.{self::Cat2::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}), this.{self::Cat2::numberOfWhiskers}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat2(numberOfLegs: ${this.{self::Cat2::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat2::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat2(numberOfLegs: ${this.{self::Cat2::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat2::numberOfWhiskers}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs, core::int numberOfWhiskers}) → dynamic
return new self::Cat2::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
diff --git a/pkg/front_end/testcases/value_class/value_implements_non_value.dart.weak.transformed.expect b/pkg/front_end/testcases/value_class/value_implements_non_value.dart.weak.transformed.expect
index b0fba59..28477fa 100644
--- a/pkg/front_end/testcases/value_class/value_implements_non_value.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/value_class/value_implements_non_value.dart.weak.transformed.expect
@@ -88,11 +88,11 @@
: self::Cat::numberOfLegs = numberOfLegs, self::Cat::numberOfWhiskers = numberOfWhiskers, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat && this.{self::Cat::numberOfLegs}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfLegs}) && this.{self::Cat::numberOfWhiskers}.{core::num::==}(other{self::Cat}.{self::Cat::numberOfWhiskers});
+ return other is self::Cat && this.{self::Cat::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfLegs}{core::int} && this.{self::Cat::numberOfWhiskers}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat}.{self::Cat::numberOfWhiskers}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat".{core::String::hashCode}, this.{self::Cat::numberOfLegs}.{core::num::hashCode}), this.{self::Cat::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat".{core::String::hashCode}{core::int}, this.{self::Cat::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}), this.{self::Cat::numberOfWhiskers}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat(numberOfLegs: ${this.{self::Cat::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat(numberOfLegs: ${this.{self::Cat::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat::numberOfWhiskers}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs, core::int numberOfWhiskers}) → dynamic
return new self::Cat::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
@@ -109,11 +109,11 @@
: self::Cat2::numberOfLegs = numberOfLegs, self::Cat2::numberOfWhiskers = numberOfWhiskers, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) → core::bool
- return other is self::Cat2 && this.{self::Cat2::numberOfLegs}.{core::num::==}(other{self::Cat2}.{self::Cat2::numberOfLegs}) && this.{self::Cat2::numberOfWhiskers}.{core::num::==}(other{self::Cat2}.{self::Cat2::numberOfWhiskers});
+ return other is self::Cat2 && this.{self::Cat2::numberOfLegs}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat2}.{self::Cat2::numberOfLegs}{core::int} && this.{self::Cat2::numberOfWhiskers}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::Cat2}.{self::Cat2::numberOfWhiskers}{core::int};
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat2".{core::String::hashCode}, this.{self::Cat2::numberOfLegs}.{core::num::hashCode}), this.{self::Cat2::numberOfWhiskers}.{core::num::hashCode}));
+ return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine(val::JenkinsSmiHash::combine("org-dartlang-testcase:///value_implements_non_value.dartCat2".{core::String::hashCode}{core::int}, this.{self::Cat2::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}), this.{self::Cat2::numberOfWhiskers}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() → core::String
- return "Cat2(numberOfLegs: ${this.{self::Cat2::numberOfLegs}.{core::int::toString}()}, numberOfWhiskers: ${this.{self::Cat2::numberOfWhiskers}.{core::int::toString}()})";
+ return "Cat2(numberOfLegs: ${this.{self::Cat2::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}}, numberOfWhiskers: ${this.{self::Cat2::numberOfWhiskers}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs, core::int numberOfWhiskers}) → dynamic
return new self::Cat2::•(numberOfLegs: numberOfLegs, numberOfWhiskers: numberOfWhiskers);
}
diff --git a/pkg/front_end/testcases/value_class/value_mixin_error.dart.strong.expect b/pkg/front_end/testcases/value_class/value_mixin_error.dart.strong.expect
index fa9583c..391ae35 100644
--- a/pkg/front_end/testcases/value_class/value_mixin_error.dart.strong.expect
+++ b/pkg/front_end/testcases/value_class/value_mixin_error.dart.strong.expect
@@ -12,7 +12,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_mixin_error.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_mixin_error.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/value_mixin_error.dart.strong.transformed.expect b/pkg/front_end/testcases/value_class/value_mixin_error.dart.strong.transformed.expect
index 9904420..86f6243 100644
--- a/pkg/front_end/testcases/value_class/value_mixin_error.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/value_class/value_mixin_error.dart.strong.transformed.expect
@@ -12,7 +12,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_mixin_error.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_mixin_error.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
@@ -30,7 +30,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_mixin_error.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_mixin_error.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.expect b/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.expect
index fa9583c..391ae35 100644
--- a/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.expect
+++ b/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.expect
@@ -12,7 +12,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_mixin_error.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_mixin_error.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.transformed.expect b/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.transformed.expect
index 9904420..86f6243 100644
--- a/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.transformed.expect
@@ -12,7 +12,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_mixin_error.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_mixin_error.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
@@ -30,7 +30,7 @@
operator /*isLegacy*/ ==(core::Object other) → core::bool
return other is self::A;
get /*isLegacy*/ hashCode() → core::int
- return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_mixin_error.dartA".{core::String::hashCode});
+ return val::JenkinsSmiHash::finish("org-dartlang-testcase:///value_mixin_error.dartA".{core::String::hashCode}{core::int});
method /*isLegacy*/ toString() → core::String
return "A()";
method /*isLegacy*/ copyWith() → dynamic
diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
index 2389f01..3e8f7b2 100644
--- a/pkg/kernel/lib/ast.dart
+++ b/pkg/kernel/lib/ast.dart
@@ -5063,8 +5063,14 @@
Name get name;
}
-class DynamicInvocation extends InvocationExpression {
+abstract class InstanceInvocationExpression extends InvocationExpression {
+ Expression get receiver;
+}
+
+class DynamicInvocation extends InstanceInvocationExpression {
final DynamicAccessKind kind;
+
+ @override
Expression receiver;
@override
@@ -5203,7 +5209,7 @@
/// An invocation of an instance method with a statically known interface
/// target.
-class InstanceInvocation extends InvocationExpression {
+class InstanceInvocation extends InstanceInvocationExpression {
// Must match serialized bit positions.
static const int FlagInvariant = 1 << 0;
static const int FlagBoundsSafe = 1 << 1;
@@ -5376,7 +5382,7 @@
/// This is used only for web backend in order to support invocation of
/// native properties as functions. This node will be removed when this
/// invocation style is no longer supported.
-class InstanceGetterInvocation extends InvocationExpression {
+class InstanceGetterInvocation extends InstanceInvocationExpression {
// Must match serialized bit positions.
static const int FlagInvariant = 1 << 0;
static const int FlagBoundsSafe = 1 << 1;
@@ -5580,9 +5586,10 @@
/// An invocation of the 'call' method on an expression whose static type is
/// a function type or the type 'Function'.
-class FunctionInvocation extends InvocationExpression {
+class FunctionInvocation extends InstanceInvocationExpression {
final FunctionAccessKind kind;
+ @override
Expression receiver;
@override
@@ -5948,11 +5955,12 @@
}
/// Expression of form `x.foo(y)`.
-class MethodInvocation extends InvocationExpression {
+class MethodInvocation extends InstanceInvocationExpression {
// Must match serialized bit positions.
static const int FlagInvariant = 1 << 0;
static const int FlagBoundsSafe = 1 << 1;
+ @override
Expression receiver;
@override
diff --git a/pkg/kernel/lib/text/ast_to_text.dart b/pkg/kernel/lib/text/ast_to_text.dart
index ac9470e..0017fd4 100644
--- a/pkg/kernel/lib/text/ast_to_text.dart
+++ b/pkg/kernel/lib/text/ast_to_text.dart
@@ -1495,6 +1495,16 @@
writeSymbol('.');
writeInterfaceTarget(node.name, node.interfaceTargetReference);
_writeInstanceAccessKind(node.kind);
+ List<String> flags = <String>[];
+ if (node.isInvariant) {
+ flags.add('Invariant');
+ }
+ if (node.isBoundsSafe) {
+ flags.add('BoundsSafe');
+ }
+ if (flags.isNotEmpty) {
+ write('{${flags.join(',')}}');
+ }
writeNode(node.arguments);
writeSymbol('{');
writeType(node.functionType);
diff --git a/pkg/kernel/lib/transformations/scanner.dart b/pkg/kernel/lib/transformations/scanner.dart
index c49a934..d80aa65 100644
--- a/pkg/kernel/lib/transformations/scanner.dart
+++ b/pkg/kernel/lib/transformations/scanner.dart
@@ -243,17 +243,18 @@
}
abstract class MethodInvocationScanner<Y extends TreeNode?>
- extends RecursiveVisitor implements Scanner<MethodInvocation, Y> {
+ extends RecursiveVisitor
+ implements Scanner<InstanceInvocationExpression, Y> {
final Scanner<Y, TreeNode>? next;
- ScanResult<MethodInvocation, Y>? _result;
+ ScanResult<InstanceInvocationExpression, Y>? _result;
MethodInvocationScanner(this.next);
- bool predicate(MethodInvocation node);
+ bool predicate(InstanceInvocationExpression node);
- ScanResult<MethodInvocation, Y> scan(TreeNode node) {
- ScanResult<MethodInvocation, Y> result =
- _result = new ScanResult<MethodInvocation, Y>();
+ ScanResult<InstanceInvocationExpression, Y> scan(TreeNode node) {
+ ScanResult<InstanceInvocationExpression, Y> result =
+ _result = new ScanResult<InstanceInvocationExpression, Y>();
node.accept(this);
_result = null;
return result;
diff --git a/pkg/kernel/lib/transformations/value_class.dart b/pkg/kernel/lib/transformations/value_class.dart
index b50c56f..014256c 100644
--- a/pkg/kernel/lib/transformations/value_class.dart
+++ b/pkg/kernel/lib/transformations/value_class.dart
@@ -34,13 +34,14 @@
}
}
-class AllMemberScanner extends MemberScanner<MethodInvocation> {
- AllMemberScanner(Scanner<MethodInvocation, TreeNode?> next) : super(next);
+class AllMemberScanner extends MemberScanner<InstanceInvocationExpression> {
+ AllMemberScanner(Scanner<InstanceInvocationExpression, TreeNode?> next)
+ : super(next);
bool predicate(Member member) => true;
}
-// Scans and matches all copyWith invocations were the reciever is _ as dynamic
+// Scans and matches all copyWith invocations were the receiver is _ as dynamic
// It will filter out the results that are not value classes afterwards
class ValueClassCopyWithScanner extends MethodInvocationScanner<Null> {
ValueClassCopyWithScanner() : super(null);
@@ -49,7 +50,7 @@
// @valueClass V {}
// V v;
// (v as dynamic).copyWith() as V
- bool predicate(MethodInvocation node) {
+ bool predicate(InstanceInvocationExpression node) {
return node.name.text == "copyWith" &&
_isValueClassAsConstruct(node.receiver);
}
@@ -60,14 +61,17 @@
}
void transformComponent(Component node, CoreTypes coreTypes,
- ClassHierarchy hierarchy, TypeEnvironment typeEnvironment) {
+ ClassHierarchy hierarchy, TypeEnvironment typeEnvironment,
+ {required bool useNewMethodInvocationEncoding}) {
ValueClassScanner scanner = new ValueClassScanner();
ScanResult<Class, Null> valueClasses = scanner.scan(node);
for (Class valueClass in valueClasses.targets.keys) {
- transformValueClass(valueClass, coreTypes, hierarchy, typeEnvironment);
+ transformValueClass(valueClass, coreTypes, hierarchy, typeEnvironment,
+ useNewMethodInvocationEncoding: useNewMethodInvocationEncoding);
}
- treatCopyWithCallSites(node, coreTypes, typeEnvironment, hierarchy);
+ treatCopyWithCallSites(node, coreTypes, typeEnvironment, hierarchy,
+ useNewMethodInvocationEncoding: useNewMethodInvocationEncoding);
for (Class valueClass in valueClasses.targets.keys) {
removeValueClassAnnotation(valueClass);
@@ -75,7 +79,8 @@
}
void transformValueClass(Class cls, CoreTypes coreTypes,
- ClassHierarchy hierarchy, TypeEnvironment typeEnvironment) {
+ ClassHierarchy hierarchy, TypeEnvironment typeEnvironment,
+ {required bool useNewMethodInvocationEncoding}) {
Constructor? syntheticConstructor = null;
for (Constructor constructor in cls.constructors) {
if (constructor.isSynthetic) {
@@ -88,9 +93,12 @@
allVariablesList.sort((a, b) => a.name!.compareTo(b.name!));
addConstructor(cls, coreTypes, syntheticConstructor!);
- addEqualsOperator(cls, coreTypes, hierarchy, allVariablesList);
- addHashCode(cls, coreTypes, hierarchy, allVariablesList);
- addToString(cls, coreTypes, hierarchy, allVariablesList);
+ addEqualsOperator(cls, coreTypes, hierarchy, allVariablesList,
+ useNewMethodInvocationEncoding: useNewMethodInvocationEncoding);
+ addHashCode(cls, coreTypes, hierarchy, allVariablesList,
+ useNewMethodInvocationEncoding: useNewMethodInvocationEncoding);
+ addToString(cls, coreTypes, hierarchy, allVariablesList,
+ useNewMethodInvocationEncoding: useNewMethodInvocationEncoding);
addCopyWith(cls, coreTypes, hierarchy, allVariablesList, syntheticConstructor,
typeEnvironment);
}
@@ -132,7 +140,8 @@
}
void addEqualsOperator(Class cls, CoreTypes coreTypes, ClassHierarchy hierarchy,
- List<VariableDeclaration> allVariablesList) {
+ List<VariableDeclaration> allVariablesList,
+ {required bool useNewMethodInvocationEncoding}) {
List<VariableDeclaration> allVariables = allVariablesList.toList();
for (Procedure procedure in cls.procedures) {
if (procedure.kind == ProcedureKind.Operator &&
@@ -167,14 +176,18 @@
ProcedureKind.Operator,
FunctionNode(
ReturnStatement(allVariables
- .map((f) => MethodInvocation(
- PropertyGet(ThisExpression(), Name(f.name!), targets[f]),
- Name("=="),
- Arguments([
- PropertyGet(
- VariableGet(other, myType), Name(f.name!), targets[f])
- ]),
- targetsEquals[f]))
+ .map((f) => _createEquals(
+ _createGet(ThisExpression(), Name(f.name!),
+ interfaceTarget: targets[f],
+ useNewMethodInvocationEncoding:
+ useNewMethodInvocationEncoding),
+ _createGet(VariableGet(other, myType), Name(f.name!),
+ interfaceTarget: targets[f],
+ useNewMethodInvocationEncoding:
+ useNewMethodInvocationEncoding),
+ interfaceTarget: targetsEquals[f] as Procedure,
+ useNewMethodInvocationEncoding:
+ useNewMethodInvocationEncoding))
.fold(
IsExpression(VariableGet(other), myType),
(previousValue, element) => LogicalExpression(
@@ -187,7 +200,8 @@
}
void addHashCode(Class cls, CoreTypes coreTypes, ClassHierarchy hierarchy,
- List<VariableDeclaration> allVariablesList) {
+ List<VariableDeclaration> allVariablesList,
+ {required bool useNewMethodInvocationEncoding}) {
List<VariableDeclaration> allVariables = allVariablesList.toList();
for (Procedure procedure in cls.procedures) {
if (procedure.kind == ProcedureKind.Getter &&
@@ -239,19 +253,25 @@
hashFinish!,
Arguments([
allVariables
- .map((f) => (PropertyGet(
- PropertyGet(
- ThisExpression(), Name(f.name!), targets[f]),
+ .map((f) => (_createGet(
+ _createGet(ThisExpression(), Name(f.name!),
+ interfaceTarget: targets[f],
+ useNewMethodInvocationEncoding:
+ useNewMethodInvocationEncoding),
Name("hashCode"),
- targetsHashcode[f])))
+ interfaceTarget: targetsHashcode[f],
+ useNewMethodInvocationEncoding:
+ useNewMethodInvocationEncoding)))
.fold(
- PropertyGet(
+ _createGet(
StringLiteral(
cls.enclosingLibrary.importUri.toString() +
cls.name),
Name("hashCode"),
- hierarchy.getInterfaceMember(
- coreTypes.stringClass, Name("hashCode"))),
+ interfaceTarget: hierarchy.getInterfaceMember(
+ coreTypes.stringClass, Name("hashCode")),
+ useNewMethodInvocationEncoding:
+ useNewMethodInvocationEncoding),
(previousValue, element) => StaticInvocation(
hashCombine!, Arguments([previousValue, element])))
]))),
@@ -261,20 +281,27 @@
}
void addToString(Class cls, CoreTypes coreTypes, ClassHierarchy hierarchy,
- List<VariableDeclaration> allVariablesList) {
+ List<VariableDeclaration> allVariablesList,
+ {required bool useNewMethodInvocationEncoding}) {
List<Expression> wording = [StringLiteral("${cls.name}(")];
for (VariableDeclaration variable in allVariablesList) {
wording.add(StringLiteral("${variable.name}: "));
- wording.add(MethodInvocation(
- PropertyGet(ThisExpression(), Name(variable.name!),
- hierarchy.getInterfaceMember(cls, Name(variable.name!))),
+ Member? variableTarget =
+ hierarchy.getInterfaceMember(cls, Name(variable.name!));
+ Procedure toStringTarget = hierarchy.getInterfaceMember(
+ variable.type is InterfaceType
+ ? (variable.type as InterfaceType).classNode
+ : coreTypes.objectClass,
+ Name("toString")) as Procedure;
+ wording.add(_createInvocation(
+ _createGet(ThisExpression(), Name(variable.name!),
+ interfaceTarget: variableTarget,
+ useNewMethodInvocationEncoding: useNewMethodInvocationEncoding),
Name("toString"),
Arguments([]),
- (variable.type is InterfaceType)
- ? hierarchy.getInterfaceMember(
- (variable.type as InterfaceType).classNode, Name("toString"))
- : null));
+ interfaceTarget: toStringTarget,
+ useNewMethodInvocationEncoding: useNewMethodInvocationEncoding));
wording.add(StringLiteral(", "));
}
if (allVariablesList.length != 0) {
@@ -365,19 +392,20 @@
}
void treatCopyWithCallSites(Component component, CoreTypes coreTypes,
- TypeEnvironment typeEnvironment, ClassHierarchy hierarchy) {
+ TypeEnvironment typeEnvironment, ClassHierarchy hierarchy,
+ {required bool useNewMethodInvocationEncoding}) {
ValueClassCopyWithScanner valueCopyWithScanner =
new ValueClassCopyWithScanner();
AllMemberScanner copyWithScanner = AllMemberScanner(valueCopyWithScanner);
- ScanResult<Member, MethodInvocation> copyWithCallSites =
+ ScanResult<Member, InstanceInvocationExpression> copyWithCallSites =
copyWithScanner.scan(component);
for (Member memberWithCopyWith in copyWithCallSites.targets.keys) {
- Map<MethodInvocation, ScanResult<TreeNode?, TreeNode?>?>? targets =
- copyWithCallSites.targets[memberWithCopyWith]?.targets;
+ Map<InstanceInvocationExpression, ScanResult<TreeNode?, TreeNode?>?>?
+ targets = copyWithCallSites.targets[memberWithCopyWith]?.targets;
if (targets != null) {
StaticTypeContext staticTypeContext =
StaticTypeContext(memberWithCopyWith, typeEnvironment);
- for (MethodInvocation copyWithCall in targets.keys) {
+ for (InstanceInvocationExpression copyWithCall in targets.keys) {
AsExpression receiver = copyWithCall.receiver as AsExpression;
Expression valueClassInstance = receiver.operand;
@@ -387,7 +415,8 @@
Class valueClass = valueClassType.classNode;
if (isValueClass(valueClass)) {
treatCopyWithCallSite(
- valueClass, copyWithCall, coreTypes, hierarchy);
+ valueClass, copyWithCall, coreTypes, hierarchy,
+ useNewMethodInvocationEncoding: useNewMethodInvocationEncoding);
}
}
}
@@ -395,8 +424,12 @@
}
}
-void treatCopyWithCallSite(Class valueClass, MethodInvocation copyWithCall,
- CoreTypes coreTypes, ClassHierarchy hierarchy) {
+void treatCopyWithCallSite(
+ Class valueClass,
+ InstanceInvocationExpression copyWithCall,
+ CoreTypes coreTypes,
+ ClassHierarchy hierarchy,
+ {required bool useNewMethodInvocationEncoding}) {
Map<String, Expression> preTransformationArguments = new Map();
for (NamedExpression argument in copyWithCall.arguments.named) {
preTransformationArguments[argument.name] = argument.value;
@@ -419,15 +452,18 @@
argument.name!, preTransformationArguments[argument.name]!)
..parent = postTransformationArguments);
} else {
- postTransformationArguments.named.add(NamedExpression(argument.name!,
- PropertyGet(VariableGet(letVariable), Name(argument.name!)))
+ postTransformationArguments.named.add(NamedExpression(
+ argument.name!,
+ _createGet(VariableGet(letVariable), Name(argument.name!),
+ useNewMethodInvocationEncoding: useNewMethodInvocationEncoding))
..parent = postTransformationArguments);
}
}
copyWithCall.replaceWith(Let(
letVariable,
- MethodInvocation(VariableGet(letVariable), Name("copyWith"),
- postTransformationArguments)));
+ _createInvocation(VariableGet(letVariable), Name("copyWith"),
+ postTransformationArguments,
+ useNewMethodInvocationEncoding: useNewMethodInvocationEncoding)));
}
bool isValueClass(Class node) {
@@ -442,3 +478,52 @@
}
return false;
}
+
+// TODO(johnniwinther): Ensure correct invocation function type and instance
+// access kind on InstanceInvocation.
+Expression _createInvocation(
+ Expression receiver, Name name, Arguments arguments,
+ {Procedure? interfaceTarget,
+ required bool useNewMethodInvocationEncoding}) {
+ if (useNewMethodInvocationEncoding) {
+ if (interfaceTarget != null) {
+ return InstanceInvocation(
+ InstanceAccessKind.Instance, receiver, name, arguments,
+ interfaceTarget: interfaceTarget,
+ functionType: interfaceTarget.getterType as FunctionType);
+ } else {
+ return DynamicInvocation(
+ DynamicAccessKind.Dynamic, receiver, name, arguments);
+ }
+ } else {
+ return MethodInvocation(receiver, name, arguments, interfaceTarget);
+ }
+}
+
+Expression _createEquals(Expression left, Expression right,
+ {required Procedure interfaceTarget,
+ required bool useNewMethodInvocationEncoding}) {
+ if (useNewMethodInvocationEncoding) {
+ return EqualsCall(left, right,
+ interfaceTarget: interfaceTarget,
+ functionType: interfaceTarget.getterType as FunctionType);
+ } else {
+ return MethodInvocation(left, Name('=='), Arguments([right]));
+ }
+}
+
+// TODO(johnniwinther): Ensure correct result type on InstanceGet.
+Expression _createGet(Expression receiver, Name name,
+ {Member? interfaceTarget, required bool useNewMethodInvocationEncoding}) {
+ if (useNewMethodInvocationEncoding) {
+ if (interfaceTarget != null) {
+ return InstanceGet(InstanceAccessKind.Instance, receiver, name,
+ interfaceTarget: interfaceTarget,
+ resultType: interfaceTarget.getterType);
+ } else {
+ return DynamicGet(DynamicAccessKind.Dynamic, receiver, name);
+ }
+ } else {
+ return PropertyGet(receiver, name, interfaceTarget);
+ }
+}
diff --git a/runtime/tests/vm/dart/deopt/indirect_goto_regress_46399_test.dart b/runtime/tests/vm/dart/deopt/indirect_goto_regress_46399_test.dart
new file mode 100644
index 0000000..f28ef6b
--- /dev/null
+++ b/runtime/tests/vm/dart/deopt/indirect_goto_regress_46399_test.dart
@@ -0,0 +1,14 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// VMOptions=--deterministic --deoptimize-on-runtime-call-every=1 --optimization-counter-threshold=1
+
+import 'package:expect/expect.dart';
+
+main() {
+ final res = RegExp('a.*b');
+ for (int i = 0; i < 100; ++i) {
+ Expect.isNull(res.firstMatch('*** Failers'));
+ }
+}
diff --git a/runtime/tests/vm/dart_2/deopt/indirect_goto_regress_46399_test.dart b/runtime/tests/vm/dart_2/deopt/indirect_goto_regress_46399_test.dart
new file mode 100644
index 0000000..f28ef6b
--- /dev/null
+++ b/runtime/tests/vm/dart_2/deopt/indirect_goto_regress_46399_test.dart
@@ -0,0 +1,14 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// VMOptions=--deterministic --deoptimize-on-runtime-call-every=1 --optimization-counter-threshold=1
+
+import 'package:expect/expect.dart';
+
+main() {
+ final res = RegExp('a.*b');
+ for (int i = 0; i < 100; ++i) {
+ Expect.isNull(res.firstMatch('*** Failers'));
+ }
+}
diff --git a/runtime/vm/compiler/aot/precompiler.cc b/runtime/vm/compiler/aot/precompiler.cc
index 5e299f0..568e8fd 100644
--- a/runtime/vm/compiler/aot/precompiler.cc
+++ b/runtime/vm/compiler/aot/precompiler.cc
@@ -1073,9 +1073,9 @@
// We're not retaining the parent due to this function, so wrap it with
// a weak serialization reference.
const auto& data = ClosureData::CheckedHandle(Z, function.data());
- const auto& wsr = WeakSerializationReference::Handle(
- Z, WeakSerializationReference::New(parent_function,
- Object::null_function()));
+ const auto& wsr =
+ Object::Handle(Z, WeakSerializationReference::New(
+ parent_function, Object::null_function()));
data.set_parent_function(wsr);
}
diff --git a/runtime/vm/compiler/backend/il.h b/runtime/vm/compiler/backend/il.h
index 750271b..9a6ac0d 100644
--- a/runtime/vm/compiler/backend/il.h
+++ b/runtime/vm/compiler/backend/il.h
@@ -3180,28 +3180,39 @@
// IndirectGotoInstr represents a dynamically computed jump. Only
// IndirectEntryInstr targets are valid targets of an indirect goto. The
-// concrete target to jump to is given as a parameter to the indirect goto.
+// concrete target index to jump to is given as a parameter to the indirect
+// goto.
//
// In order to preserve split-edge form, an indirect goto does not itself point
// to its targets. Instead, for each possible target, the successors_ field
// will contain an ordinary goto instruction that jumps to the target.
// TODO(zerny): Implement direct support instead of embedding gotos.
//
-// Byte offsets of all possible targets are stored in the offsets_ array. The
-// desired offset is looked up while the generated code is executing, and passed
-// to IndirectGoto as an input.
+// The input to the [IndirectGotoInstr] is the target index to jump to.
+// All targets of the [IndirectGotoInstr] are added via [AddSuccessor] and get
+// increasing indices.
+//
+// The FlowGraphCompiler will - as a post-processing step - invoke
+// [ComputeOffsetTable] of all [IndirectGotoInstr]s. In there we initialize a
+// TypedDataInt32Array containing offsets of all [IndirectEntryInstr]s (the
+// offests are relative to start of the instruction payload).
+//
+// => See `FlowGraphCompiler::CompileGraph()`
+// => See `IndirectGotoInstr::ComputeOffsetTable`
class IndirectGotoInstr : public TemplateInstruction<1, NoThrow> {
public:
- IndirectGotoInstr(const TypedData* offsets, Value* offset_from_start)
- : offsets_(*offsets) {
- SetInputAt(0, offset_from_start);
+ IndirectGotoInstr(intptr_t target_count, Value* target_index)
+ : offsets_(TypedData::ZoneHandle(TypedData::New(kTypedDataInt32ArrayCid,
+ target_count,
+ Heap::kOld))) {
+ SetInputAt(0, target_index);
}
DECLARE_INSTRUCTION(IndirectGoto)
virtual Representation RequiredInputRepresentation(intptr_t idx) const {
ASSERT(idx == 0);
- return kNoRepresentation;
+ return kTagged;
}
void AddSuccessor(TargetEntryInstr* successor) {
diff --git a/runtime/vm/compiler/backend/il_arm.cc b/runtime/vm/compiler/backend/il_arm.cc
index a0d6420..07999cc 100644
--- a/runtime/vm/compiler/backend/il_arm.cc
+++ b/runtime/vm/compiler/backend/il_arm.cc
@@ -7404,31 +7404,38 @@
LocationSummary* IndirectGotoInstr::MakeLocationSummary(Zone* zone,
bool opt) const {
const intptr_t kNumInputs = 1;
- const intptr_t kNumTemps = 1;
+ const intptr_t kNumTemps = 2;
LocationSummary* summary = new (zone)
LocationSummary(zone, kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresRegister());
summary->set_temp(0, Location::RequiresRegister());
+ summary->set_temp(1, Location::RequiresRegister());
return summary;
}
void IndirectGotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- Register target_address_reg = locs()->temp_slot(0)->reg();
+ Register index_reg = locs()->in(0).reg();
+ Register target_address_reg = locs()->temp(0).reg();
+ Register offset_reg = locs()->temp(1).reg();
+
+ ASSERT(RequiredInputRepresentation(0) == kTagged);
+ __ LoadObject(offset_reg, offsets_);
+ const auto element_address = __ ElementAddressForRegIndex(
+ /*is_load=*/true,
+ /*is_external=*/false, kTypedDataInt32ArrayCid,
+ /*index_scale=*/4,
+ /*index_unboxed=*/false, offset_reg, index_reg);
+ __ ldr(offset_reg, element_address);
// Offset is relative to entry pc.
const intptr_t entry_to_pc_offset = __ CodeSize() + Instr::kPCReadOffset;
__ mov(target_address_reg, compiler::Operand(PC));
__ AddImmediate(target_address_reg, -entry_to_pc_offset);
- // Add the offset.
- Register offset_reg = locs()->in(0).reg();
- compiler::Operand offset_opr =
- (offset()->definition()->representation() == kTagged)
- ? compiler::Operand(offset_reg, ASR, kSmiTagSize)
- : compiler::Operand(offset_reg);
- __ add(target_address_reg, target_address_reg, offset_opr);
+
+ __ add(target_address_reg, target_address_reg, compiler::Operand(offset_reg));
// Jump to the absolute address.
__ bx(target_address_reg);
diff --git a/runtime/vm/compiler/backend/il_arm64.cc b/runtime/vm/compiler/backend/il_arm64.cc
index 8402871..b66dd0b 100644
--- a/runtime/vm/compiler/backend/il_arm64.cc
+++ b/runtime/vm/compiler/backend/il_arm64.cc
@@ -6420,19 +6420,30 @@
LocationSummary* IndirectGotoInstr::MakeLocationSummary(Zone* zone,
bool opt) const {
const intptr_t kNumInputs = 1;
- const intptr_t kNumTemps = 1;
+ const intptr_t kNumTemps = 2;
LocationSummary* summary = new (zone)
LocationSummary(zone, kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresRegister());
summary->set_temp(0, Location::RequiresRegister());
+ summary->set_temp(1, Location::RequiresRegister());
return summary;
}
void IndirectGotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- Register target_address_reg = locs()->temp_slot(0)->reg();
+ Register index_reg = locs()->in(0).reg();
+ Register target_address_reg = locs()->temp(0).reg();
+ Register offset_reg = locs()->temp(1).reg();
+
+ ASSERT(RequiredInputRepresentation(0) == kTagged);
+ __ LoadObject(offset_reg, offsets_);
+ const auto element_address = __ ElementAddressForRegIndex(
+ /*is_external=*/false, kTypedDataInt32ArrayCid,
+ /*index_scale=*/4,
+ /*index_unboxed=*/false, offset_reg, index_reg, TMP);
+ __ ldr(offset_reg, element_address, compiler::kFourBytes);
// Load code entry point.
const intptr_t entry_offset = __ CodeSize();
@@ -6443,13 +6454,7 @@
__ AddImmediate(target_address_reg, -entry_offset);
}
- // Add the offset.
- Register offset_reg = locs()->in(0).reg();
- compiler::Operand offset_opr =
- (offset()->definition()->representation() == kTagged)
- ? compiler::Operand(offset_reg, ASR, kSmiTagSize)
- : compiler::Operand(offset_reg);
- __ add(target_address_reg, target_address_reg, offset_opr);
+ __ add(target_address_reg, target_address_reg, compiler::Operand(offset_reg));
// Jump to the absolute address.
__ br(target_address_reg);
diff --git a/runtime/vm/compiler/backend/il_ia32.cc b/runtime/vm/compiler/backend/il_ia32.cc
index d165691..d51429f 100644
--- a/runtime/vm/compiler/backend/il_ia32.cc
+++ b/runtime/vm/compiler/backend/il_ia32.cc
@@ -6477,19 +6477,29 @@
LocationSummary* IndirectGotoInstr::MakeLocationSummary(Zone* zone,
bool opt) const {
const intptr_t kNumInputs = 1;
- const intptr_t kNumTemps = 1;
+ const intptr_t kNumTemps = 2;
LocationSummary* summary = new (zone)
LocationSummary(zone, kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresRegister());
summary->set_temp(0, Location::RequiresRegister());
+ summary->set_temp(1, Location::RequiresRegister());
return summary;
}
void IndirectGotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- Register target_reg = locs()->temp_slot(0)->reg();
+ Register index_reg = locs()->in(0).reg();
+ Register target_reg = locs()->temp(0).reg();
+ Register offset = locs()->temp(1).reg();
+
+ ASSERT(RequiredInputRepresentation(0) == kTagged);
+ __ LoadObject(offset, offsets_);
+ __ movl(offset, compiler::Assembler::ElementAddressForRegIndex(
+ /*is_external=*/false, kTypedDataInt32ArrayCid,
+ /*index_scale=*/4,
+ /*index_unboxed=*/false, offset, index_reg));
// Load code object from frame.
__ movl(target_reg,
@@ -6501,13 +6511,7 @@
target_reg, Code::saved_instructions_offset()));
__ addl(target_reg,
compiler::Immediate(Instructions::HeaderSize() - kHeapObjectTag));
-
- // Add the offset.
- Register offset_reg = locs()->in(0).reg();
- if (offset()->definition()->representation() == kTagged) {
- __ SmiUntag(offset_reg);
- }
- __ addl(target_reg, offset_reg);
+ __ addl(target_reg, offset);
// Jump to the absolute address.
__ jmp(target_reg);
diff --git a/runtime/vm/compiler/backend/il_x64.cc b/runtime/vm/compiler/backend/il_x64.cc
index da71487..0fb1260 100644
--- a/runtime/vm/compiler/backend/il_x64.cc
+++ b/runtime/vm/compiler/backend/il_x64.cc
@@ -6845,27 +6845,36 @@
}
void IndirectGotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- Register offset_reg = locs()->in(0).reg();
- Register target_address_reg = locs()->temp(0).reg();
+ Register index_reg = locs()->in(0).reg();
+ Register offset_reg = locs()->temp(0).reg();
+
+ ASSERT(RequiredInputRepresentation(0) == kTagged);
+#if defined(DART_COMPRESSED_POINTERS)
+ // The upper half of a compressed Smi contains undefined bits, but no x64
+ // addressing mode will ignore these bits. Assume that the index is
+ // non-negative and clear the upper bits, which is shorter than
+ // sign-extension (movsxd). Note: we don't bother to ensure index is a
+ // writable input because any other instructions using it must also not
+ // rely on the upper bits.
+ __ orl(index_reg, index_reg);
+#endif
+ __ LoadObject(offset_reg, offsets_);
+ __ movsxd(offset_reg, compiler::Assembler::ElementAddressForRegIndex(
+ /*is_external=*/false, kTypedDataInt32ArrayCid,
+ /*index_scale=*/4,
+ /*index_unboxed=*/false, offset_reg, index_reg));
{
const intptr_t kRIPRelativeLeaqSize = 7;
const intptr_t entry_to_rip_offset = __ CodeSize() + kRIPRelativeLeaqSize;
- __ leaq(target_address_reg,
- compiler::Address::AddressRIPRelative(-entry_to_rip_offset));
+ __ leaq(TMP, compiler::Address::AddressRIPRelative(-entry_to_rip_offset));
ASSERT(__ CodeSize() == entry_to_rip_offset);
}
- // Load from FP+compiler::target::frame_layout.code_from_fp.
-
- // Calculate the final absolute address.
- if (offset()->definition()->representation() == kTagged) {
- __ SmiUntag(offset_reg);
- }
- __ addq(target_address_reg, offset_reg);
+ __ addq(TMP, offset_reg);
// Jump to the absolute address.
- __ jmp(target_address_reg);
+ __ jmp(TMP);
}
LocationSummary* StrictCompareInstr::MakeLocationSummary(Zone* zone,
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
index 4b33c48..226faffb 100644
--- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
+++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
@@ -541,23 +541,9 @@
IndirectGotoInstr* indirect_goto;
if (FLAG_async_igoto_threshold >= 0 &&
continuation_count >= FLAG_async_igoto_threshold) {
- const auto& offsets = TypedData::ZoneHandle(
- Z, TypedData::New(kTypedDataInt32ArrayCid, continuation_count,
- Heap::kOld));
-
- dispatch += Constant(offsets);
dispatch += LoadLocal(scopes()->switch_variable);
-
- // Ideally this would just be LoadIndexed(kTypedDataInt32ArrayCid),
- // but that doesn't work in unoptimised code.
- // The optimiser will turn this into that in any case.
- dispatch += InstanceCall(TokenPosition::kNoSource, Symbols::IndexToken(),
- Token::kINDEX, /*argument_count=*/2);
-
- Value* offset_from_start = Pop();
-
- indirect_goto = new (Z) IndirectGotoInstr(&offsets, offset_from_start);
- dispatch <<= indirect_goto;
+ dispatch += IndirectGoto(continuation_count);
+ indirect_goto = dispatch.current->AsIndirectGoto();
for (intptr_t i = 0; i < continuation_count; i++) {
if (i >= 1) {
@@ -1533,6 +1519,10 @@
return flow_graph_builder_->LoadLocal(variable);
}
+Fragment StreamingFlowGraphBuilder::IndirectGoto(intptr_t target_count) {
+ return flow_graph_builder_->IndirectGoto(target_count);
+}
+
Fragment StreamingFlowGraphBuilder::Return(TokenPosition position,
intptr_t yield_index) {
return flow_graph_builder_->Return(position, /*omit_result_type_check=*/false,
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h
index f53e58c..36cae3e 100644
--- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h
+++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.h
@@ -153,6 +153,7 @@
void InlineBailout(const char* reason);
Fragment DebugStepCheck(TokenPosition position);
Fragment LoadLocal(LocalVariable* variable);
+ Fragment IndirectGoto(intptr_t target_count);
Fragment Return(
TokenPosition position,
intptr_t yield_index = UntaggedPcDescriptors::kInvalidYieldIndex);
diff --git a/runtime/vm/compiler/frontend/kernel_to_il.cc b/runtime/vm/compiler/frontend/kernel_to_il.cc
index 0261e82..a09201c 100644
--- a/runtime/vm/compiler/frontend/kernel_to_il.cc
+++ b/runtime/vm/compiler/frontend/kernel_to_il.cc
@@ -446,6 +446,11 @@
}
}
+Fragment FlowGraphBuilder::IndirectGoto(intptr_t target_count) {
+ Value* index = Pop();
+ return Fragment(new (Z) IndirectGotoInstr(target_count, index));
+}
+
Fragment FlowGraphBuilder::ThrowLateInitializationError(
TokenPosition position,
const char* throw_method_name,
diff --git a/runtime/vm/compiler/frontend/kernel_to_il.h b/runtime/vm/compiler/frontend/kernel_to_il.h
index ced5185..7f606e4 100644
--- a/runtime/vm/compiler/frontend/kernel_to_il.h
+++ b/runtime/vm/compiler/frontend/kernel_to_il.h
@@ -196,6 +196,7 @@
Fragment ThrowException(TokenPosition position);
Fragment RethrowException(TokenPosition position, int catch_try_index);
Fragment LoadLocal(LocalVariable* variable);
+ Fragment IndirectGoto(intptr_t target_count);
Fragment StoreLateField(const Field& field,
LocalVariable* instance,
LocalVariable* setter_value);
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index fbc6aba..477963e 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -192,6 +192,22 @@
buffer->Printf("%.*s", static_cast<int>(len), &name[start_pos]);
}
+#if defined(DART_PRECOMPILER)
+#define PRECOMPILER_WSR_FIELD_DEFINITION(Class, Type, Name) \
+ Type##Ptr Class::Name() const { \
+ return Type::RawCast(WeakSerializationReference::Unwrap(untag()->Name())); \
+ }
+#else
+#define PRECOMPILER_WSR_FIELD_DEFINITION(Class, Type, Name) \
+ void Class::set_##Name(const Type& value) const { \
+ untag()->set_##Name(value.ptr()); \
+ }
+#endif
+
+PRECOMPILER_WSR_FIELD_DEFINITION(ClosureData, Function, parent_function)
+
+#undef PRECOMPILER_WSR_FIELD_DEFINITION
+
// Remove private keys, but retain getter/setter/constructor/mixin manglings.
StringPtr String::RemovePrivateKey(const String& name) {
ASSERT(name.IsOneByteString());
@@ -7354,14 +7370,7 @@
if (!IsClosureFunction()) return Function::null();
Object& obj = Object::Handle(untag()->data());
ASSERT(!obj.IsNull());
-#if defined(DART_PRECOMPILER)
- obj = ClosureData::Cast(obj).parent_function();
- obj = WeakSerializationReference::Unwrap(obj);
- if (!obj.IsFunction()) return Function::null();
- return Function::RawCast(obj.ptr());
-#else
return ClosureData::Cast(obj).parent_function();
-#endif
}
void Function::set_parent_function(const Function& value) const {
@@ -10295,16 +10304,6 @@
untag()->set_closure<std::memory_order_release>(closure.ptr());
}
-#if defined(DART_PRECOMPILER)
-void ClosureData::set_parent_function(const Object& value) const {
- untag()->set_parent_function(value.ptr());
-}
-#else
-void ClosureData::set_parent_function(const Function& value) const {
- untag()->set_parent_function(value.ptr());
-}
-#endif
-
void FfiTrampolineData::set_c_signature(const FunctionType& value) const {
untag()->set_c_signature(value.ptr());
}
@@ -16504,10 +16503,24 @@
return Object::Handle(target()).ToCString();
}
-WeakSerializationReferencePtr WeakSerializationReference::New(
- const Object& target,
- const Object& replacement) {
+ObjectPtr WeakSerializationReference::New(const Object& target,
+ const Object& replacement) {
ASSERT(Object::weak_serialization_reference_class() != Class::null());
+ // Don't wrap any object in the VM heap, as all objects in the VM isolate
+ // heap are currently serialized.
+ //
+ // Note that we _do_ wrap Smis if requested. Smis are serialized in the Mint
+ // cluster, and so dropping them if not strongly referenced saves space in
+ // the snapshot.
+ if (target.ptr()->IsHeapObject() && target.InVMIsolateHeap()) {
+ return target.ptr();
+ }
+ // If the target is a WSR that already uses the replacement, then return it.
+ if (target.IsWeakSerializationReference() &&
+ WeakSerializationReference::Cast(target).replacement() ==
+ replacement.ptr()) {
+ return target.ptr();
+ }
WeakSerializationReference& result = WeakSerializationReference::Handle();
{
ObjectPtr raw = Object::Allocate(
@@ -16517,7 +16530,10 @@
NoSafepointScope no_safepoint;
result ^= raw;
- result.untag()->set_target(target.ptr());
+ // Don't nest WSRs, instead just use the old WSR's target.
+ result.untag()->set_target(target.IsWeakSerializationReference()
+ ? WeakSerializationReference::Unwrap(target)
+ : target.ptr());
result.untag()->set_replacement(replacement.ptr());
}
return result.ptr();
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 70dcdcc..e5a26b3 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -873,6 +873,18 @@
DISALLOW_COPY_AND_ASSIGN(Object);
};
+#if defined(DART_PRECOMPILER)
+#define PRECOMPILER_WSR_FIELD_DECLARATION(Type, Name) \
+ Type##Ptr Name() const; \
+ void set_##Name(const Object& value) const { \
+ untag()->set_##Name(value.ptr()); \
+ }
+#else
+#define PRECOMPILER_WSR_FIELD_DECLARATION(Type, Name) \
+ Type##Ptr Name() const { return untag()->Name(); } \
+ void set_##Name(const Type& value) const;
+#endif
+
class PassiveObject : public Object {
public:
void operator=(ObjectPtr value) { ptr_ = value; }
@@ -3824,14 +3836,7 @@
void set_context_scope(const ContextScope& value) const;
// Enclosing function of this local function.
-#if defined(DART_PRECOMPILER)
- // Can be WSR wrapped in the precompiler.
- ObjectPtr parent_function() const { return untag()->parent_function(); }
- void set_parent_function(const Object& value) const;
-#else
- FunctionPtr parent_function() const { return untag()->parent_function(); }
- void set_parent_function(const Function& value) const;
-#endif
+ PRECOMPILER_WSR_FIELD_DECLARATION(Function, parent_function)
ClosurePtr implicit_static_closure() const {
return untag()->closure<std::memory_order_acquire>();
@@ -6011,29 +6016,25 @@
// A WeakSerializationReference (WSR) denotes a type of weak reference to a
// target object. In particular, objects that can only be reached from roots via
-// WSR edges during serialization of AOT snapshots should not be serialized. Of
-// course, the target object may still be serialized if there are paths to the
-// object from the roots that do not go through one of these objects, in which
-// case the WSR is discarded in favor of a direct reference during serialization
-// to avoid runtime overhead.
+// WSR edges during serialization of AOT snapshots should not be serialized, but
+// instead references to these objects should be replaced with a reference to
+// the provided replacement object.
//
-// Note: Some objects cannot be dropped during AOT serialization, and thus
-// Wrap() may return the original object in some cases. The CanWrap()
-// function returns false if Wrap() will return the original object.
-// In particular, the null object will never be wrapped, so receiving
-// Object::null() from target() means the WSR represents a dropped target.
+// Of course, the target object may still be serialized if there are paths to
+// the object from the roots that do not go through one of these objects. In
+// this case, references through WSRs are serialized as direct references to
+// the target.
//
-// Unfortunately a WSR is not a proxy for the original object, so if WSRs may
-// appear as field contents (currently only possible for ObjectPtr fields),
-// then code that accesses that field must handle the case where an WSR has
-// been introduced. Before serialization, Unwrap can be used to take a
-// Object reference or RawObject pointer and remove any WSR wrapping before use.
-// After deserialization, any WSRs no longer contain a pointer to the target,
-// but instead contain only the class ID of the original target.
+// Unfortunately a WSR is not a proxy for the original object, so WSRs may
+// only currently be used with ObjectPtr fields. To ease this situation for
+// fields that are normally a non-ObjectPtr type outside of the precompiler,
+// use the following macros, which avoid the need to adjust other code to
+// handle the WSR case:
//
-// Current uses of WSRs:
-// * Code::owner_
-// * Canonical table elements
+// * WSR_*POINTER_FIELD() in raw_object.h (i.e., just append WSR_ to the
+// original field declaration).
+// * PRECOMPILER_WSR_FIELD_DECLARATION() in object.h
+// * PRECOMPILER_WSR_FIELD_DEFINITION() in object.cc
class WeakSerializationReference : public Object {
public:
ObjectPtr target() const { return TargetOf(ptr()); }
@@ -6057,11 +6058,15 @@
return RoundedAllocationSize(sizeof(UntaggedWeakSerializationReference));
}
- static WeakSerializationReferencePtr New(const Object& target,
- const Object& replacement);
+ // Returns an ObjectPtr as the target may not need wrapping (e.g., it
+ // is guaranteed to be serialized).
+ static ObjectPtr New(const Object& target, const Object& replacement);
private:
FINAL_HEAP_OBJECT_IMPLEMENTATION(WeakSerializationReference, Object);
+
+ ObjectPtr replacement() const { return untag()->replacement(); }
+
friend class Class;
};
@@ -12022,6 +12027,8 @@
DART_WARN_UNUSED_RESULT
ErrorPtr EntryPointMemberInvocationError(const Object& member);
+#undef PRECOMPILER_WSR_FIELD_DECLARATION
+
} // namespace dart
#endif // RUNTIME_VM_OBJECT_H_
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index 19e2383..f928b2b 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -993,6 +993,14 @@
protected: \
Compressed##type name##_;
+#if defined(DART_PRECOMPILER)
+#define WSR_COMPRESSED_POINTER_FIELD(Type, Name) \
+ COMPRESSED_POINTER_FIELD(ObjectPtr, Name)
+#else
+#define WSR_COMPRESSED_POINTER_FIELD(Type, Name) \
+ COMPRESSED_POINTER_FIELD(Type, Name)
+#endif
+
class UntaggedClass : public UntaggedObject {
public:
enum ClassFinalizedState {
@@ -1425,12 +1433,7 @@
COMPRESSED_POINTER_FIELD(ContextScopePtr, context_scope)
VISIT_FROM(context_scope)
// Enclosing function of this local function.
-#if defined(DART_PRECOMPILER)
- // Can be wrapped by a WSR in the precompiler.
- COMPRESSED_POINTER_FIELD(ObjectPtr, parent_function)
-#else
- COMPRESSED_POINTER_FIELD(FunctionPtr, parent_function)
-#endif
+ WSR_COMPRESSED_POINTER_FIELD(FunctionPtr, parent_function)
// Closure object for static implicit closures.
COMPRESSED_POINTER_FIELD(ClosurePtr, closure)
VISIT_TO(closure)
@@ -3347,6 +3350,8 @@
friend class SnapshotReader;
};
+#undef WSR_COMPRESSED_POINTER_FIELD
+
} // namespace dart
#endif // RUNTIME_VM_RAW_OBJECT_H_
diff --git a/runtime/vm/regexp_assembler_ir.cc b/runtime/vm/regexp_assembler_ir.cc
index 552fc72..60dc2c6 100644
--- a/runtime/vm/regexp_assembler_ir.cc
+++ b/runtime/vm/regexp_assembler_ir.cc
@@ -216,17 +216,8 @@
const intptr_t entries_count = entry_block_->indirect_entries().length();
- TypedData& offsets = TypedData::ZoneHandle(
- Z, TypedData::New(kTypedDataInt32ArrayCid, entries_count, Heap::kOld));
-
- Value* block_offsets_push = Bind(new (Z) ConstantInstr(offsets));
Value* block_id_push = Bind(PopStack());
-
- Value* offset_value =
- Bind(InstanceCall(InstanceCallDescriptor::FromToken(Token::kINDEX),
- block_offsets_push, block_id_push));
-
- backtrack_goto_ = new (Z) IndirectGotoInstr(&offsets, offset_value);
+ backtrack_goto_ = new (Z) IndirectGotoInstr(entries_count, block_id_push);
CloseBlockWith(backtrack_goto_);
// Add an edge from the "indirect" goto to each of the targets.
diff --git a/sdk/lib/async/future_impl.dart b/sdk/lib/async/future_impl.dart
index c89d345..d005f24 100644
--- a/sdk/lib/async/future_impl.dart
+++ b/sdk/lib/async/future_impl.dart
@@ -170,13 +170,32 @@
var errorCallback = this.errorCallback; // To enable promotion.
// If the errorCallback returns something which is not a FutureOr<T>,
// this return statement throws, and the caller handles the error.
+ dynamic result;
if (errorCallback is dynamic Function(Object, StackTrace)) {
- return _zone.runBinary<dynamic, Object, StackTrace>(
+ result = _zone.runBinary<dynamic, Object, StackTrace>(
errorCallback, asyncError.error, asyncError.stackTrace);
} else {
- return _zone.runUnary<dynamic, Object>(
+ result = _zone.runUnary<dynamic, Object>(
errorCallback as dynamic, asyncError.error);
}
+ // Give better error messages if the result is not a valid
+ // FutureOr<T>.
+ try {
+ return result;
+ } on TypeError {
+ if (handlesValue) {
+ // This is a `.then` callback with an `onError`.
+ throw ArgumentError(
+ "The error handler of Future.then"
+ " must return a value of the returned future's type",
+ "onError");
+ }
+ // This is a `catchError` callback.
+ throw ArgumentError(
+ "The error handler of "
+ "Future.catchError must return a value of the future's type",
+ "onError");
+ }
}
dynamic handleWhenComplete() {
@@ -315,10 +334,20 @@
Future<R> then<R>(FutureOr<R> f(T value), {Function? onError}) {
Zone currentZone = Zone.current;
- if (!identical(currentZone, _rootZone)) {
+ if (identical(currentZone, _rootZone)) {
+ if (onError != null &&
+ onError is! Function(Object, StackTrace) &&
+ onError is! Function(Object)) {
+ throw ArgumentError.value(
+ onError,
+ "onError",
+ "Error handler must accept one Object or one Object and a StackTrace"
+ " as arguments, and return a value of the returned future's type");
+ }
+ } else {
f = currentZone.registerUnaryCallback<FutureOr<R>, T>(f);
if (onError != null) {
- // In checked mode, this checks that onError is assignable to one of:
+ // This call also checks that onError is assignable to one of:
// dynamic Function(Object)
// dynamic Function(Object, StackTrace)
onError = _registerErrorHandler(onError, currentZone);
@@ -873,9 +902,9 @@
if (errorHandler is dynamic Function(Object)) {
return zone.registerUnaryCallback<dynamic, Object>(errorHandler);
}
- throw new ArgumentError.value(
+ throw ArgumentError.value(
errorHandler,
"onError",
"Error handler must accept one Object or one Object and a StackTrace"
- " as arguments, and return a valid result");
+ " as arguments, and return a value of the returned future's type");
}
diff --git a/sdk/lib/async/stream.dart b/sdk/lib/async/stream.dart
index 4851883..d03e095 100644
--- a/sdk/lib/async/stream.dart
+++ b/sdk/lib/async/stream.dart
@@ -661,6 +661,14 @@
/// If a broadcast stream is listened to more than once, each subscription
/// will individually perform the `test` and handle the error.
Stream<T> handleError(Function onError, {bool test(error)?}) {
+ if (onError is! void Function(Object, StackTrace) &&
+ onError is! void Function(Object)) {
+ throw ArgumentError.value(
+ onError,
+ "onError",
+ "Error handler must accept one Object or one Object and a StackTrace"
+ " as arguments.");
+ }
return new _HandleErrorStream<T>(this, onError, test);
}
diff --git a/sdk/lib/async/stream_pipe.dart b/sdk/lib/async/stream_pipe.dart
index 60aff7e..4533043 100644
--- a/sdk/lib/async/stream_pipe.dart
+++ b/sdk/lib/async/stream_pipe.dart
@@ -243,14 +243,11 @@
/// A stream pipe that converts or disposes error events
/// before passing them on.
class _HandleErrorStream<T> extends _ForwardingStream<T, T> {
- final Function _transform;
+ final Function _onError;
final bool Function(Object)? _test;
- _HandleErrorStream(
- Stream<T> source, Function onError, bool test(Object error)?)
- : this._transform = onError,
- this._test = test,
- super(source);
+ _HandleErrorStream(Stream<T> source, this._onError, this._test)
+ : super(source);
void _handleData(T data, _EventSink<T> sink) {
sink._add(data);
@@ -269,7 +266,7 @@
}
if (matches) {
try {
- _invokeErrorHandler(_transform, error, stackTrace);
+ _invokeErrorHandler(_onError, error, stackTrace);
} catch (e, s) {
if (identical(e, error)) {
sink._addError(error, stackTrace);
diff --git a/sdk/lib/core/errors.dart b/sdk/lib/core/errors.dart
index 683267d..3770a2b 100644
--- a/sdk/lib/core/errors.dart
+++ b/sdk/lib/core/errors.dart
@@ -146,11 +146,16 @@
/// Existing code may be using `message` to hold the invalid value.
/// If the `message` is not a [String], it is assumed to be a value instead
/// of a message.
+ ///
+ /// If [name] is provided, it should be the name of the parameter
+ /// which was invalid.
+ ///
+ /// Consider using [ArgumentError.value] instead to retain and document the
+ /// invalid value as well.
@pragma("vm:entry-point")
- ArgumentError([this.message])
+ ArgumentError([this.message, @Since("2.14") this.name])
: invalidValue = null,
- _hasValue = false,
- name = null;
+ _hasValue = false;
/// Creates error containing the invalid [value].
///
diff --git a/tools/VERSION b/tools/VERSION
index 2c257e5..c297383 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 14
PATCH 0
-PRERELEASE 238
+PRERELEASE 239
PRERELEASE_PATCH 0
\ No newline at end of file