Cleanup unsound mode from pkg/vm, frontend_server and dart2native

TEST=ci

Change-Id: Ica8b8b68f69e8f4a8cd5af3375da4a9ff0947c35
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/364602
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
This commit is contained in:
Alexander Markov
2024-04-29 14:18:01 +00:00
committed by Commit Queue
parent 54c9b37b8a
commit 9ee25d3ce1
128 changed files with 646 additions and 808 deletions
+2 -11
View File
@@ -72,7 +72,6 @@ Future<void> generateNative({
String? resourcesFile,
String enableExperiment = '',
bool enableAsserts = false,
bool soundNullSafety = true,
bool verbose = false,
String verbosity = 'all',
List<String> extraOptions = const [],
@@ -122,7 +121,6 @@ Future<void> generateNative({
extraGenKernelOptions: [
'--invocation-modes=compile',
'--verbosity=$verbosity',
'--${soundNullSafety ? '' : 'no-'}sound-null-safety',
],
resourcesFile: resourcesFile,
aot: true,
@@ -150,7 +148,6 @@ Future<void> generateNative({
extraGenKernelOptions: [
'--invocation-modes=compile',
'--verbosity=$verbosity',
'--${soundNullSafety ? '' : 'no-'}sound-null-safety',
],
nativeAssets: nativeAssets,
aot: true,
@@ -172,12 +169,8 @@ Future<void> generateNative({
);
}
final extraAotOptions = <String>[
if (!soundNullSafety) '--no-sound-null-safety',
...extraOptions
];
if (verbose) {
print('Generating AOT snapshot. $genSnapshot $extraAotOptions');
print('Generating AOT snapshot. $genSnapshot $extraOptions');
}
final snapshotFile =
kind == Kind.aot ? outputPath : path.join(tempDir.path, 'snapshot.aot');
@@ -186,7 +179,7 @@ Future<void> generateNative({
snapshotFile,
debugPath,
enableAsserts,
extraAotOptions,
extraOptions,
);
if (verbose || snapshotResult.exitCode != 0) {
@@ -260,7 +253,6 @@ Future<void> generateKernel({
// What are the implications of using a product mode kernel
// in a non-product runtime?
bool product = true,
bool soundNullSafety = true,
bool verbose = false,
String? nativeAssets,
String? resourcesFile,
@@ -282,7 +274,6 @@ Future<void> generateKernel({
extraGenKernelOptions: [
'--invocation-modes=compile',
'--verbosity=$verbosity',
'--${soundNullSafety ? '' : 'no-'}sound-null-safety',
],
nativeAssets: nativeAssets,
resourcesFile: resourcesFile,
@@ -235,7 +235,6 @@ class CompileKernelSnapshotCommand extends CompileSubcommandCommand {
enableExperiment: args.enabledExperiments.join(','),
linkPlatform: args.flag('link-platform'),
embedSources: args.flag('embed-sources'),
soundNullSafety: args.flag('sound-null-safety'),
verbose: verbose,
verbosity: args.option('verbosity')!,
);
@@ -518,7 +517,6 @@ Remove debugging information from the output and save it separately to the speci
packages: args.option('packages'),
enableExperiment: args.enabledExperiments.join(','),
enableAsserts: args.flag('enable-asserts'),
soundNullSafety: args.flag('sound-null-safety'),
debugFile: args.option('save-debugging-info'),
verbose: verbose,
verbosity: args.option('verbosity')!,
@@ -20,7 +20,7 @@ static const field core::String var12 = #C5;
static const field core::int var13 = #C2;
static method fn(dynamic error) → core::int {
try {
throw error as{TypeError,Unchecked} core::Object;
throw let dynamic #t1 = error in #t1 == null ?{core::Object} #t1 as{TypeError} core::Object : #t1{core::Object};
}
on core::String catch(no-exception-var) {
return 0;
@@ -31,7 +31,7 @@ static method fn(dynamic error) → core::int {
}
static method fn1(dynamic error) → core::int {
try {
throw error as{TypeError,Unchecked} core::Object;
throw let dynamic #t2 = error in #t2 == null ?{core::Object} #t2 as{TypeError} core::Object : #t2{core::Object};
}
on core::int catch(final core::int e) {
return e;
@@ -44,7 +44,7 @@ static method finallyReturn(dynamic error) → core::int {
try
try {
if(!(error =={core::Object::==}{(core::Object) → core::bool} 1))
throw error as{TypeError,Unchecked} core::Object;
throw let dynamic #t3 = error in #t3 == null ?{core::Object} #t3 as{TypeError} core::Object : #t3{core::Object};
}
on core::int catch(final core::int e) {
return e;
@@ -62,7 +62,7 @@ static method finallyThrow(core::int x) → core::int {
}
static method unhandledThrow(dynamic x) → core::int {
try {
throw x as{TypeError,Unchecked} core::Object;
throw let dynamic #t1 = x in #t1 == null ?{core::Object} #t1 as{TypeError} core::Object : #t1{core::Object};
}
on core::String catch(final core::String e) {
throw e;
@@ -40,20 +40,20 @@ static method test() → dynamic {
self::Class c = new self::Class::•();
(core::int, core::int) → core::int f = invalid-expression "pkg/front_end/testcases/constructor_tearoffs/implicit_instantiation_errors.dart:16:30: Error: A value of type 'int Function(int, int)?' can't be assigned to a variable of type 'int Function(int, int)' because 'int Function(int, int)?' is nullable and 'int Function(int, int)' isn't.
int Function(int, int) f = alias;
^" in (let final <T extends core::Object? = dynamic>(T%, core::int) →? T% #t1 = self::alias in #t1 == null ?{(core::int, core::int) →? core::int} null : #t1{<T extends core::Object? = dynamic>(T%, core::int) → T%}<core::int>) as{TypeError,Unchecked} (core::int, core::int) → core::int;
^" in let (core::int, core::int) →? core::int #t1 = let final <T extends core::Object? = dynamic>(T%, core::int) →? T% #t2 = self::alias in #t2 == null ?{(core::int, core::int) →? core::int} null : #t2{<T extends core::Object? = dynamic>(T%, core::int) → T%}<core::int> in #t1 == null ?{(core::int, core::int) → core::int} #t1 as{TypeError} (core::int, core::int) → core::int : #t1{(core::int, core::int) → core::int};
(core::int, core::int?) →? core::int g;
g = invalid-expression "pkg/front_end/testcases/constructor_tearoffs/implicit_instantiation_errors.dart:18:7: Error: A value of type 'int Function(int, int)?' can't be assigned to a variable of type 'int Function(int, int?)?' because 'int?' is nullable and 'int' isn't.
g = alias;
^" in (let final <T extends core::Object? = dynamic>(T%, core::int) →? T% #t2 = self::alias in #t2 == null ?{(core::int, core::int) →? core::int} null : #t2{<T extends core::Object? = dynamic>(T%, core::int) → T%}<core::int>) as{TypeError,Unchecked} (core::int, core::int?) →? core::int;
^" in (let final <T extends core::Object? = dynamic>(T%, core::int) →? T% #t3 = self::alias in #t3 == null ?{(core::int, core::int) →? core::int} null : #t3{<T extends core::Object? = dynamic>(T%, core::int) → T%}<core::int>) as{TypeError} (core::int, core::int?) →? core::int;
(core::int, core::int?) → core::int h = invalid-expression "pkg/front_end/testcases/constructor_tearoffs/implicit_instantiation_errors.dart:19:27: Error: A value of type 'int Function(int, int)' can't be assigned to a variable of type 'int Function(int, int?)' because 'int?' is nullable and 'int' isn't.
int Function(int, int?) h = c;
^" in ((let final self::Class #t3 = c in #t3 == null ?{<T extends core::Object? = dynamic>(T%, core::int) → T%} null : #t3.{self::Class::call}{<T extends core::Object? = dynamic>(T%, core::int) → T%})<core::int>) as{TypeError,Unchecked} (core::int, core::int?) → core::int;
^" in ((let final self::Class #t4 = c in #t4 == null ?{<T extends core::Object? = dynamic>(T%, core::int) → T%} null : #t4.{self::Class::call}{<T extends core::Object? = dynamic>(T%, core::int) → T%})<core::int>) as{TypeError} (core::int, core::int?) → core::int;
g = invalid-expression "pkg/front_end/testcases/constructor_tearoffs/implicit_instantiation_errors.dart:20:3: Error: A value of type 'int Function(int, int)' can't be assigned to a variable of type 'int Function(int, int?)?' because 'int?' is nullable and 'int' isn't.
g = c;
^" in ((let final self::Class #t4 = c in #t4 == null ?{<T extends core::Object? = dynamic>(T%, core::int) → T%} null : #t4.{self::Class::call}{<T extends core::Object? = dynamic>(T%, core::int) → T%})<core::int>) as{TypeError,Unchecked} (core::int, core::int?) →? core::int;
^" in ((let final self::Class #t5 = c in #t5 == null ?{<T extends core::Object? = dynamic>(T%, core::int) → T%} null : #t5.{self::Class::call}{<T extends core::Object? = dynamic>(T%, core::int) → T%})<core::int>) as{TypeError} (core::int, core::int?) →? core::int;
self::method(invalid-expression "pkg/front_end/testcases/constructor_tearoffs/implicit_instantiation_errors.dart:21:10: Error: The argument type 'int Function(int, int)?' can't be assigned to the parameter type 'int Function(int, int?)' because 'int?' is nullable and 'int' isn't.
method(alias);
^" in (let final <T extends core::Object? = dynamic>(T%, core::int) →? T% #t5 = self::alias in #t5 == null ?{(core::int, core::int) →? core::int} null : #t5{<T extends core::Object? = dynamic>(T%, core::int) → T%}<core::int>) as{TypeError,Unchecked} (core::int, core::int?) → core::int);
^" in (let final <T extends core::Object? = dynamic>(T%, core::int) →? T% #t6 = self::alias in #t6 == null ?{(core::int, core::int) →? core::int} null : #t6{<T extends core::Object? = dynamic>(T%, core::int) → T%}<core::int>) as{TypeError} (core::int, core::int?) → core::int);
}
static method main() → dynamic {}
@@ -84,7 +84,7 @@ class LinkFactory extends core::Object {
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:14:12: Error: The value 'null' can't be returned from a function with return type 'LinkFactory' because 'LinkFactory' is not nullable.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
return null;
^" in null as{TypeError,Unchecked} self::LinkFactory;
^" in let Null #t1 = null in #t1 == null ?{self::LinkFactory} #t1 as{TypeError} self::LinkFactory : #t1{self::LinkFactory};
}
static method _#create#tearOff() → self::LinkFactory
return self::LinkFactory::create();
@@ -388,22 +388,22 @@ static method test<T1 extends core::Object? = dynamic, T2 extends self::A, T3 ex
o = invalid-expression "pkg/front_end/testcases/extension_types/assign_interface_type.dart:39:7: Error: A value of type 'C' can't be assigned to a variable of type 'Object' because 'C' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
o = c; // Error
^" in c as{TypeError,Unchecked} core::Object;
^" in let self::C% /* erasure=core::Object?, declared=! */ #t1 = c in #t1 == null ?{core::Object} #t1 as{TypeError} core::Object : #t1{core::Object};
o = d;
o = invalid-expression "pkg/front_end/testcases/extension_types/assign_interface_type.dart:41:7: Error: A value of type 'D2' can't be assigned to a variable of type 'Object' because 'D2' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
o = d2; // Error
^" in d2 as{TypeError,Unchecked} core::Object;
^" in let self::D2% /* erasure=core::Object, declared=! */ #t2 = d2 in #t2 == null ?{core::Object} #t2 as{TypeError} core::Object : #t2{core::Object};
o = e;
o = f;
o = invalid-expression "pkg/front_end/testcases/extension_types/assign_interface_type.dart:44:7: Error: A value of type 'G<T1>' can't be assigned to a variable of type 'Object' because 'G<T1>' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
o = g1; // Error
^" in g1 as{TypeError,Unchecked} core::Object;
^" in let self::G<self::test::T1%>% /* erasure=self::test::T1%, declared=! */ #t3 = g1 in #t3 == null ?{core::Object} #t3 as{TypeError} core::Object : #t3{core::Object};
o = invalid-expression "pkg/front_end/testcases/extension_types/assign_interface_type.dart:45:7: Error: A value of type 'G<T2>' can't be assigned to a variable of type 'Object' because 'G<T2>' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
o = g2; // Error
^" in g2 as{TypeError,Unchecked} core::Object;
^" in let self::G<self::test::T2>% /* erasure=self::test::T2, declared=! */ #t4 = g2 in #t4 == null ?{core::Object} #t4 as{TypeError} core::Object : #t4{core::Object};
o = g3;
a = invalid-expression "pkg/front_end/testcases/extension_types/assign_interface_type.dart:48:7: Error: A value of type 'Object' can't be assigned to a variable of type 'A'.
- 'Object' is from 'dart:core'.
@@ -208,122 +208,122 @@ static method test1(self::E1% /* erasure=core::Object, declared=! */ e1, self::E
core::Object v1 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:14:15: Error: A value of type 'E1' can't be assigned to a variable of type 'Object' because 'E1' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v1 = e1; // Error.
^" in e1 as{TypeError,Unchecked} core::Object;
^" in let self::E1% /* erasure=core::Object, declared=! */ #t1 = e1 in #t1 == null ?{core::Object} #t1 as{TypeError} core::Object : #t1{core::Object};
e1 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:15:8: Error: The value 'null' can't be assigned to a variable of type 'E1' because 'E1' is not nullable.
e1 = null; // Error.
^" in null as{TypeError,Unchecked} self::E1% /* erasure=core::Object, declared=! */;
^" in let Null #t2 = null in #t2 == null ?{self::E1% /* erasure=core::Object, declared=! */} #t2 as{TypeError} self::E1% /* erasure=core::Object, declared=! */ : #t2{self::E1% /* erasure=core::Object, declared=! */};
core::Object v2 = e2;
e2 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:18:8: Error: The value 'null' can't be assigned to a variable of type 'E2' because 'E2' is not nullable.
e2 = null; // Error.
^" in null as{TypeError,Unchecked} self::E2 /* erasure=core::Object */;
^" in let Null #t3 = null in #t3 == null ?{self::E2 /* erasure=core::Object */} #t3 as{TypeError} self::E2 /* erasure=core::Object */ : #t3{self::E2 /* erasure=core::Object */};
core::Object v3 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:20:15: Error: A value of type 'E3' can't be assigned to a variable of type 'Object' because 'E3' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v3 = e3; // Error.
^" in e3 as{TypeError,Unchecked} core::Object;
^" in let self::E3% /* erasure=core::Object, declared=! */ #t4 = e3 in #t4 == null ?{core::Object} #t4 as{TypeError} core::Object : #t4{core::Object};
e3 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:21:8: Error: The value 'null' can't be assigned to a variable of type 'E3' because 'E3' is not nullable.
e3 = null; // Error.
^" in null as{TypeError,Unchecked} self::E3% /* erasure=core::Object, declared=! */;
^" in let Null #t5 = null in #t5 == null ?{self::E3% /* erasure=core::Object, declared=! */} #t5 as{TypeError} self::E3% /* erasure=core::Object, declared=! */ : #t5{self::E3% /* erasure=core::Object, declared=! */};
core::Object v4 = e4;
e4 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:24:8: Error: The value 'null' can't be assigned to a variable of type 'E4' because 'E4' is not nullable.
e4 = null; // Error.
^" in null as{TypeError,Unchecked} self::E4 /* erasure=core::Object */;
^" in let Null #t6 = null in #t6 == null ?{self::E4 /* erasure=core::Object */} #t6 as{TypeError} self::E4 /* erasure=core::Object */ : #t6{self::E4 /* erasure=core::Object */};
core::Object v5 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:26:15: Error: A value of type 'E5<dynamic>' can't be assigned to a variable of type 'Object' because 'E5<dynamic>' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v5 = e5; // Error.
^" in e5 as{TypeError,Unchecked} core::Object;
^" in let self::E5<dynamic>% /* erasure=dynamic, declared=! */ #t7 = e5 in #t7 == null ?{core::Object} #t7 as{TypeError} core::Object : #t7{core::Object};
e5 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:27:8: Error: The value 'null' can't be assigned to a variable of type 'E5<dynamic>' because 'E5<dynamic>' is not nullable.
e5 = null; // Error.
^" in null as{TypeError,Unchecked} self::E5<dynamic>% /* erasure=dynamic, declared=! */;
^" in let Null #t8 = null in #t8 == null ?{self::E5<dynamic>% /* erasure=dynamic, declared=! */} #t8 as{TypeError} self::E5<dynamic>% /* erasure=dynamic, declared=! */ : #t8{self::E5<dynamic>% /* erasure=dynamic, declared=! */};
core::Object v6 = e6;
e6 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:30:8: Error: The value 'null' can't be assigned to a variable of type 'E6<Object>' because 'E6<Object>' is not nullable.
- 'Object' is from 'dart:core'.
e6 = null; // Error.
^" in null as{TypeError,Unchecked} self::E6<core::Object> /* erasure=core::Object */;
^" in let Null #t9 = null in #t9 == null ?{self::E6<core::Object> /* erasure=core::Object */} #t9 as{TypeError} self::E6<core::Object> /* erasure=core::Object */ : #t9{self::E6<core::Object> /* erasure=core::Object */};
core::Object v7 = e7;
e7 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:33:8: Error: The value 'null' can't be assigned to a variable of type 'E7' because 'E7' is not nullable.
e7 = null; // Error.
^" in null as{TypeError,Unchecked} self::E7 /* erasure=core::num */;
^" in let Null #t10 = null in #t10 == null ?{self::E7 /* erasure=core::num */} #t10 as{TypeError} self::E7 /* erasure=core::num */ : #t10{self::E7 /* erasure=core::num */};
}
static method test2<X1 extends self::E1% /* erasure=core::Object, declared=! */, X2 extends self::E2 /* erasure=core::Object */, X3 extends self::E3% /* erasure=core::Object, declared=! */, X4 extends self::E4 /* erasure=core::Object */, X5 extends self::E5<dynamic>% /* erasure=dynamic, declared=! */, X6 extends self::E6<core::Object> /* erasure=core::Object */, X7 extends self::E7 /* erasure=core::num */>(self::test2::X1% x1, self::test2::X2 x2, self::test2::X3% x3, self::test2::X4 x4, self::test2::X5% x5, self::test2::X6 x6, self::test2::X7 x7) → dynamic {
core::Object v1 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:38:15: Error: A value of type 'X1' can't be assigned to a variable of type 'Object' because 'X1' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v1 = x1; // Error.
^" in x1 as{TypeError,Unchecked} core::Object;
^" in let self::test2::X1% #t11 = x1 in #t11 == null ?{core::Object} #t11 as{TypeError} core::Object : #t11{core::Object};
x1 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:39:8: Error: The value 'null' can't be assigned to a variable of type 'X1' because 'X1' is not nullable.
x1 = null; // Error.
^" in null as{TypeError,Unchecked} Never;
^" in let Null #t12 = null in #t12 == null ?{Never} #t12 as{TypeError} Never : #t12{Never};
core::Object v2 = x2;
x2 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:42:8: Error: The value 'null' can't be assigned to a variable of type 'X2' because 'X2' is not nullable.
x2 = null; // Error.
^" in null as{TypeError,Unchecked} Never;
^" in let Null #t13 = null in #t13 == null ?{Never} #t13 as{TypeError} Never : #t13{Never};
core::Object v3 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:44:15: Error: A value of type 'X3' can't be assigned to a variable of type 'Object' because 'X3' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v3 = x3; // Error.
^" in x3 as{TypeError,Unchecked} core::Object;
^" in let self::test2::X3% #t14 = x3 in #t14 == null ?{core::Object} #t14 as{TypeError} core::Object : #t14{core::Object};
x3 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:45:8: Error: The value 'null' can't be assigned to a variable of type 'X3' because 'X3' is not nullable.
x3 = null; // Error.
^" in null as{TypeError,Unchecked} Never;
^" in let Null #t15 = null in #t15 == null ?{Never} #t15 as{TypeError} Never : #t15{Never};
core::Object v4 = x4;
x4 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:48:8: Error: The value 'null' can't be assigned to a variable of type 'X4' because 'X4' is not nullable.
x4 = null; // Error.
^" in null as{TypeError,Unchecked} Never;
^" in let Null #t16 = null in #t16 == null ?{Never} #t16 as{TypeError} Never : #t16{Never};
core::Object v5 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:50:15: Error: A value of type 'X5' can't be assigned to a variable of type 'Object' because 'X5' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v5 = x5; // Error.
^" in x5 as{TypeError,Unchecked} core::Object;
^" in let self::test2::X5% #t17 = x5 in #t17 == null ?{core::Object} #t17 as{TypeError} core::Object : #t17{core::Object};
x5 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:51:8: Error: The value 'null' can't be assigned to a variable of type 'X5' because 'X5' is not nullable.
x5 = null; // Error.
^" in null as{TypeError,Unchecked} Never;
^" in let Null #t18 = null in #t18 == null ?{Never} #t18 as{TypeError} Never : #t18{Never};
core::Object v6 = x6;
x6 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:54:8: Error: The value 'null' can't be assigned to a variable of type 'X6' because 'X6' is not nullable.
x6 = null; // Error.
^" in null as{TypeError,Unchecked} Never;
^" in let Null #t19 = null in #t19 == null ?{Never} #t19 as{TypeError} Never : #t19{Never};
core::Object v7 = x7;
x7 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:57:8: Error: The value 'null' can't be assigned to a variable of type 'X7' because 'X7' is not nullable.
x7 = null; // Error.
^" in null as{TypeError,Unchecked} Never;
^" in let Null #t20 = null in #t20 == null ?{Never} #t20 as{TypeError} Never : #t20{Never};
}
static method test3(self::E1% /* erasure=core::Object, declared=! */ e1, self::E2 /* erasure=core::Object */ e2, self::E3% /* erasure=core::Object, declared=! */ e3, self::E4 /* erasure=core::Object */ e4, self::E5<dynamic>% /* erasure=dynamic, declared=! */ e5, self::E6<core::Object> /* erasure=core::Object */ e6, self::E7 /* erasure=core::num */ e7, core::String s, core::bool b) → dynamic {
core::Object? v11 = b ?{core::Object?} e1 : s;
core::Object v12 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:62:16: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v12 = v11; // Error.
^" in v11 as{TypeError,Unchecked} core::Object;
^" in let core::Object? #t21 = v11 in #t21 == null ?{core::Object} #t21 as{TypeError} core::Object : #t21{core::Object};
v11 = null;
core::Object v21 = b ?{core::Object} e2 : s;
core::Object v22 = v21;
v21 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:67:9: Error: The value 'null' can't be assigned to a variable of type 'Object' because 'Object' is not nullable.
- 'Object' is from 'dart:core'.
v21 = null; // Error.
^" in null as{TypeError,Unchecked} core::Object;
^" in let Null #t22 = null in #t22 == null ?{core::Object} #t22 as{TypeError} core::Object : #t22{core::Object};
core::Object? v31 = b ?{core::Object?} e3 : s;
core::Object v32 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:70:16: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v32 = v31; // Error.
^" in v31 as{TypeError,Unchecked} core::Object;
^" in let core::Object? #t23 = v31 in #t23 == null ?{core::Object} #t23 as{TypeError} core::Object : #t23{core::Object};
v31 = null;
core::Object v41 = b ?{core::Object} e4 : s;
core::Object v42 = v41;
v41 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:75:9: Error: The value 'null' can't be assigned to a variable of type 'Object' because 'Object' is not nullable.
- 'Object' is from 'dart:core'.
v41 = null; // Error.
^" in null as{TypeError,Unchecked} core::Object;
^" in let Null #t24 = null in #t24 == null ?{core::Object} #t24 as{TypeError} core::Object : #t24{core::Object};
core::Object? v51 = b ?{core::Object?} e5 : s;
core::Object v52 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:78:16: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object v52 = v51; // Error.
^" in v51 as{TypeError,Unchecked} core::Object;
^" in let core::Object? #t25 = v51 in #t25 == null ?{core::Object} #t25 as{TypeError} core::Object : #t25{core::Object};
v51 = null;
core::Object v61 = b ?{core::Object} e6 : s;
core::Object v62 = v61;
v61 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:83:9: Error: The value 'null' can't be assigned to a variable of type 'Object' because 'Object' is not nullable.
- 'Object' is from 'dart:core'.
v61 = null; // Error.
^" in null as{TypeError,Unchecked} core::Object;
^" in let Null #t26 = null in #t26 == null ?{core::Object} #t26 as{TypeError} core::Object : #t26{core::Object};
core::Object v71 = b ?{core::Object} e7 : s;
core::Object v72 = v71;
v71 = invalid-expression "pkg/front_end/testcases/extension_types/non_nullable_if_implements_object.dart:87:9: Error: The value 'null' can't be assigned to a variable of type 'Object' because 'Object' is not nullable.
- 'Object' is from 'dart:core'.
v71 = null; // Error.
^" in null as{TypeError,Unchecked} core::Object;
^" in let Null #t27 = null in #t27 == null ?{core::Object} #t27 as{TypeError} core::Object : #t27{core::Object};
}
@@ -219,47 +219,47 @@ static method testNotNonNullable(self::E1<core::num?>% /* erasure=core::num?, de
core::Object x1numNullable = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:13:26: Error: A value of type 'E1<num?>' can't be assigned to a variable of type 'Object' because 'E1<num?>' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object x1numNullable = e1numNullableNNN; // Error.
^" in e1numNullableNNN as{TypeError,Unchecked} core::Object;
^" in let self::E1<core::num?>% /* erasure=core::num?, declared=! */ #t1 = e1numNullableNNN in #t1 == null ?{core::Object} #t1 as{TypeError} core::Object : #t1{core::Object};
core::Object x1double = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:14:21: Error: A value of type 'E1<double>' can't be assigned to a variable of type 'Object' because 'E1<double>' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object x1double = e1doubleNNN; // Error.
^" in e1doubleNNN as{TypeError,Unchecked} core::Object;
^" in let self::E1<core::double>% /* erasure=core::double, declared=! */ #t2 = e1doubleNNN in #t2 == null ?{core::Object} #t2 as{TypeError} core::Object : #t2{core::Object};
core::Object x2 = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:15:15: Error: A value of type 'E2' can't be assigned to a variable of type 'Object' because 'E2' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object x2 = e2NNN; // Error.
^" in e2NNN as{TypeError,Unchecked} core::Object;
^" in let self::E2% /* erasure=core::Object?, declared=! */ #t3 = e2NNN in #t3 == null ?{core::Object} #t3 as{TypeError} core::Object : #t3{core::Object};
core::Object x3 = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:16:15: Error: A value of type 'E3' can't be assigned to a variable of type 'Object' because 'E3' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object x3 = e3NNN; // Error.
^" in e3NNN as{TypeError,Unchecked} core::Object;
^" in let self::E3% /* erasure=core::String?, declared=! */ #t4 = e3NNN in #t4 == null ?{core::Object} #t4 as{TypeError} core::Object : #t4{core::Object};
core::Object x4 = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:17:15: Error: A value of type 'E4' can't be assigned to a variable of type 'Object' because 'E4' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object x4 = e4NNN; // Error.
^" in e4NNN as{TypeError,Unchecked} core::Object;
^" in let self::E4% /* erasure=core::int, declared=! */ #t5 = e4NNN in #t5 == null ?{core::Object} #t5 as{TypeError} core::Object : #t5{core::Object};
core::Object x5 = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:18:15: Error: A value of type 'E5' can't be assigned to a variable of type 'Object' because 'E5' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object x5 = e5NNN; // Error.
^" in e5NNN as{TypeError,Unchecked} core::Object;
^" in let self::E5% /* erasure=core::Object?, declared=! */ #t6 = e5NNN in #t6 == null ?{core::Object} #t6 as{TypeError} core::Object : #t6{core::Object};
}
static method testNotNullable(self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableNN, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleNN, self::E2% /* erasure=core::Object?, declared=! */ e2NN, self::E3% /* erasure=core::String?, declared=! */ e3NN, self::E4% /* erasure=core::int, declared=! */ e4NN, self::E5% /* erasure=core::Object?, declared=! */ e5NN, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableNNNullable, self::E1<core::double>? /* erasure=core::double? */ e1doubleNNNullable, self::E2? /* erasure=core::Object? */ e2NNNullable, self::E3? /* erasure=core::String? */ e3NNNullable, self::E4? /* erasure=core::int? */ e4NNNullable, self::E5? /* erasure=core::Object? */ e5NNNullable) → dynamic {
e1numNullableNN = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:26:21: Error: The value 'null' can't be assigned to a variable of type 'E1<num?>' because 'E1<num?>' is not nullable.
e1numNullableNN = null; // Error.
^" in null as{TypeError,Unchecked} self::E1<core::num?>% /* erasure=core::num?, declared=! */;
^" in let Null #t7 = null in #t7 == null ?{self::E1<core::num?>% /* erasure=core::num?, declared=! */} #t7 as{TypeError} self::E1<core::num?>% /* erasure=core::num?, declared=! */ : #t7{self::E1<core::num?>% /* erasure=core::num?, declared=! */};
e1doubleNN = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:27:16: Error: The value 'null' can't be assigned to a variable of type 'E1<double>' because 'E1<double>' is not nullable.
e1doubleNN = null; // Error.
^" in null as{TypeError,Unchecked} self::E1<core::double>% /* erasure=core::double, declared=! */;
^" in let Null #t8 = null in #t8 == null ?{self::E1<core::double>% /* erasure=core::double, declared=! */} #t8 as{TypeError} self::E1<core::double>% /* erasure=core::double, declared=! */ : #t8{self::E1<core::double>% /* erasure=core::double, declared=! */};
e2NN = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:28:10: Error: The value 'null' can't be assigned to a variable of type 'E2' because 'E2' is not nullable.
e2NN = null; // Error.
^" in null as{TypeError,Unchecked} self::E2% /* erasure=core::Object?, declared=! */;
^" in let Null #t9 = null in #t9 == null ?{self::E2% /* erasure=core::Object?, declared=! */} #t9 as{TypeError} self::E2% /* erasure=core::Object?, declared=! */ : #t9{self::E2% /* erasure=core::Object?, declared=! */};
e3NN = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:29:10: Error: The value 'null' can't be assigned to a variable of type 'E3' because 'E3' is not nullable.
e3NN = null; // Error.
^" in null as{TypeError,Unchecked} self::E3% /* erasure=core::String?, declared=! */;
^" in let Null #t10 = null in #t10 == null ?{self::E3% /* erasure=core::String?, declared=! */} #t10 as{TypeError} self::E3% /* erasure=core::String?, declared=! */ : #t10{self::E3% /* erasure=core::String?, declared=! */};
e4NN = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:30:10: Error: The value 'null' can't be assigned to a variable of type 'E4' because 'E4' is not nullable.
e4NN = null; // Error.
^" in null as{TypeError,Unchecked} self::E4% /* erasure=core::int, declared=! */;
^" in let Null #t11 = null in #t11 == null ?{self::E4% /* erasure=core::int, declared=! */} #t11 as{TypeError} self::E4% /* erasure=core::int, declared=! */ : #t11{self::E4% /* erasure=core::int, declared=! */};
e5NN = invalid-expression "pkg/front_end/testcases/extension_types/nullability.dart:31:10: Error: The value 'null' can't be assigned to a variable of type 'E5' because 'E5' is not nullable.
e5NN = null; // Error.
^" in null as{TypeError,Unchecked} self::E5% /* erasure=core::Object?, declared=! */;
^" in let Null #t12 = null in #t12 == null ?{self::E5% /* erasure=core::Object?, declared=! */} #t12 as{TypeError} self::E5% /* erasure=core::Object?, declared=! */ : #t12{self::E5% /* erasure=core::Object?, declared=! */};
e1numNullableNNNullable = null;
e1doubleNNNullable = null;
e2NNNullable = null;
@@ -34,7 +34,7 @@ static method method(self::MyList<core::int> /* erasure=core::List<core::int> */
hoisted has-declared-initializer core::bool b;
{
final synthesized self::MyMap<core::String, core::bool> /* erasure=core::Map<core::String, core::bool> */ #1#0 = map;
if(!(#1#0.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (let final core::bool #t2 = b = #1#0.{core::Map::[]}(#C2){(core::Object?) → core::bool?} as{Unchecked} core::bool in true)))
if(!(#1#0.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (let final core::bool #t2 = b = let core::bool? #t3 = #1#0.{core::Map::[]}(#C2){(core::Object?) → core::bool?} in #t3 == null ?{core::bool} #t3 as{Unchecked} core::bool : #t3{core::bool} in true)))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
{
@@ -52,7 +52,7 @@ static method method(self::MyList<core::int> /* erasure=core::List<core::int> */
{
hoisted core::bool d;
if(#3#0.{core::Map::containsKey}(#C2){(core::Object?) → core::bool}) {
d = #3#0.{core::Map::[]}(#C2){(core::Object?) → core::bool?} as{Unchecked} core::bool;
d = let core::bool? #t4 = #3#0.{core::Map::[]}(#C2){(core::Object?) → core::bool?} in #t4 == null ?{core::bool} #t4 as{Unchecked} core::bool : #t4{core::bool};
{}
}
}
@@ -62,12 +62,12 @@ static method method(self::MyList<core::int> /* erasure=core::List<core::int> */
final synthesized self::MyList<core::int> /* erasure=core::List<core::int> */ #4#0 = list;
synthesized core::int #4#1;
synthesized core::bool #4#1#isSet = false;
dynamic #t3;
dynamic #t5;
{
lowered hoisted core::int e#case#0;
lowered hoisted core::int e#case#1;
if((#4#1#isSet ?{core::int} #4#1{core::int} : let final core::bool #t4 = #4#1#isSet = true in #4#1 = #4#0.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1 && (let final core::int #t5 = e#case#0 = #4#0.{core::List::[]}(0){(core::int) → core::int} in true) && e#case#0.{core::num::>}(5){(core::num) → core::bool} && (let final core::int #t6 = #t3 = e#case#0 in true) || (#4#1#isSet ?{core::int} #4#1{core::int} : let final core::bool #t7 = #4#1#isSet = true in #4#1 = #4#0.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C3 && (let final core::int #t8 = e#case#1 = #4#0.{core::List::[]}(1){(core::int) → core::int} in true) && e#case#1.{core::num::<}(5){(core::num) → core::bool} && (let final core::int #t9 = #t3 = e#case#1 in true)) {
core::int e = #t3{core::int};
if((#4#1#isSet ?{core::int} #4#1{core::int} : let final core::bool #t6 = #4#1#isSet = true in #4#1 = #4#0.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1 && (let final core::int #t7 = e#case#0 = #4#0.{core::List::[]}(0){(core::int) → core::int} in true) && e#case#0.{core::num::>}(5){(core::num) → core::bool} && (let final core::int #t8 = #t5 = e#case#0 in true) || (#4#1#isSet ?{core::int} #4#1{core::int} : let final core::bool #t9 = #4#1#isSet = true in #4#1 = #4#0.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C3 && (let final core::int #t10 = e#case#1 = #4#0.{core::List::[]}(1){(core::int) → core::int} in true) && e#case#1.{core::num::<}(5){(core::num) → core::bool} && (let final core::int #t11 = #t5 = e#case#1 in true)) {
core::int e = #t5{core::int};
{
core::print(e);
}
@@ -79,7 +79,7 @@ static method method(self::MyList<core::int> /* erasure=core::List<core::int> */
final synthesized self::MyMap<core::String, core::bool> /* erasure=core::Map<core::String, core::bool> */ #5#0 = map;
{
hoisted core::bool e;
if(#5#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && (let final core::bool #t10 = e = #5#0.{core::Map::[]}(#C1){(core::Object?) → core::bool?} as{Unchecked} core::bool in true)) {
if(#5#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && (let final core::bool #t12 = e = let core::bool? #t13 = #5#0.{core::Map::[]}(#C1){(core::Object?) → core::bool?} in #t13 == null ?{core::bool} #t13 as{Unchecked} core::bool : #t13{core::bool} in true)) {
{
core::print(e);
}
@@ -152,15 +152,15 @@ static method errors() → dynamic {
self::Extension|set#property<self::Struct>(new self::Struct::•(), invalid-expression "pkg/front_end/testcases/extensions/on_type_variable_inference2.dart:52:27: Error: The value 'null' can't be assigned to a variable of type 'Struct' because 'Struct' is not nullable.
- 'Struct' is from 'pkg/front_end/testcases/extensions/on_type_variable_inference2.dart'.
new Struct().property = null; // error
^" in null as{TypeError,Unchecked} self::Struct);
^" in let Null #t1 = null in #t1 == null ?{self::Struct} #t1 as{TypeError} self::Struct : #t1{self::Struct});
self::Extension|set#property<self::StructA>(new self::StructA::•(), invalid-expression "pkg/front_end/testcases/extensions/on_type_variable_inference2.dart:53:28: Error: The value 'null' can't be assigned to a variable of type 'StructA' because 'StructA' is not nullable.
- 'StructA' is from 'pkg/front_end/testcases/extensions/on_type_variable_inference2.dart'.
new StructA().property = null; // error
^" in null as{TypeError,Unchecked} self::StructA);
^" in let Null #t2 = null in #t2 == null ?{self::StructA} #t2 as{TypeError} self::StructA : #t2{self::StructA});
self::Extension|set#property<self::StructB>(new self::StructB::•(), invalid-expression "pkg/front_end/testcases/extensions/on_type_variable_inference2.dart:54:28: Error: The value 'null' can't be assigned to a variable of type 'StructB' because 'StructB' is not nullable.
- 'StructB' is from 'pkg/front_end/testcases/extensions/on_type_variable_inference2.dart'.
new StructB().property = null; // error
^" in null as{TypeError,Unchecked} self::StructB);
^" in let Null #t3 = null in #t3 == null ?{self::StructB} #t3 as{TypeError} self::StructB : #t3{self::StructB});
}
static method testNonStruct() → dynamic {
self::NonStruct nonStruct;
@@ -110,7 +110,7 @@ static method t5a(dynamic o) → dynamic
static method t6a(dynamic o) → dynamic
return o as self::Class<self::ConcreteClass>;
static method t7a(dynamic o) → dynamic
return o as{Unchecked} core::Object;
return let dynamic #t1 = o in #t1 == null ?{core::Object} #t1 as core::Object : #t1{core::Object};
static method t8a(dynamic o) → dynamic
return o as core::int;
static method s1a(dynamic o) → dynamic
@@ -70,6 +70,6 @@ static method test() → dynamic {
^";
invalid-expression "pkg/front_end/testcases/general/candidate_found.dart:21:24: Error: Too few positional arguments: 1 required, 0 given.
(null as Fisk).method();
^" in (null as{Unchecked} self::Fisk).{self::Fisk::method}{<inapplicable>}.(){() → invalid-type};
^" in (let Null #t1 = null in #t1 == null ?{self::Fisk} #t1 as self::Fisk : #t1{self::Fisk}).{self::Fisk::method}{<inapplicable>}.(){() → invalid-type};
}
static method main() → dynamic {}
@@ -24,7 +24,7 @@ class C extends core::Object {
field self::C f = new self::C::_circular(invalid-expression "pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:14:27: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
- 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
var f = new C._circular(null);
^" in null as{TypeError,Unchecked} self::C);
^" in let Null #t1 = null in #t1 == null ?{self::C} #t1 as{TypeError} self::C : #t1{self::C});
constructor _circular(self::C f) → self::C
: self::C::f = f, super core::Object::•()
;
@@ -32,5 +32,5 @@ class C extends core::Object {
static field self::C x = new self::C::_circular(invalid-expression "pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart:11:25: Error: The value 'null' can't be assigned to the parameter type 'C' because 'C' is not nullable.
- 'C' is from 'pkg/front_end/testcases/general/circularity-via-initializing-formal2.dart'.
var x = new C._circular(null);
^" in null as{TypeError,Unchecked} self::C);
^" in let Null #t2 = null in #t2 == null ?{self::C} #t2 as{TypeError} self::C : #t2{self::C});
static method main() → dynamic {}
@@ -25,4 +25,4 @@ extension Extension<A extends core::Object? = dynamic> on self::Generic<A%> {
static field self::Generic<invalid-type> Extension|field = invalid-expression "pkg/front_end/testcases/general/issue43400.dart:8:29: Error: The value 'null' can't be assigned to a variable of type 'Generic<invalid-type>' because 'Generic<invalid-type>' is not nullable.
- 'Generic' is from 'pkg/front_end/testcases/general/issue43400.dart'.
static Generic<A> field = null;
^" in null as{TypeError,Unchecked} self::Generic<invalid-type>;
^" in let Null #t1 = null in #t1 == null ?{self::Generic<invalid-type>} #t1 as{TypeError} self::Generic<invalid-type> : #t1{self::Generic<invalid-type>};
@@ -18,5 +18,5 @@ static method main() → void {
static method test() → void {
core::String debugName = invalid-expression "pkg/front_end/testcases/general/issue48090.dart:12:38: Error: A value of type 'String?' can't be assigned to a variable of type 'String' because 'String?' is nullable and 'String' isn't.
String debugName = Isolate.current.debugName; // error
^" in iso::Isolate::current.{iso::Isolate::debugName}{core::String?} as{TypeError,Unchecked} core::String;
^" in let core::String? #t2 = iso::Isolate::current.{iso::Isolate::debugName}{core::String?} in #t2 == null ?{core::String} #t2 as{TypeError} core::String : #t2{core::String};
}
@@ -19,6 +19,6 @@ class WeakMap<K extends core::Object, V extends core::Object? = dynamic> extends
core::Object o = invalid-expression "pkg/front_end/testcases/general/issue52726.dart:10:22: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object o = first.first; // Error.
^" in first.{core::Iterable::first}{core::Object?} as{TypeError,Unchecked} core::Object;
^" in let core::Object? #t1 = first.{core::Iterable::first}{core::Object?} in #t1 == null ?{core::Object} #t1 as{TypeError} core::Object : #t1{core::Object};
}
}
@@ -17,7 +17,7 @@ static method f<X extends core::Object? = dynamic>(self::f::X? arg) → void {
self::CheckType|expect<core::List<self::f::X%>, (core::List<self::f::X%>) → core::List<self::f::X%>>(ys);
core::List<self::f::X?> ys2 = xs;
self::CheckType|expect<core::List<self::f::X?>, (core::List<self::f::X?>) → core::List<self::f::X?>>(ys2);
core::List<core::Object> ys3 = xs as{Unchecked} core::List<core::Object>;
core::List<core::Object> ys3 = xs as core::List<core::Object>;
self::CheckType|expect<core::List<core::Object>, (core::List<core::Object>) → core::List<core::Object>>(ys3);
}
}
@@ -128,7 +128,7 @@ static method testTypeAliasAsTypeArgument(self::Acov<() → dynamic, dynamic> so
<Y extends self::Acon<(Null) → dynamic, dynamic> = dynamic>() → void target2 = invalid-expression "pkg/front_end/testcases/general/nested_variance2.dart:84:42: Error: A value of type 'void Function<Y extends Acon<dynamic Function(Never), dynamic>>()' can't be assigned to a variable of type 'void Function<Y extends Acon<dynamic Function(Null), dynamic>>()' because 'Null' is nullable and 'Never' isn't.
- 'Acon' is from 'pkg/front_end/testcases/general/nested_variance2.dart'.
F<Acon<Fcon<Null>, dynamic>> target2 = fsource2;
^" in fsource2 as{TypeError,Unchecked} <Y extends self::Acon<(Null) → dynamic, dynamic> = dynamic>() → void;
^" in fsource2 as{TypeError} <Y extends self::Acon<(Null) → dynamic, dynamic> = dynamic>() → void;
<Y extends self::Ainv<(dynamic) → dynamic, dynamic> = dynamic>() → void fsource3 = self::toF<self::Ainv<(dynamic) → dynamic, dynamic>>(source3);
<Y extends self::Ainv<(dynamic) → dynamic, dynamic> = dynamic>() → void target3 = fsource3;
<Y extends self::AcovBound<() → core::num, core::num> = dynamic>() → void fsource4 = self::toF<self::AcovBound<() → core::num, core::num>>(source4);
@@ -553,7 +553,7 @@ abstract class Mixin<T extends core::Object? = dynamic> extends core::Object /*i
return invalid-expression "pkg/front_end/testcases/general/type_variable_in_static_context.dart:132:30: Error: The value 'null' can't be returned from a function with return type 'Mixin<T>' because 'Mixin<T>' is not nullable.
- 'Mixin' is from 'pkg/front_end/testcases/general/type_variable_in_static_context.dart'.
factory Mixin.fact(T t) => null;
^" in null as{TypeError,Unchecked} Never;
^" in let Null #t1 = null in #t1 == null ?{Never} #t1 as{TypeError} Never : #t1{Never};
@invalid-expression "pkg/front_end/testcases/general/type_variable_in_static_context.dart:137:4: Error: Couldn't find constructor 'T'.
@T()
^"
@@ -318,7 +318,7 @@ library from "org-dartlang-test:///main.dart" as main {
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(dart.core::int start, dart.core::int end, [covariant-by-class dart.core::int? fill = #C2]) → void {
dart.core::int value = let dart.core::int? #t6 = fill in #t6 == null ?{dart.core::int} #t6 as{Unchecked} dart.core::int : #t6{dart.core::int};
dart.core::int value = let dart.core::int? #t6 = fill in #t6 == null ?{dart.core::int} let dart.core::int? #t7 = #t6 in #t7 == null ?{dart.core::int} #t7 as dart.core::int : #t7{dart.core::int} : #t6{dart.core::int};
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
for (dart.core::int i = start; i.{dart.core::num::<}(end){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
this.{dart.core::List::[]=}(i, value){(dart.core::int, dart.core::int) → void};
@@ -492,7 +492,7 @@ library from "org-dartlang-test:///main.dart" as main {
for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(){() → dart.core::bool}; ) {
dart.core::int element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int};
{
this.{dart.core::List::[]=}(let final dart.core::int #t7 = index in let final dart.core::int #t8 = index = #t7.{dart.core::num::+}(1){(dart.core::num) → dart.core::int} in #t7, element){(dart.core::int, dart.core::int) → void};
this.{dart.core::List::[]=}(let final dart.core::int #t8 = index in let final dart.core::int #t9 = index = #t8.{dart.core::num::+}(1){(dart.core::num) → dart.core::int} in #t8, element){(dart.core::int, dart.core::int) → void};
}
}
}
@@ -318,7 +318,7 @@ library from "org-dartlang-test:///main.dart" as main {
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(dart.core::int start, dart.core::int end, [covariant-by-class dart.core::int? fill = #C2]) → void {
dart.core::int value = let dart.core::int? #t6 = fill in #t6 == null ?{dart.core::int} #t6 as{Unchecked} dart.core::int : #t6{dart.core::int};
dart.core::int value = let dart.core::int? #t6 = fill in #t6 == null ?{dart.core::int} let dart.core::int? #t7 = #t6 in #t7 == null ?{dart.core::int} #t7 as dart.core::int : #t7{dart.core::int} : #t6{dart.core::int};
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
for (dart.core::int i = start; i.{dart.core::num::<}(end){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
this.{dart.core::List::[]=}(i, value){(dart.core::int, dart.core::int) → void};
@@ -492,7 +492,7 @@ library from "org-dartlang-test:///main.dart" as main {
for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(){() → dart.core::bool}; ) {
dart.core::int element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int};
{
this.{dart.core::List::[]=}(let final dart.core::int #t7 = index in let final dart.core::int #t8 = index = #t7.{dart.core::num::+}(1){(dart.core::num) → dart.core::int} in #t7, element){(dart.core::int, dart.core::int) → void};
this.{dart.core::List::[]=}(let final dart.core::int #t8 = index in let final dart.core::int #t9 = index = #t8.{dart.core::num::+}(1){(dart.core::num) → dart.core::int} in #t8, element){(dart.core::int, dart.core::int) → void};
}
}
}
@@ -48,7 +48,7 @@ static method foo() → dynamic {
^" in new self::B::•().{self::B::y}{core::int} as{TypeError} core::String;
s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:24:32: Error: A value of type 'String?' can't be assigned to a variable of type 'String' because 'String?' is nullable and 'String' isn't.
s = new B(). /*@target=B.z*/ z;
^" in new self::B::•().{self::B::z}{core::String?} as{TypeError,Unchecked} core::String;
^" in let core::String? #t1 = new self::B::•().{self::B::z}{core::String?} in #t1 == null ?{core::String} #t1 as{TypeError} core::String : #t1{core::String};
s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:25:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.w*/ w;
^" in new self::B::•().{self::B::w}{core::int} as{TypeError} core::String;
@@ -110,7 +110,7 @@ static field dynamic i = invalid-expression "pkg/front_end/testcases/inference/i
Try correcting the operator to an existing operator, or defining a 'unary-' operator.
var i = /*error:UNDEFINED_OPERATOR,info:DYNAMIC_INVOKE*/ -new A();
^" in new self::A::•(){<unresolved>}.unary-();
static field self::B j = null as{Unchecked} self::B;
static field self::B j = let Null #t2 = null in #t2 == null ?{self::B} #t2 as self::B : #t2{self::B};
static method test1() → dynamic {
self::a = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:36:36: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
@@ -128,16 +128,16 @@ static method test1() → dynamic {
- 'List' is from 'dart:core'.
c1 = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ {};
^" in ( block {
final core::Set<dynamic> #t2 = new col::_Set::•<dynamic>();
} =>#t2) as{TypeError} core::List<dynamic>;
final core::Set<dynamic> #t3 = new col::_Set::•<dynamic>();
} =>#t3) as{TypeError} core::List<dynamic>;
self::c2 = core::_GrowableList::•<dynamic>(0);
self::c2 = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:43:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<dynamic>'.
- 'Set' is from 'dart:core'.
- 'List' is from 'dart:core'.
c2 = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ {};
^" in ( block {
final core::Set<dynamic> #t3 = new col::_Set::•<dynamic>();
} =>#t3) as{TypeError} core::List<dynamic>;
final core::Set<dynamic> #t4 = new col::_Set::•<dynamic>();
} =>#t4) as{TypeError} core::List<dynamic>;
self::d = <dynamic, dynamic>{};
self::d = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:45:36: Error: A value of type 'int' can't be assigned to a variable of type 'Map<dynamic, dynamic>'.
- 'Map' is from 'dart:core'.
@@ -183,5 +183,5 @@ constants {
Extra constant evaluation status:
Evaluated: InstanceInvocation @ org-dartlang-testcase:///infer_from_complex_expressions_if_outer_most_value_is_precise.dart:27:25 -> IntConstant(5)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///infer_from_complex_expressions_if_outer_most_value_is_precise.dart:30:32 -> IntConstant(-3)
Evaluated: AsExpression @ org-dartlang-testcase:///infer_from_complex_expressions_if_outer_most_value_is_precise.dart:33:40 -> NullConstant(null)
Evaluated: Let @ org-dartlang-testcase:///infer_from_complex_expressions_if_outer_most_value_is_precise.dart:33:5 -> NullConstant(null)
Extra constant evaluation: evaluated: 46, effectively constant: 3
@@ -2,10 +2,10 @@ library test;
import self as self;
import "dart:core" as core;
static field Never x = throw self::f<dynamic>() as{TypeError,Unchecked} core::Object;
static field Never x = throw let dynamic #t1 = self::f<dynamic>() in #t1 == null ?{core::Object} #t1 as{TypeError} core::Object : #t1{core::Object};
static method f<T extends core::Object? = dynamic>() → self::f::T%
return throw "";
static method g() → void {
Never x = throw self::f<dynamic>() as{TypeError,Unchecked} core::Object;
Never x = throw let dynamic #t2 = self::f<dynamic>() in #t2 == null ?{core::Object} #t2 as{TypeError} core::Object : #t2{core::Object};
}
static method main() → dynamic {}
@@ -20,5 +20,5 @@ static field () → invalid-type z = () → invalid-type => self::x;
static method f() → core::bool
return invalid-expression "pkg/front_end/testcases/inference_new/strongly_connected_component.dart:8:13: Error: The value 'null' can't be returned from a function with return type 'bool' because 'bool' is not nullable.
bool f() => null;
^" in null as{TypeError,Unchecked} core::bool;
^" in let Null #t1 = null in #t1 == null ?{core::bool} #t1 as{TypeError} core::bool : #t1{core::bool};
static method main() → dynamic {}
@@ -20,7 +20,7 @@ class D extends core::Object {
static method acceptsInt(core::int x) → void {}
static method testAbstractFinalFieldIsPromotable(self::C c) → void {
if(!(c.{self::C::_f1}{core::int?} == null)) {
core::int x = c.{self::C::_f1}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t1 = c.{self::C::_f1}{core::int?} in #t1 == null ?{core::int} #t1 as{Unchecked} core::int : #t1{core::int};
self::acceptsInt(x);
}
}
@@ -32,7 +32,7 @@ static method testAbstractNonFinalFieldIsNotPromotable(self::C c) → void {
}
static method testAbstractFinalFieldDoesNotBlockPromotionElsewhere(self::D d) → void {
if(!(d.{self::D::_f1}{core::int?} == null)) {
core::int x = d.{self::D::_f1}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t2 = d.{self::D::_f1}{core::int?} in #t2 == null ?{core::int} #t2 as{Unchecked} core::int : #t2{core::int};
self::acceptsInt(x);
}
}
@@ -20,7 +20,7 @@ abstract class C extends core::Object {
static method acceptsInt(core::int x) → void {}
static method testPrivateFinalField(self::C c) → void {
if(!(c.{self::C::_privateFinalField}{core::int?} == null)) {
core::int x = c.{self::C::_privateFinalField}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t1 = c.{self::C::_privateFinalField}{core::int?} in #t1 == null ?{core::int} #t1 as{Unchecked} core::int : #t1{core::int};
self::acceptsInt(x);
}
}
@@ -44,7 +44,7 @@ static method testPublicField(self::C c) → void {
}
static method testPrivateAbstractGetter(self::C c) → void {
if(!(c.{self::C::_privateAbstractGetter}{core::int?} == null)) {
core::int x = c.{self::C::_privateAbstractGetter}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t2 = c.{self::C::_privateAbstractGetter}{core::int?} in #t2 == null ?{core::int} #t2 as{Unchecked} core::int : #t2{core::int};
self::acceptsInt(x);
}
}
@@ -17,14 +17,14 @@ static method cascadedPropertyAccess(self::C c) → void {
static method cascadedNullAwarePropertyAccess(self::C? c) → void {
let final self::C? #t2 = c in #t2 == null ?{self::C?} null : block {
#t2{self::C}.{self::C::_field}{core::Object?}!.{core::Object::toString}(){() → core::String};
(#t2{self::C}.{self::C::_field}{core::Object?} as{Unchecked} core::Object).{core::Object::toString}(){() → core::String};
(let core::Object? #t3 = #t2{self::C}.{self::C::_field}{core::Object?} in #t3 == null ?{core::Object} #t3 as{Unchecked} core::Object : #t3{core::Object}).{core::Object::toString}(){() → core::String};
} =>#t2;
let final self::C? #t3 = c in #t3 == null ?{core::Object?} null : #t3{self::C}.{self::C::_field}{core::Object?};
let final self::C? #t4 = c in #t4 == null ?{core::Object?} null : #t4{self::C}.{self::C::_field}{core::Object?};
}
static method cascadedInvocation(self::C c) → void {
c.{self::C::_field}{core::Object?} as () → core::int;
let final self::C #t4 = c in block {
(#t4.{self::C::_field}{core::Object?} as{Unchecked} () → core::int)(){() → core::int}.{core::int::toString}(){() → core::String};
} =>#t4;
let final self::C #t5 = c in block {
(#t5.{self::C::_field}{core::Object?} as{Unchecked} () → core::int)(){() → core::int}.{core::int::toString}(){() → core::String};
} =>#t5;
}
static method main() → dynamic {}
@@ -47,7 +47,7 @@ static method testConflictsWithNoSuchMethodForwarder(self::C c) → void {
}
static method testNoConflictWithNoSuchMethodForwarderForDifferentLib(self::C c) → void {
if(!(c.{self::C::_f2}{core::int?} == null)) {
core::int x = c.{self::C::_f2}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t1 = c.{self::C::_f2}{core::int?} in #t1 == null ?{core::int} #t1 as{Unchecked} core::int : #t1{core::int};
self::acceptsInt(x);
}
}
@@ -58,7 +58,7 @@ static extension-member method _extension#0|get#_f10(lowered final core::String
static method acceptsInt(core::int x) → void {}
static method testFinalField(self::C c) → void {
if(!(c.{self::C::_f1}{core::int?} == null)) {
core::int x = c.{self::C::_f1}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t1 = c.{self::C::_f1}{core::int?} in #t1 == null ?{core::int} #t1 as{Unchecked} core::int : #t1{core::int};
self::acceptsInt(x);
}
}
@@ -70,7 +70,7 @@ static method testNonFinalField(self::C c) → void {
}
static method testAbstractGetter(self::C c) → void {
if(!(c.{self::C::_f3}{core::int?} == null)) {
core::int x = c.{self::C::_f3}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t2 = c.{self::C::_f3}{core::int?} in #t2 == null ?{core::int} #t2 as{Unchecked} core::int : #t2{core::int};
self::acceptsInt(x);
}
}
@@ -82,37 +82,37 @@ static method testConcreteGetter(self::C c) → void {
}
static method testSetter(self::C c) → void {
if(!(c.{self::C::_f5}{core::int?} == null)) {
core::int x = c.{self::C::_f5}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t3 = c.{self::C::_f5}{core::int?} in #t3 == null ?{core::int} #t3 as{Unchecked} core::int : #t3{core::int};
self::acceptsInt(x);
}
}
static method testStaticField(self::C c) → void {
if(!(c.{self::C::_f6}{core::int?} == null)) {
core::int x = c.{self::C::_f6}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t4 = c.{self::C::_f6}{core::int?} in #t4 == null ?{core::int} #t4 as{Unchecked} core::int : #t4{core::int};
self::acceptsInt(x);
}
}
static method testStaticGetter(self::C c) → void {
if(!(c.{self::C::_f7}{core::int?} == null)) {
core::int x = c.{self::C::_f7}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t5 = c.{self::C::_f7}{core::int?} in #t5 == null ?{core::int} #t5 as{Unchecked} core::int : #t5{core::int};
self::acceptsInt(x);
}
}
static method testTopLevelField(self::C c) → void {
if(!(c.{self::C::_f8}{core::int?} == null)) {
core::int x = c.{self::C::_f8}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t6 = c.{self::C::_f8}{core::int?} in #t6 == null ?{core::int} #t6 as{Unchecked} core::int : #t6{core::int};
self::acceptsInt(x);
}
}
static method testTopLevelGetter(self::C c) → void {
if(!(c.{self::C::_f9}{core::int?} == null)) {
core::int x = c.{self::C::_f9}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t7 = c.{self::C::_f9}{core::int?} in #t7 == null ?{core::int} #t7 as{Unchecked} core::int : #t7{core::int};
self::acceptsInt(x);
}
}
static method testExtensionGetter(self::C c) → void {
if(!(c.{self::C::_f10}{core::int?} == null)) {
core::int x = c.{self::C::_f10}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t8 = c.{self::C::_f10}{core::int?} in #t8 == null ?{core::int} #t8 as{Unchecked} core::int : #t8{core::int};
self::acceptsInt(x);
}
}
@@ -63,13 +63,13 @@ static method testConflictWithNoSuchMethodForwarderIfImplementedInMixin(self::C
}
static method testNoConflictWithNoSuchMethodForwarderIfImplementedInMixin1(self::C c) → void {
if(!(c.{self::C::_f3}{core::int?} == null)) {
core::int x = c.{self::C::_f3}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t1 = c.{self::C::_f3}{core::int?} in #t1 == null ?{core::int} #t1 as{Unchecked} core::int : #t1{core::int};
self::acceptsInt(x);
}
}
static method testNoConflictWithNoSuchMethodForwarderIfImplementedInMixin2(self::C c) → void {
if(!(c.{self::C::_f4}{core::int?} == null)) {
core::int x = c.{self::C::_f4}{core::int?} as{Unchecked} core::int;
core::int x = let core::int? #t2 = c.{self::C::_f4}{core::int?} in #t2 == null ?{core::int} #t2 as{Unchecked} core::int : #t2{core::int};
self::acceptsInt(x);
}
}
@@ -138,7 +138,7 @@ static method ifCase(dynamic o) → core::int {
}
{
final synthesized dynamic #17#0 = o;
if(#17#0 is core::Map<core::int, core::int> && #17#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (#17#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} as{Unchecked} core::int).{core::num::>=}(#C11){(core::num) → core::bool}) {
if(#17#0 is core::Map<core::int, core::int> && #17#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (let core::int? #t42 = #17#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} in #t42 == null ?{core::int} #t42 as{Unchecked} core::int : #t42{core::int}).{core::num::>=}(#C11){(core::num) → core::bool}) {
return 18;
}
}
@@ -190,8 +190,8 @@ static method ifCase(dynamic o) → core::int {
synthesized core::bool #24#4#isSet = false;
{
hoisted core::int b;
if(#24#0 is core::Map<dynamic, dynamic> && #24#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t42 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t43 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
if(#24#0 is core::Map<dynamic, dynamic> && #24#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t43 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t44 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
{
return 25;
}
@@ -220,7 +220,7 @@ static method ifCase(dynamic o) → core::int {
final synthesized dynamic #27#0 = o;
{
hoisted dynamic d;
if(#27#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #27#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t44 = d = #27#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
if(#27#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #27#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t45 = d = #27#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
return 28;
}
}
@@ -238,7 +238,7 @@ static method ifCaseElse(dynamic o) → core::int {
final synthesized dynamic #1#0 = o;
synthesized core::Object? #1#2;
synthesized core::bool #1#2#isSet = false;
if(#1#0 is ({f: core::Object?}) && ((let final core::int #t45 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t46 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t47 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final core::int #t48 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t49 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t50 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
if(#1#0 is ({f: core::Object?}) && ((let final core::int #t46 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t47 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t48 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final core::int #t49 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t50 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t51 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
return 2;
}
else {
@@ -250,12 +250,12 @@ static method ifCaseElse(dynamic o) → core::int {
final synthesized dynamic #3#0 = o;
synthesized core::Object? #3#2;
synthesized core::bool #3#2#isSet = false;
if(#3#0 is ({g: core::Object?}) && (let final core::int #t51 = (#3#2#isSet ?{core::Object?} #3#2{core::Object?} : let final core::bool #t52 = #3#2#isSet = true in #3#2 = #3#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#3#2#isSet ?{core::Object?} #3#2{core::Object?} : let final core::bool #t53 = #3#2#isSet = true in #3#2 = #3#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
if(#3#0 is ({g: core::Object?}) && (let final core::int #t52 = (#3#2#isSet ?{core::Object?} #3#2{core::Object?} : let final core::bool #t53 = #3#2#isSet = true in #3#2 = #3#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#3#2#isSet ?{core::Object?} #3#2{core::Object?} : let final core::bool #t54 = #3#2#isSet = true in #3#2 = #3#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
return 4;
}
else {
final synthesized dynamic #4#0 = o;
if(#4#0 is ({a: core::Object?}) && (let final core::Object? #t54 = #4#0{({a: core::Object?})}.a{core::Object?}! in true)) {
if(#4#0 is ({a: core::Object?}) && (let final core::Object? #t55 = #4#0{({a: core::Object?})}.a{core::Object?}! in true)) {
return 5;
}
else {
@@ -277,7 +277,7 @@ static method ifCaseElse(dynamic o) → core::int {
final synthesized dynamic #8#0 = o;
synthesized core::int #8#2;
synthesized core::bool #8#2#isSet = false;
if(#8#0 is core::List<dynamic> && (#8#2#isSet ?{core::int} #8#2{core::int} : let final core::bool #t55 = #8#2#isSet = true in #8#2 = #8#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool} && #C2 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C8 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && #C3 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}((#8#2#isSet ?{core::int} #8#2{core::int} : let final core::bool #t56 = #8#2#isSet = true in #8#2 = #8#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic}) {
if(#8#0 is core::List<dynamic> && (#8#2#isSet ?{core::int} #8#2{core::int} : let final core::bool #t56 = #8#2#isSet = true in #8#2 = #8#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool} && #C2 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C8 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && #C3 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}((#8#2#isSet ?{core::int} #8#2{core::int} : let final core::bool #t57 = #8#2#isSet = true in #8#2 = #8#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic}) {
return 9;
}
else {
@@ -288,7 +288,7 @@ static method ifCaseElse(dynamic o) → core::int {
synthesized core::bool #9#15#isSet = false;
synthesized dynamic #9#19;
synthesized core::bool #9#19#isSet = false;
if(#9#0 is core::List<dynamic> && #9#0{core::List<dynamic>}.{core::List::length}{core::int}.{core::num::>=}(#C7){(core::num) → core::bool} && #C8 =={core::num::==}{(core::Object) → core::bool} #9#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C3 =={core::num::==}{(core::Object) → core::bool} #9#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && ((#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t57 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t58 = (#9#15#isSet ?{dynamic} #9#15{dynamic} : let final core::bool #t59 = #9#15#isSet = true in #9#15 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t60 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#9#15#isSet ?{dynamic} #9#15{dynamic} : let final core::bool #t61 = #9#15#isSet = true in #9#15 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t62 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t63 = (#9#19#isSet ?{dynamic} #9#19{dynamic} : let final core::bool #t64 = #9#19#isSet = true in #9#19 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t65 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#9#19#isSet ?{dynamic} #9#19{dynamic} : let final core::bool #t66 = #9#19#isSet = true in #9#19 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t67 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
if(#9#0 is core::List<dynamic> && #9#0{core::List<dynamic>}.{core::List::length}{core::int}.{core::num::>=}(#C7){(core::num) → core::bool} && #C8 =={core::num::==}{(core::Object) → core::bool} #9#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C3 =={core::num::==}{(core::Object) → core::bool} #9#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && ((#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t58 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t59 = (#9#15#isSet ?{dynamic} #9#15{dynamic} : let final core::bool #t60 = #9#15#isSet = true in #9#15 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t61 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#9#15#isSet ?{dynamic} #9#15{dynamic} : let final core::bool #t62 = #9#15#isSet = true in #9#15 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t63 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t64 = (#9#19#isSet ?{dynamic} #9#19{dynamic} : let final core::bool #t65 = #9#19#isSet = true in #9#19 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t66 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#9#19#isSet ?{dynamic} #9#19{dynamic} : let final core::bool #t67 = #9#19#isSet = true in #9#19 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t68 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
return 10;
}
else {
@@ -301,7 +301,7 @@ static method ifCaseElse(dynamic o) → core::int {
synthesized core::bool #10#16#isSet = false;
synthesized dynamic #10#20;
synthesized core::bool #10#20#isSet = false;
if(#10#0 is core::List<dynamic> && (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t68 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool} && #C3 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C4 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && ((#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t69 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t70 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t71 = (#10#16#isSet ?{dynamic} #10#16{dynamic} : let final core::bool #t72 = #10#16#isSet = true in #10#16 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t73 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t74 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#10#16#isSet ?{dynamic} #10#16{dynamic} : let final core::bool #t75 = #10#16#isSet = true in #10#16 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t76 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t77 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t78 = (#10#20#isSet ?{dynamic} #10#20{dynamic} : let final core::bool #t79 = #10#20#isSet = true in #10#20 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t80 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t81 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#10#20#isSet ?{dynamic} #10#20{dynamic} : let final core::bool #t82 = #10#20#isSet = true in #10#20 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t83 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t84 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}((#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t85 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic}) {
if(#10#0 is core::List<dynamic> && (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t69 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool} && #C3 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C4 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && ((#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t70 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t71 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t72 = (#10#16#isSet ?{dynamic} #10#16{dynamic} : let final core::bool #t73 = #10#16#isSet = true in #10#16 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t74 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t75 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#10#16#isSet ?{dynamic} #10#16{dynamic} : let final core::bool #t76 = #10#16#isSet = true in #10#16 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t77 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t78 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t79 = (#10#20#isSet ?{dynamic} #10#20{dynamic} : let final core::bool #t80 = #10#20#isSet = true in #10#20 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t81 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t82 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#10#20#isSet ?{dynamic} #10#20{dynamic} : let final core::bool #t83 = #10#20#isSet = true in #10#20 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t84 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t85 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}((#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t86 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic}) {
return 11;
}
else {
@@ -336,7 +336,7 @@ static method ifCaseElse(dynamic o) → core::int {
}
else {
final synthesized dynamic #17#0 = o;
if(#17#0 is core::Map<core::int, core::int> && #17#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (#17#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} as{Unchecked} core::int).{core::num::>=}(#C11){(core::num) → core::bool}) {
if(#17#0 is core::Map<core::int, core::int> && #17#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (let core::int? #t87 = #17#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} in #t87 == null ?{core::int} #t87 as{Unchecked} core::int : #t87{core::int}).{core::num::>=}(#C11){(core::num) → core::bool}) {
return 18;
}
else {
@@ -380,8 +380,8 @@ static method ifCaseElse(dynamic o) → core::int {
synthesized core::bool #24#4#isSet = false;
{
hoisted core::int b;
if(#24#0 is core::Map<dynamic, dynamic> && #24#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t86 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t87 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
if(#24#0 is core::Map<dynamic, dynamic> && #24#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t88 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t89 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
{
return 25;
}
@@ -405,7 +405,7 @@ static method ifCaseElse(dynamic o) → core::int {
final synthesized dynamic #27#0 = o;
{
hoisted dynamic d;
if(#27#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #27#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t88 = d = #27#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
if(#27#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #27#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t90 = d = #27#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
return 28;
}
else {
@@ -493,7 +493,7 @@ static method switchStatement(dynamic o) → core::int {
}
}
{
if(#0#0 is ({f: core::Object?}) && ((let final core::int #t89 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t90 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t91 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final core::int #t92 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t93 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t94 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
if(#0#0 is ({f: core::Object?}) && ((let final core::int #t91 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t92 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t93 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final core::int #t94 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t95 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t96 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
{
return 2;
}
@@ -507,63 +507,63 @@ static method switchStatement(dynamic o) → core::int {
}
}
{
if(#0#0 is ({g: core::Object?}) && (let final core::int #t95 = (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t96 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t97 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
if(#0#0 is ({g: core::Object?}) && (let final core::int #t97 = (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t98 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t99 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
{
return 4;
}
}
}
{
if(#0#0 is ({a: core::Object?}) && (let final core::Object? #t98 = (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t99 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?})}.a{core::Object?})! in true)) {
if(#0#0 is ({a: core::Object?}) && (let final core::Object? #t100 = (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t101 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?})}.a{core::Object?})! in true)) {
{
return 5;
}
}
}
{
if(#0#0 is ({b: core::Object?}) && (!((#0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t100 = #0#23#isSet = true in #0#23 = #0#0{({b: core::Object?})}.b{core::Object?}) == null) && true)) {
if(#0#0 is ({b: core::Object?}) && (!((#0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t102 = #0#23#isSet = true in #0#23 = #0#0{({b: core::Object?})}.b{core::Object?}) == null) && true)) {
{
return 6;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t101 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t102 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t103 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t103 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t104 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t105 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
{
return 7;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t104 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t105 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t106 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t107 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t106 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t107 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t108 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t109 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
{
return 8;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t108 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t109 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t110 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t111 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t112 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t113 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t110 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t111 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t112 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t113 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t114 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t115 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
{
return 9;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t114 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t115 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t116 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t117 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t118 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t119 = (#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t120 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t121 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t122 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t123 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t124 = (#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t125 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t126 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t127 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t128 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t116 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t117 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t118 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t119 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t120 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t121 = (#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t122 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t123 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t124 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t125 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t126 = (#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t127 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t128 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t129 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t130 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
{
return 10;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t129 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t130 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t131 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C4 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t132 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t133 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t134 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t135 = (#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t136 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t137 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t138 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t139 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t140 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t141 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t142 = (#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t143 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t144 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t145 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t146 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t147 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t148 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t149 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t150 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t131 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t132 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t133 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C4 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t134 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t135 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t136 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t137 = (#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t138 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t139 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t140 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t141 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t142 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t143 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t144 = (#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t145 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t146 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t147 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t148 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t149 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t150 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t151 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t152 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
{
return 11;
}
}
}
{
if(#0#0 is self::Class && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t151 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int})) {
if(#0#0 is self::Class && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t153 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int})) {
{
return 12;
}
@@ -577,7 +577,7 @@ static method switchStatement(dynamic o) → core::int {
}
}
{
if(#0#0 is self::Class && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t152 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int}) && #C8 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::getter}{core::int}) {
if(#0#0 is self::Class && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t154 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int}) && #C8 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::getter}{core::int}) {
{
return 14;
}
@@ -605,14 +605,14 @@ static method switchStatement(dynamic o) → core::int {
}
}
{
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (#0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} as{Unchecked} core::int).{core::num::>=}(#C11){(core::num) → core::bool}) {
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (let core::int? #t155 = #0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} in #t155 == null ?{core::int} #t155 as{Unchecked} core::int : #t155{core::int}).{core::num::>=}(#C11){(core::num) → core::bool}) {
{
return 18;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t153 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1) {
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t156 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1) {
{
return 19;
}
@@ -648,7 +648,7 @@ static method switchStatement(dynamic o) → core::int {
}
{
hoisted dynamic a;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool} && (let final dynamic #t154 = a = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C7){(core::Object?) → dynamic} in true)) {
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool} && (let final dynamic #t157 = a = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C7){(core::Object?) → dynamic} in true)) {
{
return 24;
}
@@ -656,7 +656,7 @@ static method switchStatement(dynamic o) → core::int {
}
{
hoisted core::int b;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && ((#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t155 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int && (let final core::int #t156 = b = (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t157 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int in true))) {
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && ((#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t158 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int && (let final core::int #t159 = b = (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t160 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int in true))) {
{
return 25;
}
@@ -671,7 +671,7 @@ static method switchStatement(dynamic o) → core::int {
}
{
hoisted dynamic c;
if(#0#0 is ({a: core::Object?, b: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t158 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?, b: core::Object?})}.a{core::Object?}) && (let final core::Object? #t159 = c = #0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t160 = #0#23#isSet = true in #0#23 = #0#0{({a: core::Object?, b: core::Object?})}.b{core::Object?} in true)) {
if(#0#0 is ({a: core::Object?, b: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t161 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?, b: core::Object?})}.a{core::Object?}) && (let final core::Object? #t162 = c = #0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t163 = #0#23#isSet = true in #0#23 = #0#0{({a: core::Object?, b: core::Object?})}.b{core::Object?} in true)) {
{
return 27;
}
@@ -679,7 +679,7 @@ static method switchStatement(dynamic o) → core::int {
}
{
hoisted dynamic d;
if(#0#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t161 = d = #0#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
if(#0#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t164 = d = #0#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
{
return 28;
}
@@ -697,7 +697,7 @@ static method switchStatement(dynamic o) → core::int {
static method switchExpression(dynamic o) → core::int {
core::print("o = ${o}");
return block {
core::int #t162;
core::int #t165;
final synthesized dynamic #0#0 = o;
synthesized core::Object? #0#4;
synthesized core::bool #0#4#isSet = false;
@@ -739,139 +739,139 @@ static method switchExpression(dynamic o) → core::int {
{
{
if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0) {
#t162 = 1;
#t165 = 1;
break #L2;
}
}
{
if(#0#0 is ({f: core::Object?}) && ((let final core::int #t163 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t164 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t165 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final core::int #t166 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t167 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t168 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
#t162 = 2;
if(#0#0 is ({f: core::Object?}) && ((let final core::int #t166 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t167 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t168 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final core::int #t169 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t170 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t171 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
#t165 = 2;
break #L2;
}
}
{
if(#C4 =={core::num::==}{(core::Object) → core::bool} #0#0 || #C5 =={core::num::==}{(core::Object) → core::bool} #0#0) {
#t162 = 3;
#t165 = 3;
break #L2;
}
}
{
if(#0#0 is ({g: core::Object?}) && (let final core::int #t169 = (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t170 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t171 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
#t162 = 4;
if(#0#0 is ({g: core::Object?}) && (let final core::int #t172 = (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t173 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t174 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
#t165 = 4;
break #L2;
}
}
{
if(#0#0 is ({a: core::Object?}) && (let final core::Object? #t172 = (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t173 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?})}.a{core::Object?})! in true)) {
#t162 = 5;
if(#0#0 is ({a: core::Object?}) && (let final core::Object? #t175 = (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t176 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?})}.a{core::Object?})! in true)) {
#t165 = 5;
break #L2;
}
}
{
if(#0#0 is ({b: core::Object?}) && (!((#0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t174 = #0#23#isSet = true in #0#23 = #0#0{({b: core::Object?})}.b{core::Object?}) == null) && true)) {
#t162 = 6;
if(#0#0 is ({b: core::Object?}) && (!((#0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t177 = #0#23#isSet = true in #0#23 = #0#0{({b: core::Object?})}.b{core::Object?}) == null) && true)) {
#t165 = 6;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t175 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t176 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t177 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
#t162 = 7;
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t178 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t179 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t180 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
#t165 = 7;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t178 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t179 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t180 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t181 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
#t162 = 8;
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t181 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t182 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t183 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t184 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
#t165 = 8;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t182 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t183 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t184 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t185 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t186 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t187 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
#t162 = 9;
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t185 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t186 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t187 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t188 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t189 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t190 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
#t165 = 9;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t188 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t189 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t190 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t191 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t192 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t193 = (#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t194 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t195 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t196 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t197 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t198 = (#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t199 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t200 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t201 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t202 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
#t162 = 10;
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t191 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t192 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t193 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t194 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t195 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t196 = (#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t197 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t198 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t199 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t200 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t201 = (#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t202 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t203 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t204 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t205 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
#t165 = 10;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t203 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t204 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t205 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C4 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t206 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t207 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t208 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t209 = (#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t210 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t211 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t212 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t213 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t214 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t215 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t216 = (#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t217 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t218 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t219 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t220 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t221 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t222 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t223 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t224 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
#t162 = 11;
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t206 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t207 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t208 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C4 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t209 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t210 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t211 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t212 = (#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t213 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t214 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t215 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t216 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t217 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t218 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t219 = (#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t220 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t221 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t222 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t223 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t224 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t225 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t226 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t227 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
#t165 = 11;
break #L2;
}
}
{
if(#0#0 is self::Class && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t225 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int})) {
#t162 = 12;
if(#0#0 is self::Class && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t228 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int})) {
#t165 = 12;
break #L2;
}
}
{
if(#0#0 is self::Class && #C7 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::finalField}{core::int}) {
#t162 = 13;
#t165 = 13;
break #L2;
}
}
{
if(#0#0 is self::Class && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t226 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int}) && #C8 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::getter}{core::int}) {
#t162 = 14;
if(#0#0 is self::Class && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t229 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int}) && #C8 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::getter}{core::int}) {
#t165 = 14;
break #L2;
}
}
{
if(#0#0 is self::Class) {
#t162 = 15;
#t165 = 15;
break #L2;
}
}
{
if(#0#0 =={core::Object::==}{(core::Object) → core::bool} #C9) {
#t162 = 16;
#t165 = 16;
break #L2;
}
}
{
if(#0#0 is ({e: core::Object?}) && !(#0#0{({e: core::Object?})}.e{core::Object?} =={core::Object::==}{(core::Object) → core::bool} #C10)) {
#t162 = 17;
#t165 = 17;
break #L2;
}
}
{
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (#0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} as{Unchecked} core::int).{core::num::>=}(#C11){(core::num) → core::bool}) {
#t162 = 18;
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (let core::int? #t230 = #0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} in #t230 == null ?{core::int} #t230 as{Unchecked} core::int : #t230{core::int}).{core::num::>=}(#C11){(core::num) → core::bool}) {
#t165 = 18;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t227 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1) {
#t162 = 19;
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t231 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1) {
#t165 = 19;
break #L2;
}
}
{
if(#0#0 is core::bool) {
#t162 = 20;
#t165 = 20;
break #L2;
}
}
{
if(#0#0 is core::Map<dynamic, dynamic> && o{core::Map<dynamic, dynamic>}.{core::Map::isEmpty}{core::bool}) {
#t162 = 21;
#t165 = 21;
break #L2;
}
}
{
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C12){(core::Object?) → core::bool} && #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C12){(core::Object?) → dynamic} is core::int) {
#t162 = 22;
#t165 = 22;
break #L2;
}
}
{
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C1){(core::Object?) → dynamic} is core::String) {
#t162 = 23;
#t165 = 23;
break #L2;
}
}
@@ -879,48 +879,48 @@ static method switchExpression(dynamic o) → core::int {
hoisted dynamic a;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool}) {
a = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C7){(core::Object?) → dynamic};
#t162 = 24;
#t165 = 24;
break #L2;
}
}
{
hoisted core::int b;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t228 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t229 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
#t162 = 25;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t232 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t233 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
#t165 = 25;
break #L2;
}
}
{
if(#0#0 is (core::Object?, core::Object?) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{(core::Object?, core::Object?)}.$1{core::Object?} && #C1 =={core::num::==}{(core::Object) → core::bool} #0#0{(core::Object?, core::Object?)}.$2{core::Object?}) {
#t162 = 26;
#t165 = 26;
break #L2;
}
}
{
hoisted dynamic c;
if(#0#0 is ({a: core::Object?, b: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t230 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?, b: core::Object?})}.a{core::Object?})) {
c = #0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t231 = #0#23#isSet = true in #0#23 = #0#0{({a: core::Object?, b: core::Object?})}.b{core::Object?};
#t162 = 27;
if(#0#0 is ({a: core::Object?, b: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t234 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?, b: core::Object?})}.a{core::Object?})) {
c = #0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t235 = #0#23#isSet = true in #0#23 = #0#0{({a: core::Object?, b: core::Object?})}.b{core::Object?};
#t165 = 27;
break #L2;
}
}
{
hoisted dynamic d;
if(#0#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t232 = d = #0#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
#t162 = 28;
if(#0#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t236 = d = #0#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
#t165 = 28;
break #L2;
}
}
{
if(true) {
#t162 = 0;
#t165 = 0;
break #L2;
}
}
throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t162;
} =>#t165;
}
static method test(dynamic expected, dynamic value) → dynamic {
self::expect(expected, self::ifCase(value));
@@ -1021,4 +1021,4 @@ Evaluated: RecordLiteral @ org-dartlang-testcase:///caching.dart:331:12 -> Recor
Evaluated: RecordLiteral @ org-dartlang-testcase:///caching.dart:332:12 -> RecordConstant(const ({c: 0, d: 1}))
Evaluated: RecordLiteral @ org-dartlang-testcase:///caching.dart:333:12 -> RecordConstant(const ({c: 0, d: 2}))
Evaluated: RecordLiteral @ org-dartlang-testcase:///caching.dart:334:11 -> RecordConstant(const ({c: 0, d: "foo"}))
Extra constant evaluation: evaluated: 2729, effectively constant: 14
Extra constant evaluation: evaluated: 2753, effectively constant: 14
@@ -994,7 +994,7 @@ static method ok<XnonNull extends core::Object, YnonNull extends self::ok::XnonN
dynamicVar = xPotentiallyNullArg;
dynamicVar = yNonNullArg;
dynamicVar = yPotentiallyNullArg;
core::Object objectVar = dynamicArg as{TypeError,ForDynamic,Unchecked} core::Object;
core::Object objectVar = let dynamic #t1 = dynamicArg in #t1 == null ?{core::Object} #t1 as{TypeError,ForDynamic} core::Object : #t1{core::Object};
objectVar = objectArg;
objectVar = numArg;
objectVar = intArg;
@@ -1014,10 +1014,10 @@ static method ok<XnonNull extends core::Object, YnonNull extends self::ok::XnonN
core::Function functionVar = dynamicArg as{TypeError,ForDynamic} core::Function;
functionVar = functionArg;
functionVar = toVoidArg;
functionVar = let final self::Tearoffable #t1 = tearoffableArg in #t1 == null ?{() → void} null : #t1.{self::Tearoffable::call}{() → void};
functionVar = let final self::Tearoffable #t2 = tearoffableArg in #t2 == null ?{() → void} null : #t2.{self::Tearoffable::call}{() → void};
() → void toVoidVar = dynamicArg as{TypeError,ForDynamic} () → void;
toVoidVar = toVoidArg;
toVoidVar = let final self::Tearoffable #t2 = tearoffableArg in #t2 == null ?{() → void} null : #t2.{self::Tearoffable::call}{() → void};
toVoidVar = let final self::Tearoffable #t3 = tearoffableArg in #t3 == null ?{() → void} null : #t3.{self::Tearoffable::call}{() → void};
self::Tearoffable tearoffableVar = dynamicArg as{TypeError,ForDynamic} self::Tearoffable;
tearoffableVar = tearoffableArg;
self::ok::XnonNull xNonNullVar = dynamicArg as{TypeError,ForDynamic} self::ok::XnonNull;
@@ -1035,57 +1035,57 @@ static method error<XnonNull extends core::Object, YnonNull extends self::error:
core::Object objectVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:114:22: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object objectVar = objectNullableArg;
^" in objectNullableArg as{TypeError,Unchecked} core::Object;
^" in let core::Object? #t4 = objectNullableArg in #t4 == null ?{core::Object} #t4 as{TypeError} core::Object : #t4{core::Object};
objectVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:115:15: Error: A value of type 'num?' can't be assigned to a variable of type 'Object' because 'num?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
objectVar = numNullableArg;
^" in numNullableArg as{TypeError,Unchecked} core::Object;
^" in let core::num? #t5 = numNullableArg in #t5 == null ?{core::Object} #t5 as{TypeError} core::Object : #t5{core::Object};
objectVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:116:15: Error: A value of type 'int?' can't be assigned to a variable of type 'Object' because 'int?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
objectVar = intNullableArg;
^" in intNullableArg as{TypeError,Unchecked} core::Object;
^" in let core::int? #t6 = intNullableArg in #t6 == null ?{core::Object} #t6 as{TypeError} core::Object : #t6{core::Object};
objectVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:117:15: Error: A value of type 'double?' can't be assigned to a variable of type 'Object' because 'double?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
objectVar = doubleNullableArg;
^" in doubleNullableArg as{TypeError,Unchecked} core::Object;
^" in let core::double? #t7 = doubleNullableArg in #t7 == null ?{core::Object} #t7 as{TypeError} core::Object : #t7{core::Object};
objectVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:118:15: Error: A value of type 'Function?' can't be assigned to a variable of type 'Object' because 'Function?' is nullable and 'Object' isn't.
- 'Function' is from 'dart:core'.
- 'Object' is from 'dart:core'.
objectVar = functionNullableArg;
^" in functionNullableArg as{TypeError,Unchecked} core::Object;
^" in let core::Function? #t8 = functionNullableArg in #t8 == null ?{core::Object} #t8 as{TypeError} core::Object : #t8{core::Object};
objectVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:119:15: Error: A value of type 'void Function()?' can't be assigned to a variable of type 'Object' because 'void Function()?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
objectVar = toVoidNullableArg;
^" in toVoidNullableArg as{TypeError,Unchecked} core::Object;
^" in let () →? void #t9 = toVoidNullableArg in #t9 == null ?{core::Object} #t9 as{TypeError} core::Object : #t9{core::Object};
objectVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:120:15: Error: A value of type 'Tearoffable?' can't be assigned to a variable of type 'Object' because 'Tearoffable?' is nullable and 'Object' isn't.
- 'Tearoffable' is from 'pkg/front_end/testcases/nnbd/assignability.dart'.
- 'Object' is from 'dart:core'.
objectVar = tearoffableNullableArg;
^" in tearoffableNullableArg as{TypeError,Unchecked} core::Object;
^" in let self::Tearoffable? #t10 = tearoffableNullableArg in #t10 == null ?{core::Object} #t10 as{TypeError} core::Object : #t10{core::Object};
objectVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:121:15: Error: A value of type 'XnonNull?' can't be assigned to a variable of type 'Object' because 'XnonNull?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
objectVar = xNonNullNullableArg;
^" in xNonNullNullableArg as{TypeError,Unchecked} core::Object;
^" in let self::error::XnonNull? #t11 = xNonNullNullableArg in #t11 == null ?{core::Object} #t11 as{TypeError} core::Object : #t11{core::Object};
objectVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:122:15: Error: A value of type 'XpotentiallyNull' can't be assigned to a variable of type 'Object' because 'XpotentiallyNull' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
objectVar = xPotentiallyNullArg;
^" in xPotentiallyNullArg as{TypeError,Unchecked} core::Object;
^" in let self::error::XpotentiallyNull% #t12 = xPotentiallyNullArg in #t12 == null ?{core::Object} #t12 as{TypeError} core::Object : #t12{core::Object};
objectVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:123:15: Error: A value of type 'XpotentiallyNull?' can't be assigned to a variable of type 'Object' because 'XpotentiallyNull?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
objectVar = xPotentiallyNullNullableArg;
^" in xPotentiallyNullNullableArg as{TypeError,Unchecked} core::Object;
^" in let self::error::XpotentiallyNull? #t13 = xPotentiallyNullNullableArg in #t13 == null ?{core::Object} #t13 as{TypeError} core::Object : #t13{core::Object};
objectVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:124:15: Error: A value of type 'YnonNull?' can't be assigned to a variable of type 'Object' because 'YnonNull?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
objectVar = yNonNullNullableArg;
^" in yNonNullNullableArg as{TypeError,Unchecked} core::Object;
^" in let self::error::YnonNull? #t14 = yNonNullNullableArg in #t14 == null ?{core::Object} #t14 as{TypeError} core::Object : #t14{core::Object};
objectVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:125:15: Error: A value of type 'YpotentiallyNull' can't be assigned to a variable of type 'Object' because 'YpotentiallyNull' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
objectVar = yPotentiallyNullArg;
^" in yPotentiallyNullArg as{TypeError,Unchecked} core::Object;
^" in let self::error::YpotentiallyNull% #t15 = yPotentiallyNullArg in #t15 == null ?{core::Object} #t15 as{TypeError} core::Object : #t15{core::Object};
objectVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:126:15: Error: A value of type 'YpotentiallyNull?' can't be assigned to a variable of type 'Object' because 'YpotentiallyNull?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
objectVar = yPotentiallyNullNullableArg;
^" in yPotentiallyNullNullableArg as{TypeError,Unchecked} core::Object;
^" in let self::error::YpotentiallyNull? #t16 = yPotentiallyNullNullableArg in #t16 == null ?{core::Object} #t16 as{TypeError} core::Object : #t16{core::Object};
core::num numVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:128:16: Error: A value of type 'Object' can't be assigned to a variable of type 'num'.
- 'Object' is from 'dart:core'.
num numVar = objectArg;
@@ -1096,13 +1096,13 @@ static method error<XnonNull extends core::Object, YnonNull extends self::error:
^" in objectNullableArg as{TypeError} core::num;
numVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:130:12: Error: A value of type 'num?' can't be assigned to a variable of type 'num' because 'num?' is nullable and 'num' isn't.
numVar = numNullableArg;
^" in numNullableArg as{TypeError,Unchecked} core::num;
^" in let core::num? #t17 = numNullableArg in #t17 == null ?{core::num} #t17 as{TypeError} core::num : #t17{core::num};
numVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:131:12: Error: A value of type 'int?' can't be assigned to a variable of type 'num' because 'int?' is nullable and 'num' isn't.
numVar = intNullableArg;
^" in intNullableArg as{TypeError,Unchecked} core::num;
^" in let core::int? #t18 = intNullableArg in #t18 == null ?{core::num} #t18 as{TypeError} core::num : #t18{core::num};
numVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:132:12: Error: A value of type 'double?' can't be assigned to a variable of type 'num' because 'double?' is nullable and 'num' isn't.
numVar = doubleNullableArg;
^" in doubleNullableArg as{TypeError,Unchecked} core::num;
^" in let core::double? #t19 = doubleNullableArg in #t19 == null ?{core::num} #t19 as{TypeError} core::num : #t19{core::num};
numVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:133:12: Error: A value of type 'Function' can't be assigned to a variable of type 'num'.
- 'Function' is from 'dart:core'.
numVar = functionArg;
@@ -1165,7 +1165,7 @@ static method error<XnonNull extends core::Object, YnonNull extends self::error:
^" in numNullableArg as{TypeError} core::int;
intVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:152:12: Error: A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
intVar = intNullableArg;
^" in intNullableArg as{TypeError,Unchecked} core::int;
^" in let core::int? #t20 = intNullableArg in #t20 == null ?{core::int} #t20 as{TypeError} core::int : #t20{core::int};
intVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:153:12: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
intVar = doubleArg;
^" in doubleArg as{TypeError} core::int;
@@ -1240,7 +1240,7 @@ static method error<XnonNull extends core::Object, YnonNull extends self::error:
^" in intNullableArg as{TypeError} core::double;
doubleVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:176:15: Error: A value of type 'double?' can't be assigned to a variable of type 'double' because 'double?' is nullable and 'double' isn't.
doubleVar = doubleNullableArg;
^" in doubleNullableArg as{TypeError,Unchecked} core::double;
^" in let core::double? #t21 = doubleNullableArg in #t21 == null ?{core::double} #t21 as{TypeError} core::double : #t21{core::double};
doubleVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:177:15: Error: A value of type 'Function' can't be assigned to a variable of type 'double'.
- 'Function' is from 'dart:core'.
doubleVar = functionArg;
@@ -1400,7 +1400,7 @@ static method error<XnonNull extends core::Object, YnonNull extends self::error:
^" in functionNullableArg as{TypeError} () → void;
toVoidVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:222:15: Error: A value of type 'void Function()?' can't be assigned to a variable of type 'void Function()' because 'void Function()?' is nullable and 'void Function()' isn't.
toVoidVar = toVoidNullableArg;
^" in toVoidNullableArg as{TypeError,Unchecked} () → void;
^" in let () →? void #t22 = toVoidNullableArg in #t22 == null ?{() → void} #t22 as{TypeError} () → void : #t22{() → void};
toVoidVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:223:15: Error: Can't tear off method 'call' from a potentially null value.
toVoidVar = tearoffableNullableArg;
^" in tearoffableNullableArg as{TypeError} () → void;
@@ -1483,7 +1483,7 @@ static method error<XnonNull extends core::Object, YnonNull extends self::error:
tearoffableVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:245:20: Error: A value of type 'Tearoffable?' can't be assigned to a variable of type 'Tearoffable' because 'Tearoffable?' is nullable and 'Tearoffable' isn't.
- 'Tearoffable' is from 'pkg/front_end/testcases/nnbd/assignability.dart'.
tearoffableVar = tearoffableNullableArg;
^" in tearoffableNullableArg as{TypeError,Unchecked} self::Tearoffable;
^" in let self::Tearoffable? #t23 = tearoffableNullableArg in #t23 == null ?{self::Tearoffable} #t23 as{TypeError} self::Tearoffable : #t23{self::Tearoffable};
tearoffableVar = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:246:20: Error: A value of type 'XnonNull' can't be assigned to a variable of type 'Tearoffable'.
- 'Tearoffable' is from 'pkg/front_end/testcases/nnbd/assignability.dart'.
tearoffableVar = xNonNullArg;
@@ -207,12 +207,12 @@ static method foo(self::B? x, core::List<self::B?> l, core::Map<self::B?, self::
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
fooContext(x); // Error.
^" in x as{TypeError,Unchecked} self::A);
^" in let self::B? #t1 = x in #t1 == null ?{self::A} #t1 as{TypeError} self::A : #t1{self::A});
self::A a = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:30:9: Error: A value of type 'B?' can't be assigned to a variable of type 'A' because 'B?' is nullable and 'A' isn't.
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
A a = x; // Error.
^" in x as{TypeError,Unchecked} self::A;
^" in let self::B? #t2 = x in #t2 == null ?{self::A} #t2 as{TypeError} self::A : #t2{self::A};
core::_GrowableList::_literal1<self::A>(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A' because 'B?' is nullable and 'A' isn't.
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
@@ -236,14 +236,14 @@ static method foo(self::B? x, core::List<self::B?> l, core::Map<self::B?, self::
{
synthesized core::Iterator<self::B?> :sync-for-iterator = l.{core::Iterable::iterator}{core::Iterator<self::B?>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final self::B? #t1 = :sync-for-iterator.{core::Iterator::current}{self::B?};
final self::B? #t3 = :sync-for-iterator.{core::Iterator::current}{self::B?};
{
self::A y = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:35:10: Error: A value of type 'B?' can't be assigned to a variable of type 'A' because 'B?' is nullable and 'A' isn't.
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
Try changing the type of the variable.
for (A y in l) {} // Error.
^" in #t1 as{TypeError,Unchecked} self::A;
^" in let self::B? #t4 = #t3 in #t4 == null ?{self::A} #t4 as{TypeError} self::A : #t4{self::A};
}
}
}
@@ -253,7 +253,7 @@ Try changing the type of the variable.
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
- 'Iterable' is from 'dart:core'.
for (A y in l2) {} // Error.
^" in l2 as{TypeError,Unchecked} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
^" in let core::List<self::B>? #t5 = l2 in #t5 == null ?{core::Iterable<dynamic>} #t5 as{TypeError} core::Iterable<dynamic> : #t5{core::Iterable<dynamic>}.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::A y = :sync-for-iterator.{core::Iterator::current}{Never};
{}
@@ -278,7 +278,7 @@ Try changing the type of the variable.
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
return x; // Error.
^" in x as{TypeError,Unchecked} self::A;
^" in let self::B? #t6 = x in #t6 == null ?{self::A} #t6 as{TypeError} self::A : #t6{self::A};
}
else {
return invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:47:18: Error: A value of type 'Future<B?>' can't be returned from an async function with return type 'FutureOr<A>'.
@@ -293,7 +293,7 @@ Try changing the type of the variable.
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
return x; // Error.
^" in x as{TypeError,Unchecked} self::A;
^" in let self::B? #t7 = x in #t7 == null ?{self::A} #t7 as{TypeError} self::A : #t7{self::A};
}
static method bar(core::List<self::B?> x, core::List<core::List<self::B?>> l, core::Map<core::List<self::B?>, core::List<self::B?>> m) → core::List<self::A> {
self::barContext(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:55:14: Error: The argument type 'List<B?>' can't be assigned to the parameter type 'List<A>' because 'B?' is nullable and 'A' isn't.
@@ -301,13 +301,13 @@ static method bar(core::List<self::B?> x, core::List<core::List<self::B?>> l, co
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
barContext(x); // Error.
^" in x as{TypeError,Unchecked} core::List<self::A>);
^" in x as{TypeError} core::List<self::A>);
core::List<self::A> y = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:56:15: Error: A value of type 'List<B?>' can't be assigned to a variable of type 'List<A>' because 'B?' is nullable and 'A' isn't.
- 'List' is from 'dart:core'.
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
List<A> y = x; // Error.
^" in x as{TypeError,Unchecked} core::List<self::A>;
^" in x as{TypeError} core::List<self::A>;
core::_GrowableList::_literal1<core::List<self::A>>(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:57:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>' because 'B?' is nullable and 'A' isn't.
- 'List' is from 'dart:core'.
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
@@ -328,7 +328,7 @@ static method bar(core::List<self::B?> x, core::List<core::List<self::B?>> l, co
{
synthesized core::Iterator<core::List<self::B?>> :sync-for-iterator = l.{core::Iterable::iterator}{core::Iterator<core::List<self::B?>>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final core::List<self::B?> #t2 = :sync-for-iterator.{core::Iterator::current}{core::List<self::B?>};
final core::List<self::B?> #t8 = :sync-for-iterator.{core::Iterator::current}{core::List<self::B?>};
{
core::List<self::A> y = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:59:16: Error: A value of type 'List<B?>' can't be assigned to a variable of type 'List<A>' because 'B?' is nullable and 'A' isn't.
- 'List' is from 'dart:core'.
@@ -336,7 +336,7 @@ static method bar(core::List<self::B?> x, core::List<core::List<self::B?>> l, co
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
Try changing the type of the variable.
for (List<A> y in l) {} // Error.
^" in #t2 as{TypeError,Unchecked} core::List<self::A>;
^" in #t8 as{TypeError} core::List<self::A>;
}
}
}
@@ -345,48 +345,48 @@ Try changing the type of the variable.
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
return x; // Error.
^" in x as{TypeError,Unchecked} core::List<self::A>;
^" in x as{TypeError} core::List<self::A>;
}
static method baz(self::C c) → void {
self::bazContext(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:64: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 #t3 = c in #t3 == null ?{() → core::num?} null : #t3.{self::C::call}{() → core::num?}) as{TypeError,Unchecked} () → core::num);
^" in (let final self::C #t9 = c in #t9 == null ?{() → core::num?} null : #t9.{self::C::call}{() → core::num?}) as{TypeError} () → core::num);
}
static method boz(Null x) → self::A {
self::fooContext(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:68:14: Error: The argument type 'Null' can't be assigned to the parameter type 'A' because 'A' is not nullable.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
fooContext(x); // Error.
^" in x as{TypeError,Unchecked} self::A);
^" in let Null #t10 = x in #t10 == null ?{self::A} #t10 as{TypeError} self::A : #t10{self::A});
self::fooContext(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:69:14: Error: The value 'null' can't be assigned to the parameter type 'A' because 'A' is not nullable.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
fooContext(null); // Error.
^" in null as{TypeError,Unchecked} self::A);
^" in let Null #t11 = null in #t11 == null ?{self::A} #t11 as{TypeError} self::A : #t11{self::A});
self::A a1 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:70:10: Error: A value of type 'Null' can't be assigned to a variable of type 'A' because 'A' is not nullable.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
A a1 = x; // Error.
^" in x as{TypeError,Unchecked} self::A;
^" in let Null #t12 = x in #t12 == null ?{self::A} #t12 as{TypeError} self::A : #t12{self::A};
self::A a2 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:71:10: Error: The value 'null' can't be assigned to a variable of type 'A' because 'A' is not nullable.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
A a2 = null; // Error.
^" in null as{TypeError,Unchecked} self::A;
^" in let Null #t13 = null in #t13 == null ?{self::A} #t13 as{TypeError} self::A : #t13{self::A};
if(true) {
return invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:73:12: Error: A value of type 'Null' can't be returned from a function with return type 'A' because 'A' is not nullable.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
return x; // Error.
^" in x as{TypeError,Unchecked} self::A;
^" in let Null #t14 = x in #t14 == null ?{self::A} #t14 as{TypeError} self::A : #t14{self::A};
}
else {
return invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:75:12: Error: The value 'null' can't be returned from a function with return type 'A' because 'A' is not nullable.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
return null; // Error.
^" in null as{TypeError,Unchecked} self::A;
^" in let Null #t15 = null in #t15 == null ?{self::A} #t15 as{TypeError} self::A : #t15{self::A};
}
function local() → FutureOr<self::A> async /* emittedValueType= self::A */ {
if(true) {
return invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:79:14: Error: The value 'null' can't be returned from an async function with return type 'FutureOr<A>' because 'FutureOr<A>' is not nullable.
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
return null; // Error.
^" in null as{TypeError,Unchecked} self::A;
^" in let Null #t16 = null in #t16 == null ?{self::A} #t16 as{TypeError} self::A : #t16{self::A};
}
else {
return invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:81:18: Error: A value of type 'Future<Null>' can't be returned from an async function with return type 'FutureOr<A>'.
@@ -56,31 +56,7 @@ static method error(core::Iterable<core::int>? i2, core::List<core::int>? l2, co
synthesized core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:9:17: Error: The type 'Iterable<int>?' used in the 'for' loop must implement 'Iterable<dynamic>' because 'Iterable<int>?' is nullable and 'Iterable<dynamic>' isn't.
- 'Iterable' is from 'dart:core'.
for (int x in i2) x;
^" in i2 as{TypeError,Unchecked} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{Never};
x;
}
}
{
final core::List<core::int> #t1 = core::_GrowableList::•<core::int>(0);
{
synthesized core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:10:18: Error: The type 'Iterable<int>?' used in the 'for' loop must implement 'Iterable<dynamic>' because 'Iterable<int>?' is nullable and 'Iterable<dynamic>' isn't.
- 'Iterable' is from 'dart:core'.
[for (int x in i2) x];
^" in i2 as{TypeError,Unchecked} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{Never};
#t1.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
{
synthesized core::Iterator<Never> :sync-for-iterator = 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'.
- 'Iterable' is from 'dart:core'.
for (int x in l2) x;
^" in l2 as{TypeError,Unchecked} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
^" in let core::Iterable<core::int>? #t1 = i2 in #t1 == null ?{core::Iterable<dynamic>} #t1 as{TypeError} core::Iterable<dynamic> : #t1{core::Iterable<dynamic>}.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{Never};
x;
@@ -88,15 +64,39 @@ static method error(core::Iterable<core::int>? i2, core::List<core::int>? l2, co
}
{
final core::List<core::int> #t2 = core::_GrowableList::•<core::int>(0);
{
synthesized core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:10:18: Error: The type 'Iterable<int>?' used in the 'for' loop must implement 'Iterable<dynamic>' because 'Iterable<int>?' is nullable and 'Iterable<dynamic>' isn't.
- 'Iterable' is from 'dart:core'.
[for (int x in i2) x];
^" in let core::Iterable<core::int>? #t3 = i2 in #t3 == null ?{core::Iterable<dynamic>} #t3 as{TypeError} core::Iterable<dynamic> : #t3{core::Iterable<dynamic>}.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{Never};
#t2.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
{
synthesized core::Iterator<Never> :sync-for-iterator = 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'.
- 'Iterable' is from 'dart:core'.
for (int x in l2) x;
^" in let core::List<core::int>? #t4 = l2 in #t4 == null ?{core::Iterable<dynamic>} #t4 as{TypeError} core::Iterable<dynamic> : #t4{core::Iterable<dynamic>}.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{Never};
x;
}
}
{
final core::List<core::int> #t5 = core::_GrowableList::•<core::int>(0);
{
synthesized core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:13:18: 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'.
- 'Iterable' is from 'dart:core'.
[for (int x in l2) x];
^" in l2 as{TypeError,Unchecked} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
^" in let core::List<core::int>? #t6 = l2 in #t6 == null ?{core::Iterable<dynamic>} #t6 as{TypeError} core::Iterable<dynamic> : #t6{core::Iterable<dynamic>}.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int x = :sync-for-iterator.{core::Iterator::current}{Never};
#t2.{core::List::add}{Invariant}(x){(core::int) → void};
#t5.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
@@ -107,15 +107,15 @@ static method error(core::Iterable<core::int>? i2, core::List<core::int>? l2, co
for (int x in o1) x;
^" in o1 as{TypeError} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t3 = :sync-for-iterator.{core::Iterator::current}{Never};
final dynamic #t7 = :sync-for-iterator.{core::Iterator::current}{Never};
{
core::int x = #t3 as{TypeError,ForDynamic} core::int;
core::int x = #t7 as{TypeError,ForDynamic} core::int;
x;
}
}
}
{
final core::List<core::int> #t4 = core::_GrowableList::•<core::int>(0);
final core::List<core::int> #t8 = core::_GrowableList::•<core::int>(0);
{
synthesized core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:16:18: Error: The type 'Object' used in the 'for' loop must implement 'Iterable<dynamic>'.
- 'Object' is from 'dart:core'.
@@ -123,10 +123,10 @@ static method error(core::Iterable<core::int>? i2, core::List<core::int>? l2, co
[for (int x in o1) x];
^" in o1 as{TypeError} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t5 = :sync-for-iterator.{core::Iterator::current}{Never};
final dynamic #t9 = :sync-for-iterator.{core::Iterator::current}{Never};
{
core::int x = #t5 as{TypeError,ForDynamic} core::int;
#t4.{core::List::add}{Invariant}(x){(core::int) → void};
core::int x = #t9 as{TypeError,ForDynamic} core::int;
#t8.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
@@ -138,15 +138,15 @@ static method error(core::Iterable<core::int>? i2, core::List<core::int>? l2, co
for (int x in o2) x;
^" in o2 as{TypeError} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t6 = :sync-for-iterator.{core::Iterator::current}{Never};
final dynamic #t10 = :sync-for-iterator.{core::Iterator::current}{Never};
{
core::int x = #t6 as{TypeError,ForDynamic} core::int;
core::int x = #t10 as{TypeError,ForDynamic} core::int;
x;
}
}
}
{
final core::List<core::int> #t7 = core::_GrowableList::•<core::int>(0);
final core::List<core::int> #t11 = core::_GrowableList::•<core::int>(0);
{
synthesized core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:19:18: Error: The type 'Object?' used in the 'for' loop must implement 'Iterable<dynamic>'.
- 'Object' is from 'dart:core'.
@@ -154,10 +154,10 @@ static method error(core::Iterable<core::int>? i2, core::List<core::int>? l2, co
[for (int x in o2) x];
^" in o2 as{TypeError} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t8 = :sync-for-iterator.{core::Iterator::current}{Never};
final dynamic #t12 = :sync-for-iterator.{core::Iterator::current}{Never};
{
core::int x = #t8 as{TypeError,ForDynamic} core::int;
#t7.{core::List::add}{Invariant}(x){(core::int) → void};
core::int x = #t12 as{TypeError,ForDynamic} core::int;
#t11.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
@@ -172,12 +172,12 @@ static method ok(core::Iterable<core::int> i1, core::List<core::int> l1, dynamic
}
}
{
final core::List<core::int> #t9 = core::_GrowableList::•<core::int>(0);
final core::List<core::int> #t13 = core::_GrowableList::•<core::int>(0);
{
synthesized 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};
#t9.{core::List::add}{Invariant}(x){(core::int) → void};
#t13.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
@@ -189,34 +189,34 @@ static method ok(core::Iterable<core::int> i1, core::List<core::int> l1, dynamic
}
}
{
final core::List<core::int> #t10 = core::_GrowableList::•<core::int>(0);
final core::List<core::int> #t14 = core::_GrowableList::•<core::int>(0);
{
synthesized 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};
#t10.{core::List::add}{Invariant}(x){(core::int) → void};
#t14.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
{
synthesized core::Iterator<dynamic> :sync-for-iterator = (d as{TypeError,ForDynamic} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t11 = :sync-for-iterator.{core::Iterator::current}{dynamic};
final dynamic #t15 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
core::int x = #t11 as{TypeError,ForDynamic} core::int;
core::int x = #t15 as{TypeError,ForDynamic} core::int;
x;
}
}
}
{
final core::List<core::int> #t12 = core::_GrowableList::•<core::int>(0);
final core::List<core::int> #t16 = core::_GrowableList::•<core::int>(0);
{
synthesized core::Iterator<dynamic> :sync-for-iterator = (d as{TypeError,ForDynamic} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t13 = :sync-for-iterator.{core::Iterator::current}{dynamic};
final dynamic #t17 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
core::int x = #t13 as{TypeError,ForDynamic} core::int;
#t12.{core::List::add}{Invariant}(x){(core::int) → void};
core::int x = #t17 as{TypeError,ForDynamic} core::int;
#t16.{core::List::add}{Invariant}(x){(core::int) → void};
}
}
}
@@ -67,7 +67,7 @@ static final field core::List<dynamic> s1 = core::_GrowableList::•<dynamic>(0)
static final field core::int? s2 = let final core::List<dynamic> #t1 = self::s1 in #t1 == null ?{core::int?} null : #t1.{core::List::length}{core::int};
static final field core::List<core::int> s3 = core::_List::filled<core::int>(2, invalid-expression "pkg/front_end/testcases/nnbd/issue41102.dart:19:36: Error: The value 'null' can't be assigned to the parameter type 'int' because 'int' is not nullable.
final s3 = new List<int>.filled(2, null);
^" in null as{TypeError,Unchecked} core::int);
^" in let Null #t2 = null in #t2 == null ?{core::int} #t2 as{TypeError} core::int : #t2{core::int});
static final field dynamic s4 = (() → Null {
core::int e = 0;
switch(e) /* core::int */ {
@@ -91,10 +91,10 @@ static final field dynamic s8 = invalid-expression "pkg/front_end/testcases/nnbd
- 'List' is from 'dart:core'.
final s8 = s7[0];
^" in self::s7.{core::List::[]}{<nullable>}.(0){(core::int) → dynamic};
static final field core::int s9 = let final core::List<dynamic>? #t2 = self::s7 in let final core::int #t3 = 0 in let final core::int #t4 = 0 in let final void #t5 = invalid-expression "pkg/front_end/testcases/nnbd/issue41102.dart:39:14: Error: Operator '[]=' cannot be called on 'List<dynamic>?' because it is potentially null.
static final field core::int s9 = let final core::List<dynamic>? #t3 = self::s7 in let final core::int #t4 = 0 in let final core::int #t5 = 0 in let final void #t6 = invalid-expression "pkg/front_end/testcases/nnbd/issue41102.dart:39:14: Error: Operator '[]=' cannot be called on 'List<dynamic>?' because it is potentially null.
- 'List' is from 'dart:core'.
final s9 = s7[0] = 0;
^" in #t2.{core::List::[]=}{<nullable>}.(#t3, #t4){(core::int, dynamic) → void} in #t4;
^" in #t3.{core::List::[]=}{<nullable>}.(#t4, #t5){(core::int, dynamic) → void} in #t5;
static final field core::int s10 = invalid-expression "pkg/front_end/testcases/nnbd/issue41102.dart:41:16: Error: Property 'length' cannot be accessed on 'List<dynamic>?' because it is potentially null.
- 'List' is from 'dart:core'.
Try accessing using ?. instead.
@@ -15,7 +15,7 @@ static method test() → dynamic async /* emittedValueType= dynamic */ {
core::List<dynamic> y = invalid-expression "pkg/front_end/testcases/nnbd/issue41108.dart:6:12: Error: A value of type 'List<dynamic>?' can't be assigned to a variable of type 'List<dynamic>' because 'List<dynamic>?' is nullable and 'List<dynamic>' isn't.
- 'List' is from 'dart:core'.
List y = await l(); // should be a List?
^" in await self::l() /* runtimeCheckType= asy::Future<core::List<dynamic>?> */ as{TypeError,Unchecked} core::List<dynamic>;
^" in let core::List<dynamic>? #t1 = await self::l() /* runtimeCheckType= asy::Future<core::List<dynamic>?> */ in #t1 == null ?{core::List<dynamic>} #t1 as{TypeError} core::List<dynamic> : #t1{core::List<dynamic>};
}
static method l() → asy::Future<core::List<dynamic>>?
return null;
@@ -31,7 +31,7 @@ static method test() → dynamic {
self::Null x = invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:8:12: Error: The value 'null' can't be assigned to a variable of type 'Null' because 'Null' is not nullable.
- 'Null' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
Null x = null;
^" in null as{TypeError,Unchecked} self::Null;
^" in let Null #t1 = null in #t1 == null ?{self::Null} #t1 as{TypeError} self::Null : #t1{self::Null};
invalid-expression "pkg/front_end/testcases/nnbd/issue41700b.dart:9:5: Error: The method 'foo' isn't defined for the class 'Null'.
- 'Null' is from 'pkg/front_end/testcases/nnbd/issue41700b.dart'.
Try correcting the name to the name of an existing method, or defining a method named 'foo'.
@@ -20,11 +20,11 @@ static method test<X extends core::Object? = dynamic>(self::test::X? x) → dyna
core::Object o = invalid-expression "pkg/front_end/testcases/nnbd/issue42089.dart:7:16: Error: A value of type 'X?' can't be assigned to a variable of type 'Object' because 'X?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object o = x;
^" in x{self::test::X? & core::String? /* '?' & '?' = '?' */} as{TypeError,Unchecked} core::Object;
^" in let self::test::X? & core::String? /* '?' & '?' = '?' */ #t1 = x{self::test::X? & core::String? /* '?' & '?' = '?' */} in #t1 == null ?{core::Object} #t1 as{TypeError} core::Object : #t1{core::Object};
o = invalid-expression "pkg/front_end/testcases/nnbd/issue42089.dart:8:9: Error: A value of type 'X?' can't be assigned to a variable of type 'Object' because 'X?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
o = x;
^" in x{self::test::X? & core::String? /* '?' & '?' = '?' */} as{TypeError,Unchecked} core::Object;
^" in let self::test::X? & core::String? /* '?' & '?' = '?' */ #t2 = x{self::test::X? & core::String? /* '?' & '?' = '?' */} in #t2 == null ?{core::Object} #t2 as{TypeError} core::Object : #t2{core::Object};
}
}
static method main() → dynamic {}
@@ -118,12 +118,12 @@ class A extends core::Object {
constructor constructor5([core::int? i = #C1]) → self::A
: self::A::i = invalid-expression "pkg/front_end/testcases/nnbd/issue42362.dart:19:18: Error: A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
: this.i = i; // error
^" in i as{TypeError,Unchecked} core::int, super core::Object::•()
^" in let core::int? #t1 = i in #t1 == null ?{core::int} #t1 as{TypeError} core::int : #t1{core::int}, super core::Object::•()
;
constructor constructor6({core::int? i = #C1}) → self::A
: self::A::i = invalid-expression "pkg/front_end/testcases/nnbd/issue42362.dart:22:18: Error: A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
: this.i = i; // error
^" in i as{TypeError,Unchecked} core::int, super core::Object::•()
^" in let core::int? #t2 = i in #t2 == null ?{core::int} #t2 as{TypeError} core::int : #t2{core::int}, super core::Object::•()
;
constructor constructor7({required core::int i}) → self::A
: self::A::i = i, super core::Object::•()
@@ -180,12 +180,12 @@ class C extends core::Object implements self::B {
constructor constructor5([core::int? i = #C1]) → self::C
: self::C::i = invalid-expression "pkg/front_end/testcases/nnbd/issue42362.dart:85:39: Error: A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
C.constructor5([int? i]) : this.i = i; // error
^" in i as{TypeError,Unchecked} core::int, super core::Object::•()
^" in let core::int? #t3 = i in #t3 == null ?{core::int} #t3 as{TypeError} core::int : #t3{core::int}, super core::Object::•()
;
constructor constructor6({core::int? i = #C1}) → self::C
: self::C::i = invalid-expression "pkg/front_end/testcases/nnbd/issue42362.dart:87:39: Error: A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
C.constructor6({int? i}) : this.i = i; // error
^" in i as{TypeError,Unchecked} core::int, super core::Object::•()
^" in let core::int? #t4 = i in #t4 == null ?{core::int} #t4 as{TypeError} core::int : #t4{core::int}, super core::Object::•()
;
constructor constructor7({required core::int i}) → self::C
: self::C::i = i, super core::Object::•()
@@ -6,7 +6,7 @@ import "dart:core" as core;
static method getNull() → dynamic
return null;
static method fn() → asy::Future<core::Object> async /* emittedValueType= core::Object */ {
core::Object o = await self::getNull() /* runtimeCheckType= asy::Future<dynamic> */ as{TypeError,ForDynamic,Unchecked} core::Object;
return await self::getNull() /* runtimeCheckType= asy::Future<dynamic> */ as{TypeError,ForDynamic,Unchecked} FutureOr<core::Object>;
core::Object o = let dynamic #t1 = await self::getNull() /* runtimeCheckType= asy::Future<dynamic> */ in #t1 == null ?{core::Object} #t1 as{TypeError,ForDynamic} core::Object : #t1{core::Object};
return let dynamic #t2 = await self::getNull() /* runtimeCheckType= asy::Future<dynamic> */ in #t2 == null ?{FutureOr<core::Object>} #t2 as{TypeError,ForDynamic} FutureOr<core::Object> : #t2{FutureOr<core::Object>};
}
static method main() → dynamic {}
@@ -22,7 +22,7 @@ class C<X extends self::C<self::C::X%, self::C::X%>? = self::C<dynamic, dynamic>
return invalid-expression "pkg/front_end/testcases/nnbd/issue43716a.dart:15:14: Error: A value of type 'Object?' can't be returned from a function with return type 'Object' because 'Object?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
return z.x; // Error.
^" in z{self::C<core::Object?, core::Object?>}.{self::C::x}{core::Object?} as{TypeError,Unchecked} core::Object;
^" in let core::Object? #t1 = z{self::C<core::Object?, core::Object?>}.{self::C::x}{core::Object?} in #t1 == null ?{core::Object} #t1 as{TypeError} core::Object : #t1{core::Object};
}
}
static field core::bool b = true;
@@ -20,6 +20,6 @@ static method bar(core::bool condition) → dynamic {
self::foo(invalid-expression "pkg/front_end/testcases/nnbd/issue43721.dart:13:7: Error: The argument type 'FutureOr<num?>' can't be assigned to the parameter type 'Object' because 'num?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
foo(z); // Error.
^" in z as{TypeError,Unchecked} core::Object);
^" in let FutureOr<core::num?>#t1 = z in #t1 == null ?{core::Object} #t1 as{TypeError} core::Object : #t1{core::Object});
}
static method main() → dynamic {}
@@ -5,7 +5,7 @@ import "dart:core" as core;
static final field core::bool inSoundMode = !(core::_GrowableList::•<core::int?>(0) is core::List<core::int>);
static method main() → dynamic {
try {
throw (null as dynamic) as{TypeError,Unchecked} core::Object;
throw let dynamic #t1 = null as dynamic in #t1 == null ?{core::Object} #t1 as{TypeError} core::Object : #t1{core::Object};
}
on core::TypeError catch(final core::TypeError e) {
core::print("${e.{core::Object::runtimeType}{core::Type}}:${e}");
@@ -14,5 +14,5 @@ static method main() → dynamic {
Extra constant evaluation status:
Evaluated: AsExpression @ org-dartlang-testcase:///issue49198.dart:9:16 -> NullConstant(null)
Evaluated: Let @ org-dartlang-testcase:///issue49198.dart:9:5 -> NullConstant(null)
Extra constant evaluation: evaluated: 10, effectively constant: 1
@@ -68,13 +68,13 @@ static method main() → dynamic {
let final self::Class1? #t75 = c1 in #t75 == null ?{core::int?} null : let final self::Class2? #t76 = #t75{self::Class1}.{self::Class1::field}{self::Class2?} in #t76 == null ?{core::int?} null : let final core::int #t77 = 0 in self::Extension|[](#t76{self::Class2}, #t77) == null ?{core::int?} self::Extension|[]=(#t76{self::Class2}, #t77, 1.{core::num::+}(c1{self::Class1}.{self::Class1::[]}(1){(core::int) → core::int}){(core::num) → core::int}) : null;
let final self::Class1? #t78 = c1 in #t78 == null ?{core::int?} null : let final self::Class2? #t79 = #t78{self::Class1}.{self::Class1::field}{self::Class2?} in #t79 == null ?{core::int?} null : self::Extension|[](#t79{self::Class2}, 0);
let final self::Class1? #t80 = c1 in #t80 == null ?{void} null : let final self::Class2? #t81 = #t80{self::Class1}.{self::Class1::field}{self::Class2?} in #t81 == null ?{void} null : self::Extension|[]=(#t81{self::Class2}, 0, 1);
let final self::Class1? #t82 = c1 in #t82 == null ?{void} null : let final self::Class2? #t83 = #t82{self::Class1}.{self::Class1::field}{self::Class2?} in #t83 == null ?{void} null : self::Extension|[]=(#t83{self::Class2}, 0, 1.{core::num::+}((let final self::Class2? #t84 = c2 in #t84 == null ?{core::int?} null : self::Extension|[](#t84{self::Class2}, 0)!) as{Unchecked} core::int){(core::num) → core::int});
let final self::Class1? #t85 = c1 in #t85 == null ?{core::int?} null : let final self::Class2? #t86 = #t85{self::Class1}.{self::Class1::field}{self::Class2?} in #t86 == null ?{core::int?} null : let final core::int #t87 = 0 in self::Extension|[]=(#t86{self::Class2}, #t87, self::Extension|[](#t86{self::Class2}, #t87).{core::num::+}(1){(core::num) → core::int});
let final self::Class1? #t88 = c1 in #t88 == null ?{core::int?} null : let final self::Class2? #t89 = #t88{self::Class1}.{self::Class1::field}{self::Class2?} in #t89 == null ?{core::int?} null : let final core::int #t90 = 0 in self::Extension|[]=(#t89{self::Class2}, #t90, self::Extension|[](#t89{self::Class2}, #t90).{core::num::+}(1.{core::num::+}((let final self::Class2? #t91 = c2 in #t91 == null ?{core::int?} null : self::Extension|[](#t91{self::Class2}, 0)!) as{Unchecked} core::int){(core::num) → core::int}){(core::num) → core::int});
let final self::Class1? #t92 = c1 in #t92 == null ?{core::int?} null : let final self::Class2? #t93 = #t92{self::Class1}.{self::Class1::field}{self::Class2?} in #t93 == null ?{core::int?} null : let final core::int #t94 = 0 in let final core::int #t95 = self::Extension|[](#t93{self::Class2}, #t94).{core::num::+}(1){(core::num) → core::int} in let final void #t96 = self::Extension|[]=(#t93{self::Class2}, #t94, #t95) in #t95;
let final self::Class1? #t97 = c1 in #t97 == null ?{core::int?} null : let final self::Class2? #t98 = #t97{self::Class1}.{self::Class1::field}{self::Class2?} in #t98 == null ?{core::int?} null : let final core::int #t99 = 0 in self::Extension|[]=(#t98{self::Class2}, #t99, self::Extension|[](#t98{self::Class2}, #t99).{core::num::+}(1){(core::num) → core::int});
let final self::Class1? #t100 = c1 in #t100 == null ?{core::int?} null : let final self::Class2? #t101 = #t100{self::Class1}.{self::Class1::field}{self::Class2?} in #t101 == null ?{core::int?} null : let final core::int #t102 = 0 in self::Extension|[](#t101{self::Class2}, #t102) == null ?{core::int?} self::Extension|[]=(#t101{self::Class2}, #t102, 1) : null;
let final self::Class1? #t103 = c1 in #t103 == null ?{core::int?} null : let final self::Class2? #t104 = #t103{self::Class1}.{self::Class1::field}{self::Class2?} in #t104 == null ?{core::int?} null : let final core::int #t105 = 0 in self::Extension|[](#t104{self::Class2}, #t105) == null ?{core::int?} self::Extension|[]=(#t104{self::Class2}, #t105, 1.{core::num::+}((let final self::Class2? #t106 = c2 in #t106 == null ?{core::int?} null : self::Extension|[](#t106{self::Class2}, 1)!) as{Unchecked} core::int){(core::num) → core::int}) : null;
let final self::Class1? #t82 = c1 in #t82 == null ?{void} null : let final self::Class2? #t83 = #t82{self::Class1}.{self::Class1::field}{self::Class2?} in #t83 == null ?{void} null : self::Extension|[]=(#t83{self::Class2}, 0, 1.{core::num::+}(let core::int? #t84 = let final self::Class2? #t85 = c2 in #t85 == null ?{core::int?} null : self::Extension|[](#t85{self::Class2}, 0)! in #t84 == null ?{core::int} #t84 as core::int : #t84{core::int}){(core::num) → core::int});
let final self::Class1? #t86 = c1 in #t86 == null ?{core::int?} null : let final self::Class2? #t87 = #t86{self::Class1}.{self::Class1::field}{self::Class2?} in #t87 == null ?{core::int?} null : let final core::int #t88 = 0 in self::Extension|[]=(#t87{self::Class2}, #t88, self::Extension|[](#t87{self::Class2}, #t88).{core::num::+}(1){(core::num) → core::int});
let final self::Class1? #t89 = c1 in #t89 == null ?{core::int?} null : let final self::Class2? #t90 = #t89{self::Class1}.{self::Class1::field}{self::Class2?} in #t90 == null ?{core::int?} null : let final core::int #t91 = 0 in self::Extension|[]=(#t90{self::Class2}, #t91, self::Extension|[](#t90{self::Class2}, #t91).{core::num::+}(1.{core::num::+}(let core::int? #t92 = let final self::Class2? #t93 = c2 in #t93 == null ?{core::int?} null : self::Extension|[](#t93{self::Class2}, 0)! in #t92 == null ?{core::int} #t92 as core::int : #t92{core::int}){(core::num) → core::int}){(core::num) → core::int});
let final self::Class1? #t94 = c1 in #t94 == null ?{core::int?} null : let final self::Class2? #t95 = #t94{self::Class1}.{self::Class1::field}{self::Class2?} in #t95 == null ?{core::int?} null : let final core::int #t96 = 0 in let final core::int #t97 = self::Extension|[](#t95{self::Class2}, #t96).{core::num::+}(1){(core::num) → core::int} in let final void #t98 = self::Extension|[]=(#t95{self::Class2}, #t96, #t97) in #t97;
let final self::Class1? #t99 = c1 in #t99 == null ?{core::int?} null : let final self::Class2? #t100 = #t99{self::Class1}.{self::Class1::field}{self::Class2?} in #t100 == null ?{core::int?} null : let final core::int #t101 = 0 in self::Extension|[]=(#t100{self::Class2}, #t101, self::Extension|[](#t100{self::Class2}, #t101).{core::num::+}(1){(core::num) → core::int});
let final self::Class1? #t102 = c1 in #t102 == null ?{core::int?} null : let final self::Class2? #t103 = #t102{self::Class1}.{self::Class1::field}{self::Class2?} in #t103 == null ?{core::int?} null : let final core::int #t104 = 0 in self::Extension|[](#t103{self::Class2}, #t104) == null ?{core::int?} self::Extension|[]=(#t103{self::Class2}, #t104, 1) : null;
let final self::Class1? #t105 = c1 in #t105 == null ?{core::int?} null : let final self::Class2? #t106 = #t105{self::Class1}.{self::Class1::field}{self::Class2?} in #t106 == null ?{core::int?} null : let final core::int #t107 = 0 in self::Extension|[](#t106{self::Class2}, #t107) == null ?{core::int?} self::Extension|[]=(#t106{self::Class2}, #t107, 1.{core::num::+}(let core::int? #t108 = let final self::Class2? #t109 = c2 in #t109 == null ?{core::int?} null : self::Extension|[](#t109{self::Class2}, 1)! in #t108 == null ?{core::int} #t108 as core::int : #t108{core::int}){(core::num) → core::int}) : null;
}
@@ -139,4 +139,4 @@ Evaluated: VariableGet @ org-dartlang-testcase:///null_shorting_index.dart:72:25
Evaluated: VariableGet @ org-dartlang-testcase:///null_shorting_index.dart:72:25 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///null_shorting_index.dart:73:25 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///null_shorting_index.dart:73:25 -> IntConstant(0)
Extra constant evaluation: evaluated: 705, effectively constant: 60
Extra constant evaluation: evaluated: 723, effectively constant: 60
@@ -8,6 +8,6 @@ class A<T extends core::Object? = dynamic> extends core::Object {
: super core::Object::•()
;
get current() → self::A::T%
return this.{self::A::_current}{self::A::T?} as{Unchecked} self::A::T%;
return let self::A::T? #t1 = this.{self::A::_current}{self::A::T?} in #t1 == null ?{self::A::T%} #t1 as self::A::T% : #t1{self::A::T%};
}
static method main() → dynamic {}
@@ -79,14 +79,14 @@ static method returnExplicit() → core::String {
core::print("foo");
return invalid-expression "pkg/front_end/testcases/nnbd/return_null.dart:13:10: Error: The value 'null' can't be returned from a function with return type 'String' because 'String' is not nullable.
return null; // error
^" in null as{TypeError,Unchecked} core::String;
^" in let Null #t1 = null in #t1 == null ?{core::String} #t1 as{TypeError} core::String : #t1{core::String};
}
static method returnMixed(core::bool b) → core::String {
if(b) {
core::print("foo");
return invalid-expression "pkg/front_end/testcases/nnbd/return_null.dart:19:12: Error: The value 'null' can't be returned from a function with return type 'String' because 'String' is not nullable.
return null; // error
^" in null as{TypeError,Unchecked} core::String;
^" in let Null #t2 = null in #t2 == null ?{core::String} #t2 as{TypeError} core::String : #t2{core::String};
}
return invalid-expression "pkg/front_end/testcases/nnbd/return_null.dart:16:8: Error: A non-null value must be returned since the return type 'String' doesn't allow null.
String returnMixed(bool b) /*error*/ {
@@ -153,14 +153,14 @@ static method localFunctions() → dynamic {
core::print("foo");
return invalid-expression "pkg/front_end/testcases/nnbd/return_null.dart:69:12: Error: The value 'null' can't be returned from a function with return type 'String' because 'String' is not nullable.
return null; // error
^" in null as{TypeError,Unchecked} core::String;
^" in let Null #t3 = null in #t3 == null ?{core::String} #t3 as{TypeError} core::String : #t3{core::String};
}
function returnMixed(core::bool b) → core::String {
if(b) {
core::print("foo");
return invalid-expression "pkg/front_end/testcases/nnbd/return_null.dart:75:14: Error: The value 'null' can't be returned from a function with return type 'String' because 'String' is not nullable.
return null; // error
^" in null as{TypeError,Unchecked} core::String;
^" in let Null #t4 = null in #t4 == null ?{core::String} #t4 as{TypeError} core::String : #t4{core::String};
}
return invalid-expression "pkg/front_end/testcases/nnbd/return_null.dart:72:3: Error: A non-null value must be returned since the return type 'String' doesn't allow null.
String returnMixed(bool b) /* error */ {
@@ -15,7 +15,7 @@ class C<X extends core::Object? = dynamic> extends core::Object {
;
}
static method check<T extends core::Object? = dynamic>(self::C<core::List<self::check::T%>> f) → self::check::T% {
return null as{Unchecked} self::check::T%;
return let Null #t1 = null in #t1 == null ?{self::check::T%} #t1 as self::check::T% : #t1{self::check::T%};
}
static method test() → void {
core::int x = self::check<core::int>(new self::C::•<core::List<core::int>>((core::List<core::int> x) → void {}));
@@ -24,3 +24,10 @@ static method test() → void {
^" in x as{TypeError} core::String;
}
static method main() → dynamic {}
Extra constant evaluation status:
Evaluated: EqualsNull @ org-dartlang-testcase:///type_constraint_solving_closures_in_upper_and_lower_bounds.dart:10:3 -> BoolConstant(true)
Evaluated: VariableGet @ org-dartlang-testcase:///type_constraint_solving_closures_in_upper_and_lower_bounds.dart:10:15 -> NullConstant(null)
Evaluated: VariableGet @ org-dartlang-testcase:///type_constraint_solving_closures_in_upper_and_lower_bounds.dart:10:3 -> NullConstant(null)
Extra constant evaluation: evaluated: 9, effectively constant: 3
@@ -150,7 +150,7 @@ Try removing the extra positional arguments.
i = super.{in_2::SuperQ::nullabilityGetter};
this.{self::ClassQ::nullabilitySetter} = invalid-expression "pkg/front_end/testcases/nnbd_mixed/hierarchy/in_dill_out_in/in_out_in.dart:52:25: Error: The value 'null' can't be assigned to a variable of type 'int' because 'int' is not nullable.
nullabilitySetter = null; // error
^" in null as{TypeError,Unchecked} core::int;
^" in let Null #t1 = null in #t1 == null ?{core::int} #t1 as{TypeError} core::int : #t1{core::int};
super.{in_2::SuperQ::nullabilitySetter} = null;
}
abstract member-signature method noSuchMethod(core::Invocation invocation) → dynamic; -> core::Object::noSuchMethod
@@ -128,7 +128,7 @@ Try removing the extra positional arguments.
i = super.{in_2::SuperQ::nullabilityGetter};
this.{self::ClassQ::nullabilitySetter} = invalid-expression "pkg/front_end/testcases/nnbd_mixed/hierarchy/in_out_dill_in/in_out_in.dart:52:25: Error: The value 'null' can't be assigned to a variable of type 'int' because 'int' is not nullable.
nullabilitySetter = null; // error
^" in null as{TypeError,Unchecked} core::int;
^" in let Null #t1 = null in #t1 == null ?{core::int} #t1 as{TypeError} core::int : #t1{core::int};
super.{in_2::SuperQ::nullabilitySetter} = null;
}
abstract member-signature method noSuchMethod(core::Invocation invocation) → dynamic; -> core::Object::noSuchMethod
@@ -193,7 +193,7 @@ Try removing the extra positional arguments.
i = super.{in_::_LegacyMixedInQ&Object&SuperQ::nullabilityGetter};
this.{self::ClassMixedInQ::nullabilitySetter} = invalid-expression "pkg/front_end/testcases/nnbd_mixed/hierarchy/in_out_dill_in/in_out_in.dart:102:25: Error: The value 'null' can't be assigned to a variable of type 'int' because 'int' is not nullable.
nullabilitySetter = null; // error
^" in null as{TypeError,Unchecked} core::int;
^" in let Null #t2 = null in #t2 == null ?{core::int} #t2 as{TypeError} core::int : #t2{core::int};
super.{in_::_LegacyMixedInQ&Object&SuperQ::nullabilitySetter} = null;
}
abstract member-signature method noSuchMethod(core::Invocation invocation) → dynamic; -> core::Object::noSuchMethod
@@ -126,7 +126,7 @@ class ClassQ extends in_::LegacyClassQ implements in_2::Super {
core::int i;
this.{self::ClassQ::nullabilityMethod}(invalid-expression "pkg/front_end/testcases/nnbd_mixed/hierarchy/in_out_in.dart:38:23: Error: The value 'null' can't be assigned to the parameter type 'int' because 'int' is not nullable.
nullabilityMethod(null); // error
^" in null as{TypeError,Unchecked} core::int){(core::int) → core::int};
^" in let Null #t1 = null in #t1 == null ?{core::int} #t1 as{TypeError} core::int : #t1{core::int}){(core::int) → core::int};
i = super.{in_2::SuperQ::nullabilityMethod}(null);
i = this.{in_::LegacyClassQ::optionalArgumentsMethod}(null, null){(core::int*, [core::int*]) →* core::int*};
i = super.{in_2::SuperQ::optionalArgumentsMethod}(null);
@@ -138,7 +138,7 @@ Try removing the extra positional arguments.
i = super.{in_2::SuperQ::nullabilityGetter};
this.{self::ClassQ::nullabilitySetter} = invalid-expression "pkg/front_end/testcases/nnbd_mixed/hierarchy/in_out_in.dart:52:25: Error: The value 'null' can't be assigned to a variable of type 'int' because 'int' is not nullable.
nullabilitySetter = null; // error
^" in null as{TypeError,Unchecked} core::int;
^" in let Null #t2 = null in #t2 == null ?{core::int} #t2 as{TypeError} core::int : #t2{core::int};
super.{in_2::SuperQ::nullabilitySetter} = null;
}
abstract member-signature method noSuchMethod(core::Invocation invocation) → dynamic; -> core::Object::noSuchMethod
@@ -194,7 +194,7 @@ class ClassMixedInQ extends in_::LegacyMixedInQ implements in_2::Super {
core::int i;
this.{self::ClassMixedInQ::nullabilityMethod}(invalid-expression "pkg/front_end/testcases/nnbd_mixed/hierarchy/in_out_in.dart:88:23: Error: The value 'null' can't be assigned to the parameter type 'int' because 'int' is not nullable.
nullabilityMethod(null); // error
^" in null as{TypeError,Unchecked} core::int){(core::int) → core::int};
^" in let Null #t3 = null in #t3 == null ?{core::int} #t3 as{TypeError} core::int : #t3{core::int}){(core::int) → core::int};
i = super.{in_::_LegacyMixedInQ&Object&SuperQ::nullabilityMethod}(null);
i = this.{in_::LegacyMixedInQ::optionalArgumentsMethod}(null, null){(core::int*, [core::int*]) →* core::int*};
i = super.{in_::_LegacyMixedInQ&Object&SuperQ::optionalArgumentsMethod}(null);
@@ -206,7 +206,7 @@ Try removing the extra positional arguments.
i = super.{in_::_LegacyMixedInQ&Object&SuperQ::nullabilityGetter};
this.{self::ClassMixedInQ::nullabilitySetter} = invalid-expression "pkg/front_end/testcases/nnbd_mixed/hierarchy/in_out_in.dart:102:25: Error: The value 'null' can't be assigned to a variable of type 'int' because 'int' is not nullable.
nullabilitySetter = null; // error
^" in null as{TypeError,Unchecked} core::int;
^" in let Null #t4 = null in #t4 == null ?{core::int} #t4 as{TypeError} core::int : #t4{core::int};
super.{in_::_LegacyMixedInQ&Object&SuperQ::nullabilitySetter} = null;
}
abstract member-signature method noSuchMethod(core::Invocation invocation) → dynamic; -> core::Object::noSuchMethod
@@ -6,9 +6,9 @@ static final field core::bool isLegacySubtyping1a = #C1 is core::List<core::int>
static const field core::bool isLegacySubtyping1b = #C2;
static final field core::bool isLegacySubtyping2a = #C3 is core::List<core::int>;
static const field core::bool isLegacySubtyping2b = #C2;
static final field core::List<core::int> assertLegacySubtyping1a = #C1 as{Unchecked} core::List<core::int>;
static final field core::List<core::int> assertLegacySubtyping1a = #C1 as core::List<core::int>;
static const field core::List<core::int> assertLegacySubtyping1b = #C1;
static final field core::List<core::int> assertLegacySubtyping2a = #C3 as{Unchecked} core::List<core::int>;
static final field core::List<core::int> assertLegacySubtyping2a = #C3 as core::List<core::int>;
static const field core::List<core::int> assertLegacySubtyping2b = #C3;
static method main() → void {
self::expect(self::isLegacySubtyping1a, #C2);
@@ -16,7 +16,7 @@ static method f1(core::int x) → core::int?
static method test() → void {
(core::int*) → core::int* f = invalid-expression "pkg/front_end/testcases/nnbd_mixed/issue42181.dart:10:9: Error: The value 'null' can't be assigned to a variable of type 'int Function(int)' because 'int Function(int)' is not nullable.
F f = null; // Static error
^" in null as{TypeError,Unchecked} (core::int*) → core::int*;
^" in let Null #t1 = null in #t1 == null ?{(core::int*) → core::int*} #t1 as{TypeError} (core::int*) → core::int* : #t1{(core::int*) → core::int*};
f = #C1;
}
static method main() → dynamic {}
@@ -35,13 +35,13 @@ static method test() → dynamic {
core::int i = sub.{opt::_SubClass&Class&Mixin::classMethod}(null){(core::int*) →* core::int*};
core::int j = invalid-expression "pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in/test_lib.dart:10:15: Error: A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
int j = sub.mixinMethod(null);
^" in sub.{opt::_SubClass&Class&Mixin::mixinMethod}(invalid-expression "pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in/test_lib.dart:10:27: Error: The value 'null' can't be assigned to the parameter type 'int' because 'int' is not nullable.
^" in let core::int? #t1 = sub.{opt::_SubClass&Class&Mixin::mixinMethod}(invalid-expression "pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in/test_lib.dart:10:27: Error: The value 'null' can't be assigned to the parameter type 'int' because 'int' is not nullable.
int j = sub.mixinMethod(null);
^" in null as{TypeError,Unchecked} core::int){(core::int) →* core::int?} as{TypeError,Unchecked} core::int;
^" in let Null #t2 = null in #t2 == null ?{core::int} #t2 as{TypeError} core::int : #t2{core::int}){(core::int) →* core::int?} in #t1 == null ?{core::int} #t1 as{TypeError} core::int : #t1{core::int};
sub.{opt::_SubClass&Class&Mixin::classField2} = sub.{opt::_SubClass&Class&Mixin::classField1}{core::int*};
sub.{opt::_SubClass&Class&Mixin::mixinField2} = invalid-expression "pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in/test_lib.dart:12:25: Error: A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
sub.mixinField2 = sub.mixinField1;
^" in sub.{opt::_SubClass&Class&Mixin::mixinField1}{core::int?} as{TypeError,Unchecked} core::int;
^" in let core::int? #t3 = sub.{opt::_SubClass&Class&Mixin::mixinField1}{core::int?} in #t3 == null ?{core::int} #t3 as{TypeError} core::int : #t3{core::int};
}
library;
@@ -24,12 +24,12 @@ static method test() → dynamic {
FutureOr<() → opt::A*>foLegacyNonNullable = invalid-expression "pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:13:42: Error: The value 'null' can't be assigned to a variable of type 'FutureOr<A Function()>' because 'FutureOr<A Function()>' is not nullable.
- 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/issue41501_lib.dart'.
FutureOr<AAlias> foLegacyNonNullable = null; // error
^" in null as{TypeError,Unchecked} FutureOr<() → opt::A*>;
^" in let Null #t1 = null in #t1 == null ?{FutureOr<() → opt::A*>} #t1 as{TypeError} FutureOr<() → opt::A*> : #t1{FutureOr<() → opt::A*>};
has-declared-initializer FutureOr<() →? opt::A*>foLegacyNullable = null;
FutureOr<opt::A>foNonNullable = invalid-expression "pkg/front_end/testcases/nonfunction_type_aliases/issue41501.dart:15:47: Error: The value 'null' can't be assigned to a variable of type 'FutureOr<A>' because 'FutureOr<A>' is not nullable.
- 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/issue41501_lib.dart'.
FutureOr<AAliasNonNullable> foNonNullable = null; // error
^" in null as{TypeError,Unchecked} FutureOr<opt::A>;
^" in let Null #t2 = null in #t2 == null ?{FutureOr<opt::A>} #t2 as{TypeError} FutureOr<opt::A> : #t2{FutureOr<opt::A>};
has-declared-initializer FutureOr<opt::A?>foNullable = null;
has-declared-initializer FutureOr<opt::A?>foNonNullableNullable = null;
has-declared-initializer FutureOr<opt::A?>foNullableNullable = null;
@@ -322,7 +322,7 @@ abstract class _MyList&Object&ListMixin<E extends core::Object? = dynamic> exten
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(core::int start, core::int end, [covariant-by-class self::_MyList&Object&ListMixin::E? fill = #C2]) → void {
self::_MyList&Object&ListMixin::E% value = let self::_MyList&Object&ListMixin::E? #t6 = fill in #t6 == null ?{self::_MyList&Object&ListMixin::E%} #t6 as{Unchecked} self::_MyList&Object&ListMixin::E% : #t6{self::_MyList&Object&ListMixin::E%};
self::_MyList&Object&ListMixin::E% value = let self::_MyList&Object&ListMixin::E? #t6 = fill in #t6 == null ?{self::_MyList&Object&ListMixin::E%} let self::_MyList&Object&ListMixin::E? #t7 = #t6 in #t7 == null ?{self::_MyList&Object&ListMixin::E%} #t7 as self::_MyList&Object&ListMixin::E% : #t7{self::_MyList&Object&ListMixin::E%} : #t6{self::_MyList&Object&ListMixin::E%};
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
for (core::int i = start; i.{core::num::<}(end){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{core::List::[]=}(i, value){(core::int, self::_MyList&Object&ListMixin::E%) → void};
@@ -496,7 +496,7 @@ abstract class _MyList&Object&ListMixin<E extends core::Object? = dynamic> exten
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyList&Object&ListMixin::E% element = :sync-for-iterator.{core::Iterator::current}{self::_MyList&Object&ListMixin::E%};
{
this.{core::List::[]=}(let final core::int #t7 = index in let final core::int #t8 = index = #t7.{core::num::+}(1){(core::num) → core::int} in #t7, element){(core::int, self::_MyList&Object&ListMixin::E%) → void};
this.{core::List::[]=}(let final core::int #t8 = index in let final core::int #t9 = index = #t8.{core::num::+}(1){(core::num) → core::int} in #t8, element){(core::int, self::_MyList&Object&ListMixin::E%) → void};
}
}
}
@@ -538,31 +538,31 @@ class MyList<E extends core::Object? = dynamic> extends self::_MyList&Object&Lis
}
static method test1(core::Object o) → core::String
return block {
core::String #t9;
core::String #t10;
final synthesized core::Object #0#0 = o;
#L1:
{
{
hoisted core::Object? x;
hoisted core::Object? y;
if(#0#0 is core::List<core::Object?> && #0#0{core::List<core::Object?>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C8 && (let final core::Object? #t10 = x = #0#0{core::List<core::Object?>}.{core::List::[]}(0){(core::int) → core::Object?} in true) && #C9 =={core::num::==}{(core::Object) → core::bool} #0#0{core::List<core::Object?>}.{core::List::[]}(1){(core::int) → core::Object?}) {
if(#0#0 is core::List<core::Object?> && #0#0{core::List<core::Object?>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C8 && (let final core::Object? #t11 = x = #0#0{core::List<core::Object?>}.{core::List::[]}(0){(core::int) → core::Object?} in true) && #C9 =={core::num::==}{(core::Object) → core::bool} #0#0{core::List<core::Object?>}.{core::List::[]}(1){(core::int) → core::Object?}) {
y = #0#0{core::List<core::Object?>}.{core::List::[]}(2){(core::int) → core::Object?};
#t9 = "match-1";
#t10 = "match-1";
break #L1;
}
}
{
if(true) {
#t9 = "no match";
#t10 = "no match";
break #L1;
}
}
throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t9;
} =>#t10;
static method test2(core::Object o) → core::String
return block {
core::String #t11;
core::String #t12;
final synthesized core::Object #0#0 = o;
#L2:
{
@@ -572,22 +572,22 @@ static method test2(core::Object o) → core::String
if(#0#0 is core::List<core::Object?> && #0#0{core::List<core::Object?>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C8 && #C10 =={core::num::==}{(core::Object) → core::bool} #0#0{core::List<core::Object?>}.{core::List::[]}(0){(core::int) → core::Object?}) {
x = #0#0{core::List<core::Object?>}.{core::List::[]}(1){(core::int) → core::Object?};
y = #0#0{core::List<core::Object?>}.{core::List::[]}(2){(core::int) → core::Object?};
#t11 = "match-1";
#t12 = "match-1";
break #L2;
}
}
{
if(true) {
#t11 = "no match";
#t12 = "no match";
break #L2;
}
}
throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t11;
} =>#t12;
static method test3(core::Object o) → core::String
return block {
core::String #t12;
core::String #t13;
final synthesized core::Object #0#0 = o;
synthesized core::bool #0#4;
synthesized core::bool #0#4#isSet = false;
@@ -599,29 +599,29 @@ static method test3(core::Object o) → core::String
{
{
hoisted core::Object x;
if(#0#0 is core::List<core::Object?> && (#0#4#isSet ?{core::bool} #0#4{core::bool} : let final core::bool #t13 = #0#4#isSet = true in #0#4 = #0#0{core::List<core::Object?>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C9) && (let final core::Object? #t14 = (#0#6#isSet ?{core::Object?} #0#6{core::Object?} : let final core::bool #t15 = #0#6#isSet = true in #0#6 = #0#0{core::List<core::Object?>}.{core::List::[]}(0){(core::int) → core::Object?})! in let final core::Object? #t16 = x = (#0#6#isSet ?{core::Object?} #0#6{core::Object?} : let final core::bool #t17 = #0#6#isSet = true in #0#6 = #0#0{core::List<core::Object?>}.{core::List::[]}(0){(core::int) → core::Object?})! in true) && #C10 =={core::num::==}{(core::Object) → core::bool} (#0#8#isSet ?{core::Object?} #0#8{core::Object?} : let final core::bool #t18 = #0#8#isSet = true in #0#8 = #0#0{core::List<core::Object?>}.{core::List::[]}(1){(core::int) → core::Object?})) {
#t12 = "match-1";
if(#0#0 is core::List<core::Object?> && (#0#4#isSet ?{core::bool} #0#4{core::bool} : let final core::bool #t14 = #0#4#isSet = true in #0#4 = #0#0{core::List<core::Object?>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C9) && (let final core::Object? #t15 = (#0#6#isSet ?{core::Object?} #0#6{core::Object?} : let final core::bool #t16 = #0#6#isSet = true in #0#6 = #0#0{core::List<core::Object?>}.{core::List::[]}(0){(core::int) → core::Object?})! in let final core::Object? #t17 = x = (#0#6#isSet ?{core::Object?} #0#6{core::Object?} : let final core::bool #t18 = #0#6#isSet = true in #0#6 = #0#0{core::List<core::Object?>}.{core::List::[]}(0){(core::int) → core::Object?})! in true) && #C10 =={core::num::==}{(core::Object) → core::bool} (#0#8#isSet ?{core::Object?} #0#8{core::Object?} : let final core::bool #t19 = #0#8#isSet = true in #0#8 = #0#0{core::List<core::Object?>}.{core::List::[]}(1){(core::int) → core::Object?})) {
#t13 = "match-1";
break #L3;
}
}
{
hoisted core::Object x;
if(#0#0 is core::List<core::Object?> && (#0#4#isSet ?{core::bool} #0#4{core::bool} : let final core::bool #t19 = #0#4#isSet = true in #0#4 = #0#0{core::List<core::Object?>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C9) && #C10 =={core::num::==}{(core::Object) → core::bool} (#0#6#isSet ?{core::Object?} #0#6{core::Object?} : let final core::bool #t20 = #0#6#isSet = true in #0#6 = #0#0{core::List<core::Object?>}.{core::List::[]}(0){(core::int) → core::Object?})) {
(#0#8#isSet ?{core::Object?} #0#8{core::Object?} : let final core::bool #t21 = #0#8#isSet = true in #0#8 = #0#0{core::List<core::Object?>}.{core::List::[]}(1){(core::int) → core::Object?})!;
x = (#0#8#isSet ?{core::Object?} #0#8{core::Object?} : let final core::bool #t22 = #0#8#isSet = true in #0#8 = #0#0{core::List<core::Object?>}.{core::List::[]}(1){(core::int) → core::Object?})!;
#t12 = "match-2";
if(#0#0 is core::List<core::Object?> && (#0#4#isSet ?{core::bool} #0#4{core::bool} : let final core::bool #t20 = #0#4#isSet = true in #0#4 = #0#0{core::List<core::Object?>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C9) && #C10 =={core::num::==}{(core::Object) → core::bool} (#0#6#isSet ?{core::Object?} #0#6{core::Object?} : let final core::bool #t21 = #0#6#isSet = true in #0#6 = #0#0{core::List<core::Object?>}.{core::List::[]}(0){(core::int) → core::Object?})) {
(#0#8#isSet ?{core::Object?} #0#8{core::Object?} : let final core::bool #t22 = #0#8#isSet = true in #0#8 = #0#0{core::List<core::Object?>}.{core::List::[]}(1){(core::int) → core::Object?})!;
x = (#0#8#isSet ?{core::Object?} #0#8{core::Object?} : let final core::bool #t23 = #0#8#isSet = true in #0#8 = #0#0{core::List<core::Object?>}.{core::List::[]}(1){(core::int) → core::Object?})!;
#t13 = "match-2";
break #L3;
}
}
{
if(true) {
#t12 = "no match";
#t13 = "no match";
break #L3;
}
}
throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t12;
} =>#t13;
static method main() → dynamic {
final self::MyList<core::int> ml1 = new self::MyList::•<core::int>(core::_GrowableList::_literal3<core::int>(1, 2, 3));
self::expect("match-1", self::test1(ml1));
@@ -656,4 +656,4 @@ Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:462:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:471:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:480:12 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1239, effectively constant: 4
Extra constant evaluation: evaluated: 1245, effectively constant: 4
@@ -7,7 +7,7 @@ static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
{
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in #C1 =={core::Object::==}{(core::Object) → core::bool} #0#0 as{Unchecked} core::Object) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in #C1 =={core::Object::==}{(core::Object) → core::bool} (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object})) {
{
break #L1;
}
@@ -389,7 +389,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(core::int start, core::int end, [covariant-by-class cac::_CustomList&Object&ListMixin::E? fill = #C5]) → void {
cac::_CustomList&Object&ListMixin::E% value = let cac::_CustomList&Object&ListMixin::E? #t18 = fill in #t18 == null ?{cac::_CustomList&Object&ListMixin::E%} #t18 as{Unchecked} cac::_CustomList&Object&ListMixin::E% : #t18{cac::_CustomList&Object&ListMixin::E%};
cac::_CustomList&Object&ListMixin::E% value = let cac::_CustomList&Object&ListMixin::E? #t18 = fill in #t18 == null ?{cac::_CustomList&Object&ListMixin::E%} let cac::_CustomList&Object&ListMixin::E? #t19 = #t18 in #t19 == null ?{cac::_CustomList&Object&ListMixin::E%} #t19 as cac::_CustomList&Object&ListMixin::E% : #t19{cac::_CustomList&Object&ListMixin::E%} : #t18{cac::_CustomList&Object&ListMixin::E%};
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
for (core::int i = start; i.{core::num::<}(end){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{core::List::[]=}(i, value){(core::int, cac::_CustomList&Object&ListMixin::E%) → void};
@@ -563,7 +563,7 @@ abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> e
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
cac::_CustomList&Object&ListMixin::E% element = :sync-for-iterator.{core::Iterator::current}{cac::_CustomList&Object&ListMixin::E%};
{
this.{core::List::[]=}(let final core::int #t19 = index in let final core::int #t20 = index = #t19.{core::num::+}(1){(core::num) → core::int} in #t19, element){(core::int, cac::_CustomList&Object&ListMixin::E%) → void};
this.{core::List::[]=}(let final core::int #t20 = index in let final core::int #t21 = index = #t20.{core::num::+}(1){(core::num) → core::int} in #t20, element){(core::int, cac::_CustomList&Object&ListMixin::E%) → void};
}
}
}
@@ -615,4 +615,4 @@ Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:462:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:471:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:480:12 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1209, effectively constant: 4
Extra constant evaluation: evaluated: 1215, effectively constant: 4
@@ -138,7 +138,7 @@ static method ifCase(dynamic o) → core::int {
}
{
final synthesized dynamic #17#0 = o;
if(#17#0 is core::Map<core::int, core::int> && #17#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (#17#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} as{Unchecked} core::int).{core::num::>=}(#C11){(core::num) → core::bool}) {
if(#17#0 is core::Map<core::int, core::int> && #17#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (let core::int? #t42 = #17#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} in #t42 == null ?{core::int} #t42 as{Unchecked} core::int : #t42{core::int}).{core::num::>=}(#C11){(core::num) → core::bool}) {
return 18;
}
}
@@ -190,8 +190,8 @@ static method ifCase(dynamic o) → core::int {
synthesized core::bool #24#4#isSet = false;
{
hoisted core::int b;
if(#24#0 is core::Map<dynamic, dynamic> && #24#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t42 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t43 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
if(#24#0 is core::Map<dynamic, dynamic> && #24#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t43 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t44 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
{
return 25;
}
@@ -220,7 +220,7 @@ static method ifCase(dynamic o) → core::int {
final synthesized dynamic #27#0 = o;
{
hoisted dynamic d;
if(#27#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #27#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t44 = d = #27#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
if(#27#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #27#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t45 = d = #27#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
return 28;
}
}
@@ -238,7 +238,7 @@ static method ifCaseElse(dynamic o) → core::int {
final synthesized dynamic #1#0 = o;
synthesized core::Object? #1#2;
synthesized core::bool #1#2#isSet = false;
if(#1#0 is ({f: core::Object?}) && ((let final core::int #t45 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t46 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t47 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final core::int #t48 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t49 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t50 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
if(#1#0 is ({f: core::Object?}) && ((let final core::int #t46 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t47 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t48 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final core::int #t49 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t50 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t51 = #1#2#isSet = true in #1#2 = #1#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
return 2;
}
else {
@@ -250,12 +250,12 @@ static method ifCaseElse(dynamic o) → core::int {
final synthesized dynamic #3#0 = o;
synthesized core::Object? #3#2;
synthesized core::bool #3#2#isSet = false;
if(#3#0 is ({g: core::Object?}) && (let final core::int #t51 = (#3#2#isSet ?{core::Object?} #3#2{core::Object?} : let final core::bool #t52 = #3#2#isSet = true in #3#2 = #3#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#3#2#isSet ?{core::Object?} #3#2{core::Object?} : let final core::bool #t53 = #3#2#isSet = true in #3#2 = #3#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
if(#3#0 is ({g: core::Object?}) && (let final core::int #t52 = (#3#2#isSet ?{core::Object?} #3#2{core::Object?} : let final core::bool #t53 = #3#2#isSet = true in #3#2 = #3#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#3#2#isSet ?{core::Object?} #3#2{core::Object?} : let final core::bool #t54 = #3#2#isSet = true in #3#2 = #3#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
return 4;
}
else {
final synthesized dynamic #4#0 = o;
if(#4#0 is ({a: core::Object?}) && (let final core::Object? #t54 = #4#0{({a: core::Object?})}.a{core::Object?}! in true)) {
if(#4#0 is ({a: core::Object?}) && (let final core::Object? #t55 = #4#0{({a: core::Object?})}.a{core::Object?}! in true)) {
return 5;
}
else {
@@ -277,7 +277,7 @@ static method ifCaseElse(dynamic o) → core::int {
final synthesized dynamic #8#0 = o;
synthesized core::int #8#2;
synthesized core::bool #8#2#isSet = false;
if(#8#0 is core::List<dynamic> && (#8#2#isSet ?{core::int} #8#2{core::int} : let final core::bool #t55 = #8#2#isSet = true in #8#2 = #8#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool} && #C2 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C8 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && #C3 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}((#8#2#isSet ?{core::int} #8#2{core::int} : let final core::bool #t56 = #8#2#isSet = true in #8#2 = #8#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic}) {
if(#8#0 is core::List<dynamic> && (#8#2#isSet ?{core::int} #8#2{core::int} : let final core::bool #t56 = #8#2#isSet = true in #8#2 = #8#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool} && #C2 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C8 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && #C3 =={core::num::==}{(core::Object) → core::bool} #8#0{core::List<dynamic>}.{core::List::[]}((#8#2#isSet ?{core::int} #8#2{core::int} : let final core::bool #t57 = #8#2#isSet = true in #8#2 = #8#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic}) {
return 9;
}
else {
@@ -288,7 +288,7 @@ static method ifCaseElse(dynamic o) → core::int {
synthesized core::bool #9#15#isSet = false;
synthesized dynamic #9#19;
synthesized core::bool #9#19#isSet = false;
if(#9#0 is core::List<dynamic> && #9#0{core::List<dynamic>}.{core::List::length}{core::int}.{core::num::>=}(#C7){(core::num) → core::bool} && #C8 =={core::num::==}{(core::Object) → core::bool} #9#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C3 =={core::num::==}{(core::Object) → core::bool} #9#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && ((#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t57 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t58 = (#9#15#isSet ?{dynamic} #9#15{dynamic} : let final core::bool #t59 = #9#15#isSet = true in #9#15 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t60 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#9#15#isSet ?{dynamic} #9#15{dynamic} : let final core::bool #t61 = #9#15#isSet = true in #9#15 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t62 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t63 = (#9#19#isSet ?{dynamic} #9#19{dynamic} : let final core::bool #t64 = #9#19#isSet = true in #9#19 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t65 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#9#19#isSet ?{dynamic} #9#19{dynamic} : let final core::bool #t66 = #9#19#isSet = true in #9#19 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t67 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
if(#9#0 is core::List<dynamic> && #9#0{core::List<dynamic>}.{core::List::length}{core::int}.{core::num::>=}(#C7){(core::num) → core::bool} && #C8 =={core::num::==}{(core::Object) → core::bool} #9#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C3 =={core::num::==}{(core::Object) → core::bool} #9#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && ((#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t58 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t59 = (#9#15#isSet ?{dynamic} #9#15{dynamic} : let final core::bool #t60 = #9#15#isSet = true in #9#15 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t61 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#9#15#isSet ?{dynamic} #9#15{dynamic} : let final core::bool #t62 = #9#15#isSet = true in #9#15 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t63 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t64 = (#9#19#isSet ?{dynamic} #9#19{dynamic} : let final core::bool #t65 = #9#19#isSet = true in #9#19 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t66 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#9#19#isSet ?{dynamic} #9#19{dynamic} : let final core::bool #t67 = #9#19#isSet = true in #9#19 = (#9#12#isSet ?{core::List<dynamic>} #9#12{core::List<dynamic>} : let final core::bool #t68 = #9#12#isSet = true in #9#12 = #9#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
return 10;
}
else {
@@ -301,7 +301,7 @@ static method ifCaseElse(dynamic o) → core::int {
synthesized core::bool #10#16#isSet = false;
synthesized dynamic #10#20;
synthesized core::bool #10#20#isSet = false;
if(#10#0 is core::List<dynamic> && (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t68 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool} && #C3 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C4 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && ((#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t69 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t70 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t71 = (#10#16#isSet ?{dynamic} #10#16{dynamic} : let final core::bool #t72 = #10#16#isSet = true in #10#16 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t73 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t74 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#10#16#isSet ?{dynamic} #10#16{dynamic} : let final core::bool #t75 = #10#16#isSet = true in #10#16 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t76 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t77 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t78 = (#10#20#isSet ?{dynamic} #10#20{dynamic} : let final core::bool #t79 = #10#20#isSet = true in #10#20 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t80 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t81 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#10#20#isSet ?{dynamic} #10#20{dynamic} : let final core::bool #t82 = #10#20#isSet = true in #10#20 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t83 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t84 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}((#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t85 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic}) {
if(#10#0 is core::List<dynamic> && (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t69 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool} && #C3 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C4 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} && ((#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t70 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t71 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t72 = (#10#16#isSet ?{dynamic} #10#16{dynamic} : let final core::bool #t73 = #10#16#isSet = true in #10#16 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t74 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t75 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#10#16#isSet ?{dynamic} #10#16{dynamic} : let final core::bool #t76 = #10#16#isSet = true in #10#16 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t77 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t78 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t79 = (#10#20#isSet ?{dynamic} #10#20{dynamic} : let final core::bool #t80 = #10#20#isSet = true in #10#20 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t81 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t82 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#10#20#isSet ?{dynamic} #10#20{dynamic} : let final core::bool #t83 = #10#20#isSet = true in #10#20 = (#10#12#isSet ?{core::List<dynamic>} #10#12{core::List<dynamic>} : let final core::bool #t84 = #10#12#isSet = true in #10#12 = #10#0{core::List<dynamic>}.{core::List::sublist}(2, (#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t85 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} #10#0{core::List<dynamic>}.{core::List::[]}((#10#2#isSet ?{core::int} #10#2{core::int} : let final core::bool #t86 = #10#2#isSet = true in #10#2 = #10#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic}) {
return 11;
}
else {
@@ -336,7 +336,7 @@ static method ifCaseElse(dynamic o) → core::int {
}
else {
final synthesized dynamic #17#0 = o;
if(#17#0 is core::Map<core::int, core::int> && #17#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (#17#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} as{Unchecked} core::int).{core::num::>=}(#C11){(core::num) → core::bool}) {
if(#17#0 is core::Map<core::int, core::int> && #17#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (let core::int? #t87 = #17#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} in #t87 == null ?{core::int} #t87 as{Unchecked} core::int : #t87{core::int}).{core::num::>=}(#C11){(core::num) → core::bool}) {
return 18;
}
else {
@@ -380,8 +380,8 @@ static method ifCaseElse(dynamic o) → core::int {
synthesized core::bool #24#4#isSet = false;
{
hoisted core::int b;
if(#24#0 is core::Map<dynamic, dynamic> && #24#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t86 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t87 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
if(#24#0 is core::Map<dynamic, dynamic> && #24#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t88 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#24#4#isSet ?{dynamic} #24#4{dynamic} : let final core::bool #t89 = #24#4#isSet = true in #24#4 = #24#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
{
return 25;
}
@@ -405,7 +405,7 @@ static method ifCaseElse(dynamic o) → core::int {
final synthesized dynamic #27#0 = o;
{
hoisted dynamic d;
if(#27#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #27#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t88 = d = #27#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
if(#27#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #27#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t90 = d = #27#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
return 28;
}
else {
@@ -493,7 +493,7 @@ static method switchStatement(dynamic o) → core::int {
}
}
{
if(#0#0 is ({f: core::Object?}) && ((let final core::int #t89 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t90 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t91 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final core::int #t92 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t93 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t94 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
if(#0#0 is ({f: core::Object?}) && ((let final core::int #t91 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t92 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t93 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final core::int #t94 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t95 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t96 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
{
return 2;
}
@@ -507,63 +507,63 @@ static method switchStatement(dynamic o) → core::int {
}
}
{
if(#0#0 is ({g: core::Object?}) && (let final core::int #t95 = (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t96 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t97 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
if(#0#0 is ({g: core::Object?}) && (let final core::int #t97 = (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t98 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t99 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
{
return 4;
}
}
}
{
if(#0#0 is ({a: core::Object?}) && (let final core::Object? #t98 = (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t99 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?})}.a{core::Object?})! in true)) {
if(#0#0 is ({a: core::Object?}) && (let final core::Object? #t100 = (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t101 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?})}.a{core::Object?})! in true)) {
{
return 5;
}
}
}
{
if(#0#0 is ({b: core::Object?}) && (!((#0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t100 = #0#23#isSet = true in #0#23 = #0#0{({b: core::Object?})}.b{core::Object?}) == null) && true)) {
if(#0#0 is ({b: core::Object?}) && (!((#0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t102 = #0#23#isSet = true in #0#23 = #0#0{({b: core::Object?})}.b{core::Object?}) == null) && true)) {
{
return 6;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t101 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t102 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t103 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t103 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t104 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t105 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
{
return 7;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t104 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t105 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t106 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t107 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t106 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t107 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t108 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t109 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
{
return 8;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t108 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t109 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t110 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t111 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t112 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t113 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t110 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t111 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t112 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t113 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t114 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t115 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
{
return 9;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t114 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t115 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t116 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t117 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t118 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t119 = (#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t120 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t121 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t122 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t123 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t124 = (#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t125 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t126 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t127 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t128 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t116 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t117 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t118 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t119 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t120 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t121 = (#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t122 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t123 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t124 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t125 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t126 = (#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t127 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t128 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t129 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t130 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
{
return 10;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t129 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t130 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t131 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C4 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t132 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t133 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t134 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t135 = (#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t136 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t137 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t138 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t139 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t140 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t141 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t142 = (#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t143 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t144 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t145 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t146 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t147 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t148 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t149 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t150 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t131 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t132 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t133 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C4 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t134 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t135 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t136 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t137 = (#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t138 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t139 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t140 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t141 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t142 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t143 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t144 = (#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t145 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t146 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t147 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t148 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t149 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t150 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t151 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t152 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
{
return 11;
}
}
}
{
if(#0#0 is self::Class && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t151 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int})) {
if(#0#0 is self::Class && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t153 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int})) {
{
return 12;
}
@@ -577,7 +577,7 @@ static method switchStatement(dynamic o) → core::int {
}
}
{
if(#0#0 is self::Class && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t152 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int}) && #C8 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::getter}{core::int}) {
if(#0#0 is self::Class && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t154 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int}) && #C8 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::getter}{core::int}) {
{
return 14;
}
@@ -605,14 +605,14 @@ static method switchStatement(dynamic o) → core::int {
}
}
{
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (#0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} as{Unchecked} core::int).{core::num::>=}(#C11){(core::num) → core::bool}) {
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (let core::int? #t155 = #0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} in #t155 == null ?{core::int} #t155 as{Unchecked} core::int : #t155{core::int}).{core::num::>=}(#C11){(core::num) → core::bool}) {
{
return 18;
}
}
}
{
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t153 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1) {
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t156 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1) {
{
return 19;
}
@@ -648,7 +648,7 @@ static method switchStatement(dynamic o) → core::int {
}
{
hoisted dynamic a;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool} && (let final dynamic #t154 = a = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C7){(core::Object?) → dynamic} in true)) {
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool} && (let final dynamic #t157 = a = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C7){(core::Object?) → dynamic} in true)) {
{
return 24;
}
@@ -656,7 +656,7 @@ static method switchStatement(dynamic o) → core::int {
}
{
hoisted core::int b;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && ((#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t155 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int && (let final core::int #t156 = b = (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t157 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int in true))) {
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && ((#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t158 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int && (let final core::int #t159 = b = (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t160 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int in true))) {
{
return 25;
}
@@ -671,7 +671,7 @@ static method switchStatement(dynamic o) → core::int {
}
{
hoisted dynamic c;
if(#0#0 is ({a: core::Object?, b: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t158 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?, b: core::Object?})}.a{core::Object?}) && (let final core::Object? #t159 = c = #0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t160 = #0#23#isSet = true in #0#23 = #0#0{({a: core::Object?, b: core::Object?})}.b{core::Object?} in true)) {
if(#0#0 is ({a: core::Object?, b: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t161 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?, b: core::Object?})}.a{core::Object?}) && (let final core::Object? #t162 = c = #0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t163 = #0#23#isSet = true in #0#23 = #0#0{({a: core::Object?, b: core::Object?})}.b{core::Object?} in true)) {
{
return 27;
}
@@ -679,7 +679,7 @@ static method switchStatement(dynamic o) → core::int {
}
{
hoisted dynamic d;
if(#0#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t161 = d = #0#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
if(#0#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t164 = d = #0#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
{
return 28;
}
@@ -697,7 +697,7 @@ static method switchStatement(dynamic o) → core::int {
static method switchExpression(dynamic o) → core::int {
core::print("o = ${o}");
return block {
core::int #t162;
core::int #t165;
final synthesized dynamic #0#0 = o;
synthesized core::Object? #0#4;
synthesized core::bool #0#4#isSet = false;
@@ -739,139 +739,139 @@ static method switchExpression(dynamic o) → core::int {
{
{
if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0) {
#t162 = 1;
#t165 = 1;
break #L2;
}
}
{
if(#0#0 is ({f: core::Object?}) && ((let final core::int #t163 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t164 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t165 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final core::int #t166 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t167 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t168 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
#t162 = 2;
if(#0#0 is ({f: core::Object?}) && ((let final core::int #t166 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t167 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t168 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::>=}(#C2){(core::num) → core::bool}) && (let final core::int #t169 = (#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t170 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int in ((#0#4#isSet ?{core::Object?} #0#4{core::Object?} : let final core::bool #t171 = #0#4#isSet = true in #0#4 = #0#0{({f: core::Object?})}.f{core::Object?}) as core::int).{core::num::<}(#C3){(core::num) → core::bool}))) {
#t165 = 2;
break #L2;
}
}
{
if(#C4 =={core::num::==}{(core::Object) → core::bool} #0#0 || #C5 =={core::num::==}{(core::Object) → core::bool} #0#0) {
#t162 = 3;
#t165 = 3;
break #L2;
}
}
{
if(#0#0 is ({g: core::Object?}) && (let final core::int #t169 = (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t170 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t171 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
#t162 = 4;
if(#0#0 is ({g: core::Object?}) && (let final core::int #t172 = (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t173 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int in #C6 =={core::num::==}{(core::Object) → core::bool} (#0#15#isSet ?{core::Object?} #0#15{core::Object?} : let final core::bool #t174 = #0#15#isSet = true in #0#15 = #0#0{({g: core::Object?})}.g{core::Object?}) as core::int)) {
#t165 = 4;
break #L2;
}
}
{
if(#0#0 is ({a: core::Object?}) && (let final core::Object? #t172 = (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t173 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?})}.a{core::Object?})! in true)) {
#t162 = 5;
if(#0#0 is ({a: core::Object?}) && (let final core::Object? #t175 = (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t176 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?})}.a{core::Object?})! in true)) {
#t165 = 5;
break #L2;
}
}
{
if(#0#0 is ({b: core::Object?}) && (!((#0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t174 = #0#23#isSet = true in #0#23 = #0#0{({b: core::Object?})}.b{core::Object?}) == null) && true)) {
#t162 = 6;
if(#0#0 is ({b: core::Object?}) && (!((#0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t177 = #0#23#isSet = true in #0#23 = #0#0{({b: core::Object?})}.b{core::Object?}) == null) && true)) {
#t165 = 6;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t175 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t176 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t177 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
#t162 = 7;
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t178 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t179 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t180 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
#t165 = 7;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t178 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t179 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t180 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t181 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
#t162 = 8;
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t181 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t182 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t183 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t184 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
#t165 = 8;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t182 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t183 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t184 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t185 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t186 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t187 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
#t162 = 9;
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t185 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t186 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t187 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t188 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t189 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t190 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
#t165 = 9;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t188 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t189 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t190 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t191 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t192 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t193 = (#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t194 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t195 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t196 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t197 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t198 = (#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t199 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t200 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t201 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t202 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
#t162 = 10;
if(#0#0 is core::List<dynamic> && (#0#34#isSet ?{core::bool} #0#34{core::bool} : let final core::bool #t191 = #0#34#isSet = true in #0#34 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t192 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C7){(core::num) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t193 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t194 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t195 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t196 = (#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t197 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t198 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#50#isSet ?{dynamic} #0#50{dynamic} : let final core::bool #t199 = #0#50#isSet = true in #0#50 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t200 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t201 = (#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t202 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t203 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#53#isSet ?{dynamic} #0#53{dynamic} : let final core::bool #t204 = #0#53#isSet = true in #0#53 = (#0#47#isSet ?{core::List<dynamic>} #0#47{core::List<dynamic>} : let final core::bool #t205 = #0#47#isSet = true in #0#47 = #0#0{core::List<dynamic>}.{core::List::sublist}(2){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool}))) {
#t165 = 10;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t203 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t204 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t205 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C4 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t206 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t207 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t208 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t209 = (#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t210 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t211 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t212 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t213 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t214 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t215 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t216 = (#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t217 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t218 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t219 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t220 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t221 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t222 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t223 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t224 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
#t162 = 11;
if(#0#0 is core::List<dynamic> && (#0#38#isSet ?{core::bool} #0#38{core::bool} : let final core::bool #t206 = #0#38#isSet = true in #0#38 = (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t207 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::>=}(#C2){(core::num) → core::bool}) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#30#isSet ?{dynamic} #0#30{dynamic} : let final core::bool #t208 = #0#30#isSet = true in #0#30 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) && #C4 =={core::num::==}{(core::Object) → core::bool} (#0#32#isSet ?{dynamic} #0#32{dynamic} : let final core::bool #t209 = #0#32#isSet = true in #0#32 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) && ((#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t210 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t211 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C7 && (let final core::int #t212 = (#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t213 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t214 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t215 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int in ((#0#61#isSet ?{dynamic} #0#61{dynamic} : let final core::bool #t216 = #0#61#isSet = true in #0#61 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t217 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t218 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(0){(core::int) → dynamic}) as core::int).{core::num::<}(#C1){(core::num) → core::bool}) && (let final core::int #t219 = (#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t220 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t221 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t222 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int in ((#0#64#isSet ?{dynamic} #0#64{dynamic} : let final core::bool #t223 = #0#64#isSet = true in #0#64 = (#0#58#isSet ?{core::List<dynamic>} #0#58{core::List<dynamic>} : let final core::bool #t224 = #0#58#isSet = true in #0#58 = #0#0{core::List<dynamic>}.{core::List::sublist}(2, (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t225 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int, [core::int?]) → core::List<dynamic>}).{core::List::[]}(1){(core::int) → dynamic}) as core::int).{core::num::>}(#C7){(core::num) → core::bool})) && #C5 =={core::num::==}{(core::Object) → core::bool} (#0#43#isSet ?{dynamic} #0#43{dynamic} : let final core::bool #t226 = #0#43#isSet = true in #0#43 = #0#0{core::List<dynamic>}.{core::List::[]}((#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t227 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}).{core::num::-}(1){(core::num) → core::int}){(core::int) → dynamic})) {
#t165 = 11;
break #L2;
}
}
{
if(#0#0 is self::Class && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t225 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int})) {
#t162 = 12;
if(#0#0 is self::Class && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t228 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int})) {
#t165 = 12;
break #L2;
}
}
{
if(#0#0 is self::Class && #C7 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::finalField}{core::int}) {
#t162 = 13;
#t165 = 13;
break #L2;
}
}
{
if(#0#0 is self::Class && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t226 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int}) && #C8 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::getter}{core::int}) {
#t162 = 14;
if(#0#0 is self::Class && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#69#isSet ?{core::int} #0#69{core::int} : let final core::bool #t229 = #0#69#isSet = true in #0#69 = #0#0{self::Class}.{self::Class::field}{core::int}) && #C8 =={core::num::==}{(core::Object) → core::bool} #0#0{self::Class}.{self::Class::getter}{core::int}) {
#t165 = 14;
break #L2;
}
}
{
if(#0#0 is self::Class) {
#t162 = 15;
#t165 = 15;
break #L2;
}
}
{
if(#0#0 =={core::Object::==}{(core::Object) → core::bool} #C9) {
#t162 = 16;
#t165 = 16;
break #L2;
}
}
{
if(#0#0 is ({e: core::Object?}) && !(#0#0{({e: core::Object?})}.e{core::Object?} =={core::Object::==}{(core::Object) → core::bool} #C10)) {
#t162 = 17;
#t165 = 17;
break #L2;
}
}
{
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (#0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} as{Unchecked} core::int).{core::num::>=}(#C11){(core::num) → core::bool}) {
#t162 = 18;
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (let core::int? #t230 = #0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} in #t230 == null ?{core::int} #t230 as{Unchecked} core::int : #t230{core::int}).{core::num::>=}(#C11){(core::num) → core::bool}) {
#t165 = 18;
break #L2;
}
}
{
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t227 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1) {
#t162 = 19;
if(#0#0 is core::List<dynamic> && (#0#26#isSet ?{core::int} #0#26{core::int} : let final core::bool #t231 = #0#26#isSet = true in #0#26 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1) {
#t165 = 19;
break #L2;
}
}
{
if(#0#0 is core::bool) {
#t162 = 20;
#t165 = 20;
break #L2;
}
}
{
if(#0#0 is core::Map<dynamic, dynamic> && o{core::Map<dynamic, dynamic>}.{core::Map::isEmpty}{core::bool}) {
#t162 = 21;
#t165 = 21;
break #L2;
}
}
{
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C12){(core::Object?) → core::bool} && #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C12){(core::Object?) → dynamic} is core::int) {
#t162 = 22;
#t165 = 22;
break #L2;
}
}
{
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C1){(core::Object?) → dynamic} is core::String) {
#t162 = 23;
#t165 = 23;
break #L2;
}
}
@@ -879,48 +879,48 @@ static method switchExpression(dynamic o) → core::int {
hoisted dynamic a;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool}) {
a = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C7){(core::Object?) → dynamic};
#t162 = 24;
#t165 = 24;
break #L2;
}
}
{
hoisted core::int b;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t228 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t229 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
#t162 = 25;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C2){(core::Object?) → core::bool} && (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t232 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) is core::int) {
b = (#0#98#isSet ?{dynamic} #0#98{dynamic} : let final core::bool #t233 = #0#98#isSet = true in #0#98 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C2){(core::Object?) → dynamic}) as{Unchecked} core::int;
#t165 = 25;
break #L2;
}
}
{
if(#0#0 is (core::Object?, core::Object?) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{(core::Object?, core::Object?)}.$1{core::Object?} && #C1 =={core::num::==}{(core::Object) → core::bool} #0#0{(core::Object?, core::Object?)}.$2{core::Object?}) {
#t162 = 26;
#t165 = 26;
break #L2;
}
}
{
hoisted dynamic c;
if(#0#0 is ({a: core::Object?, b: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t230 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?, b: core::Object?})}.a{core::Object?})) {
c = #0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t231 = #0#23#isSet = true in #0#23 = #0#0{({a: core::Object?, b: core::Object?})}.b{core::Object?};
#t162 = 27;
if(#0#0 is ({a: core::Object?, b: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} (#0#20#isSet ?{core::Object?} #0#20{core::Object?} : let final core::bool #t234 = #0#20#isSet = true in #0#20 = #0#0{({a: core::Object?, b: core::Object?})}.a{core::Object?})) {
c = #0#23#isSet ?{core::Object?} #0#23{core::Object?} : let final core::bool #t235 = #0#23#isSet = true in #0#23 = #0#0{({a: core::Object?, b: core::Object?})}.b{core::Object?};
#t165 = 27;
break #L2;
}
}
{
hoisted dynamic d;
if(#0#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t232 = d = #0#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
#t162 = 28;
if(#0#0 is ({c: core::Object?, d: core::Object?}) && #C12 =={core::num::==}{(core::Object) → core::bool} #0#0{({c: core::Object?, d: core::Object?})}.c{core::Object?} && (let final core::Object? #t236 = d = #0#0{({c: core::Object?, d: core::Object?})}.d{core::Object?} in true) && d is core::int) {
#t165 = 28;
break #L2;
}
}
{
if(true) {
#t162 = 0;
#t165 = 0;
break #L2;
}
}
throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t162;
} =>#t165;
}
static method test(dynamic expected, dynamic value) → dynamic {
self::expect(expected, self::ifCase(value));
@@ -1021,4 +1021,4 @@ Evaluated: RecordLiteral @ org-dartlang-testcase:///caching.dart:331:12 -> Recor
Evaluated: RecordLiteral @ org-dartlang-testcase:///caching.dart:332:12 -> RecordConstant(const ({c: 0, d: 1}))
Evaluated: RecordLiteral @ org-dartlang-testcase:///caching.dart:333:12 -> RecordConstant(const ({c: 0, d: 2}))
Evaluated: RecordLiteral @ org-dartlang-testcase:///caching.dart:334:11 -> RecordConstant(const ({c: 0, d: "foo"}))
Extra constant evaluation: evaluated: 2729, effectively constant: 14
Extra constant evaluation: evaluated: 2753, effectively constant: 14
@@ -25,7 +25,7 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
action(key, let self::_MyMap&Object&MapMixin::V? #t1 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t1 == null ?{self::_MyMap&Object&MapMixin::V%} #t1 as{Unchecked} self::_MyMap&Object&MapMixin::V% : #t1{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
action(key, let self::_MyMap&Object&MapMixin::V? #t1 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t1 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t2 = #t1 in #t2 == null ?{self::_MyMap&Object&MapMixin::V%} #t2 as self::_MyMap&Object&MapMixin::V% : #t2{self::_MyMap&Object&MapMixin::V%} : #t1{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
}
}
}
@@ -50,16 +50,16 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ putIfAbsent(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class () → self::_MyMap&Object&MapMixin::V% ifAbsent) → self::_MyMap&Object&MapMixin::V% {
if(this.{col::MapBase::containsKey}(key){(core::Object?) → core::bool}) {
return let self::_MyMap&Object&MapMixin::V? #t2 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t2 == null ?{self::_MyMap&Object&MapMixin::V%} #t2 as{Unchecked} self::_MyMap&Object&MapMixin::V% : #t2{self::_MyMap&Object&MapMixin::V%};
return let self::_MyMap&Object&MapMixin::V? #t3 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t3 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t4 = #t3 in #t4 == null ?{self::_MyMap&Object&MapMixin::V%} #t4 as self::_MyMap&Object&MapMixin::V% : #t4{self::_MyMap&Object&MapMixin::V%} : #t3{self::_MyMap&Object&MapMixin::V%};
}
return let final self::_MyMap&Object&MapMixin::K% #t3 = key in let final self::_MyMap&Object&MapMixin::V% #t4 = ifAbsent(){() → self::_MyMap&Object&MapMixin::V%} in let final void #t5 = this.{col::MapBase::[]=}(#t3, #t4){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t4;
return let final self::_MyMap&Object&MapMixin::K% #t5 = key in let final self::_MyMap&Object&MapMixin::V% #t6 = ifAbsent(){() → self::_MyMap&Object&MapMixin::V%} in let final void #t7 = this.{col::MapBase::[]=}(#t5, #t6){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t6;
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ update(covariant-by-class self::_MyMap&Object&MapMixin::K% key, covariant-by-class (self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V% update, {covariant-by-class () →? self::_MyMap&Object&MapMixin::V% ifAbsent = #C1}) → self::_MyMap&Object&MapMixin::V% {
if(this.{col::MapBase::containsKey}(key){(core::Object?) → core::bool}) {
return let final self::_MyMap&Object&MapMixin::K% #t6 = key in let final self::_MyMap&Object&MapMixin::V% #t7 = update(let self::_MyMap&Object&MapMixin::V? #t8 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t8 == null ?{self::_MyMap&Object&MapMixin::V%} #t8 as{Unchecked} self::_MyMap&Object&MapMixin::V% : #t8{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V%} in let final void #t9 = this.{col::MapBase::[]=}(#t6, #t7){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t7;
return let final self::_MyMap&Object&MapMixin::K% #t8 = key in let final self::_MyMap&Object&MapMixin::V% #t9 = update(let self::_MyMap&Object&MapMixin::V? #t10 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t10 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t11 = #t10 in #t11 == null ?{self::_MyMap&Object&MapMixin::V%} #t11 as self::_MyMap&Object&MapMixin::V% : #t11{self::_MyMap&Object&MapMixin::V%} : #t10{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V%} in let final void #t12 = this.{col::MapBase::[]=}(#t8, #t9){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t9;
}
if(!(ifAbsent == null)) {
return let final self::_MyMap&Object&MapMixin::K% #t10 = key in let final self::_MyMap&Object&MapMixin::V% #t11 = ifAbsent{() → self::_MyMap&Object&MapMixin::V%}(){() → self::_MyMap&Object&MapMixin::V%} in let final void #t12 = this.{col::MapBase::[]=}(#t10, #t11){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t11;
return let final self::_MyMap&Object&MapMixin::K% #t13 = key in let final self::_MyMap&Object&MapMixin::V% #t14 = ifAbsent{() → self::_MyMap&Object&MapMixin::V%}(){() → self::_MyMap&Object&MapMixin::V%} in let final void #t15 = this.{col::MapBase::[]=}(#t13, #t14){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void} in #t14;
}
throw new core::ArgumentError::value(key, "key", "Key not in map.");
}
@@ -69,13 +69,13 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
this.{col::MapBase::[]=}(key, update(key, let self::_MyMap&Object&MapMixin::V? #t13 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t13 == null ?{self::_MyMap&Object&MapMixin::V%} #t13 as{Unchecked} self::_MyMap&Object&MapMixin::V% : #t13{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
this.{col::MapBase::[]=}(key, update(key, let self::_MyMap&Object&MapMixin::V? #t16 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t16 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t17 = #t16 in #t17 == null ?{self::_MyMap&Object&MapMixin::V%} #t17 as self::_MyMap&Object&MapMixin::V% : #t17{self::_MyMap&Object&MapMixin::V%} : #t16{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → void};
}
}
}
}
get /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ entries() → core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>> {
return this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::map}<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>((self::_MyMap&Object&MapMixin::K% key) → core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> => new core::MapEntry::_<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>(key, let self::_MyMap&Object&MapMixin::V? #t14 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t14 == null ?{self::_MyMap&Object&MapMixin::V%} #t14 as{Unchecked} self::_MyMap&Object&MapMixin::V% : #t14{self::_MyMap&Object&MapMixin::V%})){((self::_MyMap&Object&MapMixin::K%) → core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>) → core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>};
return this.{col::MapBase::keys}{core::Iterable<self::_MyMap&Object&MapMixin::K%>}.{core::Iterable::map}<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>((self::_MyMap&Object&MapMixin::K% key) → core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%> => new core::MapEntry::_<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>(key, let self::_MyMap&Object&MapMixin::V? #t18 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t18 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t19 = #t18 in #t19 == null ?{self::_MyMap&Object&MapMixin::V%} #t19 as self::_MyMap&Object&MapMixin::V% : #t19{self::_MyMap&Object&MapMixin::V%} : #t18{self::_MyMap&Object&MapMixin::V%})){((self::_MyMap&Object&MapMixin::K%) → core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>) → core::Iterable<core::MapEntry<self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%>>};
}
method /* from org-dartlang-sdk:///sdk/lib/collection/maps.dart */ map<K2 extends core::Object? = dynamic, V2 extends core::Object? = dynamic>((self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> transform) → core::Map<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> {
core::Map<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> result = <self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>{};
@@ -84,7 +84,7 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> entry = transform(key, let self::_MyMap&Object&MapMixin::V? #t15 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t15 == null ?{self::_MyMap&Object&MapMixin::V%} #t15 as{Unchecked} self::_MyMap&Object&MapMixin::V% : #t15{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>};
core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%> entry = transform(key, let self::_MyMap&Object&MapMixin::V? #t20 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t20 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t21 = #t20 in #t21 == null ?{self::_MyMap&Object&MapMixin::V%} #t21 as self::_MyMap&Object&MapMixin::V% : #t21{self::_MyMap&Object&MapMixin::V%} : #t20{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::MapEntry<self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%>};
result.{core::Map::[]=}(entry.{core::MapEntry::key}{self::_MyMap&Object&MapMixin::map::K2%}, entry.{core::MapEntry::value}{self::_MyMap&Object&MapMixin::map::V2%}){(self::_MyMap&Object&MapMixin::map::K2%, self::_MyMap&Object&MapMixin::map::V2%) → void};
}
}
@@ -109,7 +109,7 @@ abstract class _MyMap&Object&MapMixin<K extends core::Object? = dynamic, V exten
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_MyMap&Object&MapMixin::K% key = :sync-for-iterator.{core::Iterator::current}{self::_MyMap&Object&MapMixin::K%};
{
if(test(key, let self::_MyMap&Object&MapMixin::V? #t16 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t16 == null ?{self::_MyMap&Object&MapMixin::V%} #t16 as{Unchecked} self::_MyMap&Object&MapMixin::V% : #t16{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::bool})
if(test(key, let self::_MyMap&Object&MapMixin::V? #t22 = this.{col::MapBase::[]}(key){(core::Object?) → self::_MyMap&Object&MapMixin::V?} in #t22 == null ?{self::_MyMap&Object&MapMixin::V%} let self::_MyMap&Object&MapMixin::V? #t23 = #t22 in #t23 == null ?{self::_MyMap&Object&MapMixin::V%} #t23 as self::_MyMap&Object&MapMixin::V% : #t23{self::_MyMap&Object&MapMixin::V%} : #t22{self::_MyMap&Object&MapMixin::V%}){(self::_MyMap&Object&MapMixin::K%, self::_MyMap&Object&MapMixin::V%) → core::bool})
keysToRemove.{core::List::add}(key){(self::_MyMap&Object&MapMixin::K%) → void};
}
}
@@ -206,7 +206,7 @@ class MyMap<K extends core::Object? = dynamic, V extends core::Object? = dynamic
return this.{self::MyMap::_map}{core::Map<self::MyMap::K%, self::MyMap::V%>}.{core::Map::[]}(key){(core::Object?) → self::MyMap::V?};
}
operator []=(covariant-by-class self::MyMap::K% key, covariant-by-class self::MyMap::V% value) → void
return let final core::Map<self::MyMap::K%, self::MyMap::V%> #t17 = this.{self::MyMap::_map}{core::Map<self::MyMap::K%, self::MyMap::V%>} in let final self::MyMap::K% #t18 = key in let final self::MyMap::V% #t19 = value in let final void #t20 = #t17.{core::Map::[]=}(#t18, #t19){(self::MyMap::K%, self::MyMap::V%) → void} in #t19;
return let final core::Map<self::MyMap::K%, self::MyMap::V%> #t24 = this.{self::MyMap::_map}{core::Map<self::MyMap::K%, self::MyMap::V%>} in let final self::MyMap::K% #t25 = key in let final self::MyMap::V% #t26 = value in let final void #t27 = #t24.{core::Map::[]=}(#t25, #t26){(self::MyMap::K%, self::MyMap::V%) → void} in #t26;
method clear() → void
return this.{self::MyMap::_map}{core::Map<self::MyMap::K%, self::MyMap::V%>}.{core::Map::clear}(){() → void};
get keys() → core::Iterable<self::MyMap::K%>
@@ -225,14 +225,14 @@ static method method(core::Map<core::int, core::String?> m) → core::int {
synthesized core::String? #0#3;
synthesized core::bool #0#3#isSet = false;
{
if((#0#2#isSet ?{core::bool} #0#2{core::bool} : let final core::bool #t21 = #0#2#isSet = true in #0#2 = #0#0.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && #C5 =={core::String::==}{(core::Object) → core::bool} (#0#3#isSet ?{core::String?} #0#3{core::String?} : let final core::bool #t22 = #0#3#isSet = true in #0#3 = #0#0.{core::Map::[]}(#C4){(core::Object?) → core::String?})) {
if((#0#2#isSet ?{core::bool} #0#2{core::bool} : let final core::bool #t28 = #0#2#isSet = true in #0#2 = #0#0.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && #C5 =={core::String::==}{(core::Object) → core::bool} (#0#3#isSet ?{core::String?} #0#3{core::String?} : let final core::bool #t29 = #0#3#isSet = true in #0#3 = #0#0.{core::Map::[]}(#C4){(core::Object?) → core::String?})) {
{
return 0;
}
}
}
{
if((#0#2#isSet ?{core::bool} #0#2{core::bool} : let final core::bool #t23 = #0#2#isSet = true in #0#2 = #0#0.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && #C6 =={core::String::==}{(core::Object) → core::bool} (#0#3#isSet ?{core::String?} #0#3{core::String?} : let final core::bool #t24 = #0#3#isSet = true in #0#3 = #0#0.{core::Map::[]}(#C4){(core::Object?) → core::String?})) {
if((#0#2#isSet ?{core::bool} #0#2{core::bool} : let final core::bool #t30 = #0#2#isSet = true in #0#2 = #0#0.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && #C6 =={core::String::==}{(core::Object) → core::bool} (#0#3#isSet ?{core::String?} #0#3{core::String?} : let final core::bool #t31 = #0#3#isSet = true in #0#3 = #0#0.{core::Map::[]}(#C4){(core::Object?) → core::String?})) {
{
return 1;
}
@@ -269,4 +269,4 @@ constants {
Extra constant evaluation status:
Evaluated: IsExpression @ org-dartlang-testcase:///caching_constants.dart:7:49 -> BoolConstant(true)
Extra constant evaluation: evaluated: 445, effectively constant: 1
Extra constant evaluation: evaluated: 487, effectively constant: 1
@@ -15,7 +15,7 @@ static method test(dynamic x) → dynamic {
synthesized core::int? #0#2;
synthesized core::bool #0#2#isSet = false;
{
if(#0#0 is self::C && (let final core::int #t1 = (#0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t2 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?}) as{Unchecked} core::int in #C1 =={core::num::==}{(core::Object) → core::bool} (#0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t3 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?}) as{Unchecked} core::int)) {
if(#0#0 is self::C && (let final core::int #t1 = let core::int? #t2 = #0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t3 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?} in #t2 == null ?{core::int} #t2 as core::int : #t2{core::int} in #C1 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t4 = #0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t5 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?} in #t4 == null ?{core::int} #t4 as core::int : #t4{core::int}))) {
{
break #L1;
}
@@ -16,7 +16,7 @@ static method test(dynamic x) → dynamic {
synthesized core::bool #0#2#isSet = false;
{
hoisted core::int f;
if(#0#0 is self::C && (let final core::int #t1 = (#0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t2 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?}) as{Unchecked} core::int in let final core::int #t3 = f = (#0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t4 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?}) as{Unchecked} core::int in true)) {
if(#0#0 is self::C && (let final core::int #t1 = let core::int? #t2 = #0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t3 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?} in #t2 == null ?{core::int} #t2 as core::int : #t2{core::int} in let final core::int #t4 = f = let core::int? #t5 = #0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t6 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?} in #t5 == null ?{core::int} #t5 as core::int : #t5{core::int} in true)) {
{
break #L1;
}
@@ -7,7 +7,7 @@ static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
{
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in #C1 =={core::num::==}{(core::Object) → core::bool} #0#0 as{Unchecked} core::Object) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in #C1 =={core::num::==}{(core::Object) → core::bool} (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object})) {
{
break #L1;
}
@@ -7,7 +7,7 @@ static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
{
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in #C1 =={core::num::==}{(core::Object) → core::bool} #0#0 as{Unchecked} core::Object) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in #C1 =={core::num::==}{(core::Object) → core::bool} (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object})) {
{
break #L1;
}
@@ -29,7 +29,7 @@ static method exhaustiveNonNullableType(core::int? o) → dynamic
#L2:
{
{
if(let final core::int #t4 = #0#0 as{Unchecked} core::int in true) {
if(let final core::int #t4 = let core::int? #t5 = #0#0 in #t5 == null ?{core::int} #t5 as core::int : #t5{core::int} in true) {
#t3 = 0;
break #L2;
}
@@ -39,79 +39,79 @@ static method exhaustiveNonNullableType(core::int? o) → dynamic
} =>#t3;
static method exhaustiveNonNullableSuperType(core::int? o) → dynamic
return block {
core::int #t5;
core::int #t6;
final synthesized core::int? #0#0 = o;
#L3:
{
{
if(let final core::num #t6 = #0#0 as{Unchecked} core::num in (#0#0 as{Unchecked} core::num) is core::int) {
#t5 = 0;
if(let final core::num #t7 = let core::int? #t8 = #0#0 in #t8 == null ?{core::num} #t8 as core::num : #t8{core::num} in (let core::int? #t9 = #0#0 in #t9 == null ?{core::num} #t9 as core::num : #t9{core::num}) is core::int) {
#t6 = 0;
break #L3;
}
}
throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t5;
} =>#t6;
static method exhaustiveNonNullableFutureOr1(FutureOr<core::int>? o) → dynamic
return block {
core::int #t7;
core::int #t10;
final synthesized FutureOr<core::int>? #0#0 = o;
#L4:
{
{
if(let final FutureOr<core::int>#t8 = #0#0 as{Unchecked} FutureOr<core::int> in true) {
#t7 = 0;
if(let final FutureOr<core::int>#t11 = let FutureOr<core::int>? #t12 = #0#0 in #t12 == null ?{FutureOr<core::int>} #t12 as FutureOr<core::int> : #t12{FutureOr<core::int>} in true) {
#t10 = 0;
break #L4;
}
}
throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t7;
} =>#t10;
static method exhaustiveNonNullableFutureOr2(FutureOr<core::int?>o) → dynamic
return block {
core::int #t9;
core::int #t13;
final synthesized FutureOr<core::int?>#0#0 = o;
#L5:
{
{
if(let final FutureOr<core::int>#t10 = #0#0 as{Unchecked} FutureOr<core::int> in true) {
#t9 = 0;
if(let final FutureOr<core::int>#t14 = #0#0 as FutureOr<core::int> in true) {
#t13 = 0;
break #L5;
}
}
throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t9;
} =>#t13;
static method exhaustiveNonNullableFutureOrTypeVariable1<T extends core::Object>(FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable1::T>? o) → dynamic
return block {
core::int #t11;
core::int #t15;
final synthesized FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable1::T>? #0#0 = o;
#L6:
{
{
if(let final FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable1::T>#t12 = #0#0 as{Unchecked} FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable1::T> in true) {
#t11 = 0;
if(let final FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable1::T>#t16 = let FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable1::T>? #t17 = #0#0 in #t17 == null ?{FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable1::T>} #t17 as FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable1::T> : #t17{FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable1::T>} in true) {
#t15 = 0;
break #L6;
}
}
throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t11;
} =>#t15;
static method exhaustiveNonNullableFutureOrTypeVariable2<T extends core::Object>(FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable2::T?>o) → dynamic
return block {
core::int #t13;
core::int #t18;
final synthesized FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable2::T?>#0#0 = o;
#L7:
{
{
if(let final FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable2::T>#t14 = #0#0 as{Unchecked} FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable2::T> in true) {
#t13 = 0;
if(let final FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable2::T>#t19 = #0#0 as FutureOr<self::exhaustiveNonNullableFutureOrTypeVariable2::T> in true) {
#t18 = 0;
break #L7;
}
}
throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t13;
} =>#t18;
static method main() → dynamic {
self::expect(0, self::exhaustiveNonNullableTypeVariable<core::Object>(42));
self::expect(0, self::exhaustiveNonNullableTypeVariable<core::int>(42));
@@ -165,4 +165,4 @@ constants {
Extra constant evaluation status:
Evaluated: IsExpression @ org-dartlang-testcase:///nullable_cast.dart:78:40 -> BoolConstant(true)
Extra constant evaluation: evaluated: 147, effectively constant: 1
Extra constant evaluation: evaluated: 177, effectively constant: 1
@@ -13,7 +13,7 @@ static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
{
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in (#0#0 as{Unchecked} core::Object) is self::C && #C1 =={core::num::==}{(core::Object) → core::bool} ((#0#0 as{Unchecked} core::Object) as{Unchecked} self::C).{self::C::f}{core::int?}) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object}) is self::C && #C1 =={core::num::==}{(core::Object) → core::bool} ((let dynamic #t4 = #0#0 in #t4 == null ?{core::Object} #t4 as core::Object : #t4{core::Object}) as{Unchecked} self::C).{self::C::f}{core::int?}) {
{
break #L1;
}
@@ -8,7 +8,7 @@ static method test(dynamic x) → dynamic {
final synthesized dynamic #0#0 = x;
{
final hoisted core::Object y;
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in let final core::Object #t2 = y = #0#0 as{Unchecked} core::Object in true) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in let final core::Object #t3 = y = let dynamic #t4 = #0#0 in #t4 == null ?{core::Object} #t4 as core::Object : #t4{core::Object} in true) {
{
break #L1;
}
@@ -404,7 +404,7 @@ static method test() → dynamic {
synthesized core::bool #0#2#isSet = false;
synthesized core::int? #0#3;
synthesized core::bool #0#3#isSet = false;
if(!((#0#2#isSet ?{core::bool} #0#2{core::bool} : let final core::bool #t74 = #0#2#isSet = true in #0#2 = #0#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool}) && (let final core::int #t75 = a = (#0#3#isSet ?{core::int?} #0#3{core::int?} : let final core::bool #t76 = #0#3#isSet = true in #0#3 = #0#0.{core::Map::[]}(#C1){(core::Object?) → core::int?}) as{Unchecked} core::int in true) && (#0#2#isSet ?{core::bool} #0#2{core::bool} : let final core::bool #t77 = #0#2#isSet = true in #0#2 = #0#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool}) && (let final core::int #t78 = b = (#0#3#isSet ?{core::int?} #0#3{core::int?} : let final core::bool #t79 = #0#3#isSet = true in #0#3 = #0#0.{core::Map::[]}(#C1){(core::Object?) → core::int?}) as{Unchecked} core::int in true)))
if(!((#0#2#isSet ?{core::bool} #0#2{core::bool} : let final core::bool #t74 = #0#2#isSet = true in #0#2 = #0#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool}) && (let final core::int #t75 = a = let core::int? #t76 = #0#3#isSet ?{core::int?} #0#3{core::int?} : let final core::bool #t77 = #0#3#isSet = true in #0#3 = #0#0.{core::Map::[]}(#C1){(core::Object?) → core::int?} in #t76 == null ?{core::int} #t76 as{Unchecked} core::int : #t76{core::int} in true) && (#0#2#isSet ?{core::bool} #0#2{core::bool} : let final core::bool #t78 = #0#2#isSet = true in #0#2 = #0#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool}) && (let final core::int #t79 = b = let core::int? #t80 = #0#3#isSet ?{core::int?} #0#3{core::int?} : let final core::bool #t81 = #0#3#isSet = true in #0#3 = #0#0.{core::Map::[]}(#C1){(core::Object?) → core::int?} in #t80 == null ?{core::int} #t80 as{Unchecked} core::int : #t80{core::int} in true)))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
hoisted has-declared-initializer core::int c;
@@ -415,7 +415,7 @@ static method test() → dynamic {
synthesized core::bool #1#2#isSet = false;
synthesized core::int? #1#3;
synthesized core::bool #1#3#isSet = false;
if(!((#1#2#isSet ?{core::bool} #1#2{core::bool} : let final core::bool #t80 = #1#2#isSet = true in #1#2 = #1#0.{core::Map::containsKey}(#C2){(core::Object?) → core::bool}) && (let final core::int #t81 = c = (#1#3#isSet ?{core::int?} #1#3{core::int?} : let final core::bool #t82 = #1#3#isSet = true in #1#3 = #1#0.{core::Map::[]}(#C2){(core::Object?) → core::int?}) as{Unchecked} core::int in true) && (#1#2#isSet ?{core::bool} #1#2{core::bool} : let final core::bool #t83 = #1#2#isSet = true in #1#2 = #1#0.{core::Map::containsKey}(#C2){(core::Object?) → core::bool}) && (let final core::int #t84 = d = (#1#3#isSet ?{core::int?} #1#3{core::int?} : let final core::bool #t85 = #1#3#isSet = true in #1#3 = #1#0.{core::Map::[]}(#C2){(core::Object?) → core::int?}) as{Unchecked} core::int in true)))
if(!((#1#2#isSet ?{core::bool} #1#2{core::bool} : let final core::bool #t82 = #1#2#isSet = true in #1#2 = #1#0.{core::Map::containsKey}(#C2){(core::Object?) → core::bool}) && (let final core::int #t83 = c = let core::int? #t84 = #1#3#isSet ?{core::int?} #1#3{core::int?} : let final core::bool #t85 = #1#3#isSet = true in #1#3 = #1#0.{core::Map::[]}(#C2){(core::Object?) → core::int?} in #t84 == null ?{core::int} #t84 as{Unchecked} core::int : #t84{core::int} in true) && (#1#2#isSet ?{core::bool} #1#2{core::bool} : let final core::bool #t86 = #1#2#isSet = true in #1#2 = #1#0.{core::Map::containsKey}(#C2){(core::Object?) → core::bool}) && (let final core::int #t87 = d = let core::int? #t88 = #1#3#isSet ?{core::int?} #1#3{core::int?} : let final core::bool #t89 = #1#3#isSet = true in #1#3 = #1#0.{core::Map::[]}(#C2){(core::Object?) → core::int?} in #t88 == null ?{core::int} #t88 as{Unchecked} core::int : #t88{core::int} in true)))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
final hoisted has-declared-initializer core::int a1;
@@ -426,7 +426,7 @@ static method test() → dynamic {
synthesized core::bool #2#2#isSet = false;
synthesized core::int? #2#3;
synthesized core::bool #2#3#isSet = false;
if(!((#2#2#isSet ?{core::bool} #2#2{core::bool} : let final core::bool #t86 = #2#2#isSet = true in #2#2 = #2#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool}) && (let final core::int #t87 = a1 = (#2#3#isSet ?{core::int?} #2#3{core::int?} : let final core::bool #t88 = #2#3#isSet = true in #2#3 = #2#0.{core::Map::[]}(#C1){(core::Object?) → core::int?}) as{Unchecked} core::int in true) && (#2#2#isSet ?{core::bool} #2#2{core::bool} : let final core::bool #t89 = #2#2#isSet = true in #2#2 = #2#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool}) && (let final core::int #t90 = b1 = (#2#3#isSet ?{core::int?} #2#3{core::int?} : let final core::bool #t91 = #2#3#isSet = true in #2#3 = #2#0.{core::Map::[]}(#C1){(core::Object?) → core::int?}) as{Unchecked} core::int in true)))
if(!((#2#2#isSet ?{core::bool} #2#2{core::bool} : let final core::bool #t90 = #2#2#isSet = true in #2#2 = #2#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool}) && (let final core::int #t91 = a1 = let core::int? #t92 = #2#3#isSet ?{core::int?} #2#3{core::int?} : let final core::bool #t93 = #2#3#isSet = true in #2#3 = #2#0.{core::Map::[]}(#C1){(core::Object?) → core::int?} in #t92 == null ?{core::int} #t92 as{Unchecked} core::int : #t92{core::int} in true) && (#2#2#isSet ?{core::bool} #2#2{core::bool} : let final core::bool #t94 = #2#2#isSet = true in #2#2 = #2#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool}) && (let final core::int #t95 = b1 = let core::int? #t96 = #2#3#isSet ?{core::int?} #2#3{core::int?} : let final core::bool #t97 = #2#3#isSet = true in #2#3 = #2#0.{core::Map::[]}(#C1){(core::Object?) → core::int?} in #t96 == null ?{core::int} #t96 as{Unchecked} core::int : #t96{core::int} in true)))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
final hoisted has-declared-initializer core::int a2;
@@ -437,7 +437,7 @@ static method test() → dynamic {
synthesized core::bool #3#2#isSet = false;
synthesized core::int? #3#3;
synthesized core::bool #3#3#isSet = false;
if(!((#3#2#isSet ?{core::bool} #3#2{core::bool} : let final core::bool #t92 = #3#2#isSet = true in #3#2 = #3#0.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && (let final core::int #t93 = a2 = (#3#3#isSet ?{core::int?} #3#3{core::int?} : let final core::bool #t94 = #3#3#isSet = true in #3#3 = #3#0.{core::Map::[]}(#C4){(core::Object?) → core::int?}) as{Unchecked} core::int in true) && (#3#2#isSet ?{core::bool} #3#2{core::bool} : let final core::bool #t95 = #3#2#isSet = true in #3#2 = #3#0.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && (let final core::int #t96 = b2 = (#3#3#isSet ?{core::int?} #3#3{core::int?} : let final core::bool #t97 = #3#3#isSet = true in #3#3 = #3#0.{core::Map::[]}(#C4){(core::Object?) → core::int?}) as{Unchecked} core::int in true)))
if(!((#3#2#isSet ?{core::bool} #3#2{core::bool} : let final core::bool #t98 = #3#2#isSet = true in #3#2 = #3#0.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && (let final core::int #t99 = a2 = let core::int? #t100 = #3#3#isSet ?{core::int?} #3#3{core::int?} : let final core::bool #t101 = #3#3#isSet = true in #3#3 = #3#0.{core::Map::[]}(#C4){(core::Object?) → core::int?} in #t100 == null ?{core::int} #t100 as{Unchecked} core::int : #t100{core::int} in true) && (#3#2#isSet ?{core::bool} #3#2{core::bool} : let final core::bool #t102 = #3#2#isSet = true in #3#2 = #3#0.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && (let final core::int #t103 = b2 = let core::int? #t104 = #3#3#isSet ?{core::int?} #3#3{core::int?} : let final core::bool #t105 = #3#3#isSet = true in #3#3 = #3#0.{core::Map::[]}(#C4){(core::Object?) → core::int?} in #t104 == null ?{core::int} #t104 as{Unchecked} core::int : #t104{core::int} in true)))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
final hoisted has-declared-initializer core::int a3;
@@ -448,7 +448,7 @@ static method test() → dynamic {
synthesized core::bool #4#2#isSet = false;
synthesized core::int? #4#3;
synthesized core::bool #4#3#isSet = false;
if(!((#4#2#isSet ?{core::bool} #4#2{core::bool} : let final core::bool #t98 = #4#2#isSet = true in #4#2 = #4#0.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && (let final core::int #t99 = a3 = (#4#3#isSet ?{core::int?} #4#3{core::int?} : let final core::bool #t100 = #4#3#isSet = true in #4#3 = #4#0.{core::Map::[]}(#C5){(core::Object?) → core::int?}) as{Unchecked} core::int in true) && (#4#2#isSet ?{core::bool} #4#2{core::bool} : let final core::bool #t101 = #4#2#isSet = true in #4#2 = #4#0.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && (let final core::int #t102 = b3 = (#4#3#isSet ?{core::int?} #4#3{core::int?} : let final core::bool #t103 = #4#3#isSet = true in #4#3 = #4#0.{core::Map::[]}(#C5){(core::Object?) → core::int?}) as{Unchecked} core::int in true)))
if(!((#4#2#isSet ?{core::bool} #4#2{core::bool} : let final core::bool #t106 = #4#2#isSet = true in #4#2 = #4#0.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && (let final core::int #t107 = a3 = let core::int? #t108 = #4#3#isSet ?{core::int?} #4#3{core::int?} : let final core::bool #t109 = #4#3#isSet = true in #4#3 = #4#0.{core::Map::[]}(#C5){(core::Object?) → core::int?} in #t108 == null ?{core::int} #t108 as{Unchecked} core::int : #t108{core::int} in true) && (#4#2#isSet ?{core::bool} #4#2{core::bool} : let final core::bool #t110 = #4#2#isSet = true in #4#2 = #4#0.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && (let final core::int #t111 = b3 = let core::int? #t112 = #4#3#isSet ?{core::int?} #4#3{core::int?} : let final core::bool #t113 = #4#3#isSet = true in #4#3 = #4#0.{core::Map::[]}(#C5){(core::Object?) → core::int?} in #t112 == null ?{core::int} #t112 as{Unchecked} core::int : #t112{core::int} in true)))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
}
@@ -7,7 +7,7 @@ static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
{
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in #C1 =={core::num::==}{(core::Object) → core::bool} #0#0 as{Unchecked} core::Object) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in #C1 =={core::num::==}{(core::Object) → core::bool} (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object})) {
{
break #L1;
}
@@ -6,7 +6,7 @@ static method test1() → dynamic {
core::Map<dynamic, dynamic> x = <dynamic, dynamic>{1: 1};
{
final synthesized core::Map<dynamic, dynamic> #0#0 = x;
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #C1 =={core::num::==}{(core::Object) → core::bool} #0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C1){(core::Object?) → core::int?} as{Unchecked} core::int) {
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #C1 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t1 = #0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C1){(core::Object?) → core::int?} in #t1 == null ?{core::int} #t1 as{Unchecked} core::int : #t1{core::int})) {
return 1;
}
else {
@@ -18,7 +18,7 @@ static method test2() → dynamic {
core::Map<dynamic, dynamic> x = <core::int, core::int>{1: 1, 2: 2};
{
final synthesized core::Map<dynamic, dynamic> #0#0 = x;
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #C1 =={core::num::==}{(core::Object) → core::bool} #0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C1){(core::Object?) → core::int?} as{Unchecked} core::int) {
if(#0#0 is core::Map<core::int, core::int> && #0#0{core::Map<core::int, core::int>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #C1 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t2 = #0#0{core::Map<core::int, core::int>}.{core::Map::[]}(#C1){(core::Object?) → core::int?} in #t2 == null ?{core::int} #t2 as{Unchecked} core::int : #t2{core::int})) {
return 0;
}
else {
@@ -8,7 +8,7 @@ static method main() → dynamic {
hoisted has-declared-initializer core::int v;
{
final synthesized core::Map<core::String, core::int> #0#0 = <core::String, core::int>{"key": 42};
if(!(#0#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && (let final core::int #t1 = v = #0#0.{core::Map::[]}(#C1){(core::Object?) → core::int?} as{Unchecked} core::int in true)))
if(!(#0#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && (let final core::int #t1 = v = let core::int? #t2 = #0#0.{core::Map::[]}(#C1){(core::Object?) → core::int?} in #t2 == null ?{core::int} #t2 as{Unchecked} core::int : #t2{core::int} in true)))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
core::print(self::staticTypeOf<core::int>(v));
@@ -11,7 +11,7 @@ static method main() → void {
hoisted has-declared-initializer core::int a1;
{
final synthesized core::Map<self::C<core::String>, core::int> #0#0 = <self::C<core::String>, core::int>{#C1: 1};
if(!(#0#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && (let final core::int #t1 = a1 = #0#0.{core::Map::[]}(#C1){(core::Object?) → core::int?} as{Unchecked} core::int in true)))
if(!(#0#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && (let final core::int #t1 = a1 = let core::int? #t2 = #0#0.{core::Map::[]}(#C1){(core::Object?) → core::int?} in #t2 == null ?{core::int} #t2 as{Unchecked} core::int : #t2{core::int} in true)))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
}
@@ -33,7 +33,7 @@ class C extends core::Object {
@#C3
method promote() → void {
if(!(this.{self::C::_x}{core::int?} == null))
core::print(this.{self::C::_x}{core::int?} as{Unchecked} core::int);
core::print(let core::int? #t1 = this.{self::C::_x}{core::int?} in #t1 == null ?{core::int} #t1 as{Unchecked} core::int : #t1{core::int});
else
core::print("null");
}
@@ -49,27 +49,27 @@ static method foo(self::Wrapper wrapper) → void {
{
final hoisted self::Other other;
if(#0#0 is self::WrapperA && (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t2 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperA}.{self::WrapperA::inner}{self::Inner}.{self::Inner::other}{self::Other?}) is self::Other) {
other = (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t3 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperA}.{self::WrapperA::inner}{self::Inner}.{self::Inner::other}{self::Other?}) as{Unchecked} self::Other;
other = let self::Other? #t3 = #0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t4 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperA}.{self::WrapperA::inner}{self::Inner}.{self::Inner::other}{self::Other?} in #t3 == null ?{self::Other} #t3 as{Unchecked} self::Other : #t3{self::Other};
#t1 = other.{self::Other::text}{core::String};
break #L1;
}
}
{
if(#0#0 is self::WrapperA && (#0#5#isSet ?{core::bool} #0#5{core::bool} : let final core::bool #t4 = #0#5#isSet = true in #0#5 = (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t5 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperA}.{self::WrapperA::inner}{self::Inner}.{self::Inner::other}{self::Other?}) == null)) {
if(#0#0 is self::WrapperA && (#0#5#isSet ?{core::bool} #0#5{core::bool} : let final core::bool #t5 = #0#5#isSet = true in #0#5 = (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t6 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperA}.{self::WrapperA::inner}{self::Inner}.{self::Inner::other}{self::Other?}) == null)) {
#t1 = "no other";
break #L1;
}
}
{
final hoisted self::Other other;
if(#0#0 is self::WrapperB && (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t6 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperB}.{self::WrapperB::inner}{self::Inner}.{self::Inner::other}{self::Other?}) is self::Other) {
other = (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t7 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperB}.{self::WrapperB::inner}{self::Inner}.{self::Inner::other}{self::Other?}) as{Unchecked} self::Other;
if(#0#0 is self::WrapperB && (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t7 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperB}.{self::WrapperB::inner}{self::Inner}.{self::Inner::other}{self::Other?}) is self::Other) {
other = let self::Other? #t8 = #0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t9 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperB}.{self::WrapperB::inner}{self::Inner}.{self::Inner::other}{self::Other?} in #t8 == null ?{self::Other} #t8 as{Unchecked} self::Other : #t8{self::Other};
#t1 = other.{self::Other::text}{core::String};
break #L1;
}
}
{
if(#0#0 is self::WrapperB && (#0#5#isSet ?{core::bool} #0#5{core::bool} : let final core::bool #t8 = #0#5#isSet = true in #0#5 = (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t9 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperB}.{self::WrapperB::inner}{self::Inner}.{self::Inner::other}{self::Other?}) == null)) {
if(#0#0 is self::WrapperB && (#0#5#isSet ?{core::bool} #0#5{core::bool} : let final core::bool #t10 = #0#5#isSet = true in #0#5 = (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t11 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperB}.{self::WrapperB::inner}{self::Inner}.{self::Inner::other}{self::Other?}) == null)) {
#t1 = "no other";
break #L1;
}
@@ -7,7 +7,7 @@ static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
{
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in (#0#0 as{Unchecked} core::Object) is core::List<core::Object?> && ((#0#0 as{Unchecked} core::Object) as{Unchecked} core::List<core::Object?>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && #C1 =={core::num::==}{(core::Object) → core::bool} ((#0#0 as{Unchecked} core::Object) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?}) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object}) is core::List<core::Object?> && ((let dynamic #t4 = #0#0 in #t4 == null ?{core::Object} #t4 as core::Object : #t4{core::Object}) as{Unchecked} core::List<core::Object?>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && #C1 =={core::num::==}{(core::Object) → core::bool} ((let dynamic #t5 = #0#0 in #t5 == null ?{core::Object} #t5 as core::Object : #t5{core::Object}) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?}) {
{
break #L1;
}
@@ -16,7 +16,7 @@ static method test1(dynamic x) → dynamic {
{
hoisted core::String? a;
hoisted core::String b;
if(#1#0 is core::List<core::String?> && #1#0{core::List<core::String?>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && (let final core::String? #t1 = a = #1#0{core::List<core::String?>}.{core::List::[]}(0){(core::int) → core::String?} in true) && (!((#1#7#isSet ?{core::String?} #1#7{core::String?} : let final core::bool #t2 = #1#7#isSet = true in #1#7 = #1#0{core::List<core::String?>}.{core::List::[]}(1){(core::int) → core::String?}) == null) && (((#1#7#isSet ?{core::String?} #1#7{core::String?} : let final core::bool #t3 = #1#7#isSet = true in #1#7 = #1#0{core::List<core::String?>}.{core::List::[]}(1){(core::int) → core::String?}) as{Unchecked} core::String) is core::String && (let final core::String #t4 = b = (#1#7#isSet ?{core::String?} #1#7{core::String?} : let final core::bool #t5 = #1#7#isSet = true in #1#7 = #1#0{core::List<core::String?>}.{core::List::[]}(1){(core::int) → core::String?}) as{Unchecked} core::String in true))) && #1#0{core::List<core::String?>}.{core::List::[]}(2){(core::int) → core::String?} =={core::String::==}{(core::Object) → core::bool} #C4) {
if(#1#0 is core::List<core::String?> && #1#0{core::List<core::String?>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && (let final core::String? #t1 = a = #1#0{core::List<core::String?>}.{core::List::[]}(0){(core::int) → core::String?} in true) && (!((#1#7#isSet ?{core::String?} #1#7{core::String?} : let final core::bool #t2 = #1#7#isSet = true in #1#7 = #1#0{core::List<core::String?>}.{core::List::[]}(1){(core::int) → core::String?}) == null) && ((let core::String? #t3 = #1#7#isSet ?{core::String?} #1#7{core::String?} : let final core::bool #t4 = #1#7#isSet = true in #1#7 = #1#0{core::List<core::String?>}.{core::List::[]}(1){(core::int) → core::String?} in #t3 == null ?{core::String} #t3 as{Unchecked} core::String : #t3{core::String}) is core::String && (let final core::String #t5 = b = let core::String? #t6 = #1#7#isSet ?{core::String?} #1#7{core::String?} : let final core::bool #t7 = #1#7#isSet = true in #1#7 = #1#0{core::List<core::String?>}.{core::List::[]}(1){(core::int) → core::String?} in #t6 == null ?{core::String} #t6 as{Unchecked} core::String : #t6{core::String} in true))) && #1#0{core::List<core::String?>}.{core::List::[]}(2){(core::int) → core::String?} =={core::String::==}{(core::Object) → core::bool} #C4) {
return 1;
}
}
@@ -30,7 +30,7 @@ static method test1(dynamic x) → dynamic {
{
hoisted core::String a;
hoisted core::String? b;
if(#2#0 is core::List<dynamic> && #2#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C3 && ((#2#6#isSet ?{dynamic} #2#6{dynamic} : let final core::bool #t6 = #2#6#isSet = true in #2#6 = #2#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) is core::List<core::String?> && ((#2#6#isSet ?{dynamic} #2#6{dynamic} : let final core::bool #t7 = #2#6#isSet = true in #2#6 = #2#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<core::String?>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C3 && (!((#2#11#isSet ?{core::String?} #2#11{core::String?} : let final core::bool #t8 = #2#11#isSet = true in #2#11 = ((#2#6#isSet ?{dynamic} #2#6{dynamic} : let final core::bool #t9 = #2#6#isSet = true in #2#6 = #2#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<core::String?>).{core::List::[]}(0){(core::int) → core::String?}) == null) && (let final core::String #t10 = a = (#2#11#isSet ?{core::String?} #2#11{core::String?} : let final core::bool #t11 = #2#11#isSet = true in #2#11 = ((#2#6#isSet ?{dynamic} #2#6{dynamic} : let final core::bool #t12 = #2#6#isSet = true in #2#6 = #2#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<core::String?>).{core::List::[]}(0){(core::int) → core::String?}) as{Unchecked} core::String in true)) && (let final core::String? #t13 = b = ((#2#6#isSet ?{dynamic} #2#6{dynamic} : let final core::bool #t14 = #2#6#isSet = true in #2#6 = #2#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<core::String?>).{core::List::[]}(1){(core::int) → core::String?} in true)) && #C5 =={core::num::==}{(core::Object) → core::bool} #2#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) {
if(#2#0 is core::List<dynamic> && #2#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C3 && ((#2#6#isSet ?{dynamic} #2#6{dynamic} : let final core::bool #t8 = #2#6#isSet = true in #2#6 = #2#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) is core::List<core::String?> && ((#2#6#isSet ?{dynamic} #2#6{dynamic} : let final core::bool #t9 = #2#6#isSet = true in #2#6 = #2#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<core::String?>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C3 && (!((#2#11#isSet ?{core::String?} #2#11{core::String?} : let final core::bool #t10 = #2#11#isSet = true in #2#11 = ((#2#6#isSet ?{dynamic} #2#6{dynamic} : let final core::bool #t11 = #2#6#isSet = true in #2#6 = #2#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<core::String?>).{core::List::[]}(0){(core::int) → core::String?}) == null) && (let final core::String #t12 = a = let core::String? #t13 = #2#11#isSet ?{core::String?} #2#11{core::String?} : let final core::bool #t14 = #2#11#isSet = true in #2#11 = ((#2#6#isSet ?{dynamic} #2#6{dynamic} : let final core::bool #t15 = #2#6#isSet = true in #2#6 = #2#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<core::String?>).{core::List::[]}(0){(core::int) → core::String?} in #t13 == null ?{core::String} #t13 as{Unchecked} core::String : #t13{core::String} in true)) && (let final core::String? #t16 = b = ((#2#6#isSet ?{dynamic} #2#6{dynamic} : let final core::bool #t17 = #2#6#isSet = true in #2#6 = #2#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<core::String?>).{core::List::[]}(1){(core::int) → core::String?} in true)) && #C5 =={core::num::==}{(core::Object) → core::bool} #2#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) {
return 2;
}
}
@@ -45,8 +45,8 @@ static method test1(dynamic x) → dynamic {
synthesized core::bool #3#16#isSet = false;
{
hoisted dynamic a;
if(#3#0 is core::List<dynamic> && #3#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C2 && ((#3#6#isSet ?{dynamic} #3#6{dynamic} : let final core::bool #t15 = #3#6#isSet = true in #3#6 = #3#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) is core::List<dynamic> && ((#3#6#isSet ?{dynamic} #3#6{dynamic} : let final core::bool #t16 = #3#6#isSet = true in #3#6 = #3#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C2 && ((#3#11#isSet ?{dynamic} #3#11{dynamic} : let final core::bool #t17 = #3#11#isSet = true in #3#11 = ((#3#6#isSet ?{dynamic} #3#6{dynamic} : let final core::bool #t18 = #3#6#isSet = true in #3#6 = #3#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic}) is core::List<dynamic> && ((#3#11#isSet ?{dynamic} #3#11{dynamic} : let final core::bool #t19 = #3#11#isSet = true in #3#11 = ((#3#6#isSet ?{dynamic} #3#6{dynamic} : let final core::bool #t20 = #3#6#isSet = true in #3#6 = #3#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C2 && !((#3#16#isSet ?{dynamic} #3#16{dynamic} : let final core::bool #t21 = #3#16#isSet = true in #3#16 = ((#3#11#isSet ?{dynamic} #3#11{dynamic} : let final core::bool #t22 = #3#11#isSet = true in #3#11 = ((#3#6#isSet ?{dynamic} #3#6{dynamic} : let final core::bool #t23 = #3#6#isSet = true in #3#6 = #3#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic}) == null)))) {
a = #3#16#isSet ?{dynamic} #3#16{dynamic} : let final core::bool #t24 = #3#16#isSet = true in #3#16 = ((#3#11#isSet ?{dynamic} #3#11{dynamic} : let final core::bool #t25 = #3#11#isSet = true in #3#11 = ((#3#6#isSet ?{dynamic} #3#6{dynamic} : let final core::bool #t26 = #3#6#isSet = true in #3#6 = #3#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic};
if(#3#0 is core::List<dynamic> && #3#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C2 && ((#3#6#isSet ?{dynamic} #3#6{dynamic} : let final core::bool #t18 = #3#6#isSet = true in #3#6 = #3#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) is core::List<dynamic> && ((#3#6#isSet ?{dynamic} #3#6{dynamic} : let final core::bool #t19 = #3#6#isSet = true in #3#6 = #3#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C2 && ((#3#11#isSet ?{dynamic} #3#11{dynamic} : let final core::bool #t20 = #3#11#isSet = true in #3#11 = ((#3#6#isSet ?{dynamic} #3#6{dynamic} : let final core::bool #t21 = #3#6#isSet = true in #3#6 = #3#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic}) is core::List<dynamic> && ((#3#11#isSet ?{dynamic} #3#11{dynamic} : let final core::bool #t22 = #3#11#isSet = true in #3#11 = ((#3#6#isSet ?{dynamic} #3#6{dynamic} : let final core::bool #t23 = #3#6#isSet = true in #3#6 = #3#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C2 && !((#3#16#isSet ?{dynamic} #3#16{dynamic} : let final core::bool #t24 = #3#16#isSet = true in #3#16 = ((#3#11#isSet ?{dynamic} #3#11{dynamic} : let final core::bool #t25 = #3#11#isSet = true in #3#11 = ((#3#6#isSet ?{dynamic} #3#6{dynamic} : let final core::bool #t26 = #3#6#isSet = true in #3#6 = #3#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic}) == null)))) {
a = #3#16#isSet ?{dynamic} #3#16{dynamic} : let final core::bool #t27 = #3#16#isSet = true in #3#16 = ((#3#11#isSet ?{dynamic} #3#11{dynamic} : let final core::bool #t28 = #3#11#isSet = true in #3#11 = ((#3#6#isSet ?{dynamic} #3#6{dynamic} : let final core::bool #t29 = #3#6#isSet = true in #3#6 = #3#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::List<dynamic>).{core::List::[]}(0){(core::int) → dynamic};
{
return 3;
}
@@ -74,7 +74,7 @@ static method test2(core::List<core::Object?> x) → dynamic {
{
hoisted core::String? a;
hoisted core::String b;
if(#1#0 is core::List<core::String?> && #1#0{core::List<core::String?>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && (let final core::String? #t27 = a = #1#0{core::List<core::String?>}.{core::List::[]}(0){(core::int) → core::String?} in true) && (!((#1#7#isSet ?{core::String?} #1#7{core::String?} : let final core::bool #t28 = #1#7#isSet = true in #1#7 = #1#0{core::List<core::String?>}.{core::List::[]}(1){(core::int) → core::String?}) == null) && (((#1#7#isSet ?{core::String?} #1#7{core::String?} : let final core::bool #t29 = #1#7#isSet = true in #1#7 = #1#0{core::List<core::String?>}.{core::List::[]}(1){(core::int) → core::String?}) as{Unchecked} core::String) is core::String && (let final core::String #t30 = b = (#1#7#isSet ?{core::String?} #1#7{core::String?} : let final core::bool #t31 = #1#7#isSet = true in #1#7 = #1#0{core::List<core::String?>}.{core::List::[]}(1){(core::int) → core::String?}) as{Unchecked} core::String in true))) && #1#0{core::List<core::String?>}.{core::List::[]}(2){(core::int) → core::String?} =={core::String::==}{(core::Object) → core::bool} #C4) {
if(#1#0 is core::List<core::String?> && #1#0{core::List<core::String?>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && (let final core::String? #t30 = a = #1#0{core::List<core::String?>}.{core::List::[]}(0){(core::int) → core::String?} in true) && (!((#1#7#isSet ?{core::String?} #1#7{core::String?} : let final core::bool #t31 = #1#7#isSet = true in #1#7 = #1#0{core::List<core::String?>}.{core::List::[]}(1){(core::int) → core::String?}) == null) && ((let core::String? #t32 = #1#7#isSet ?{core::String?} #1#7{core::String?} : let final core::bool #t33 = #1#7#isSet = true in #1#7 = #1#0{core::List<core::String?>}.{core::List::[]}(1){(core::int) → core::String?} in #t32 == null ?{core::String} #t32 as{Unchecked} core::String : #t32{core::String}) is core::String && (let final core::String #t34 = b = let core::String? #t35 = #1#7#isSet ?{core::String?} #1#7{core::String?} : let final core::bool #t36 = #1#7#isSet = true in #1#7 = #1#0{core::List<core::String?>}.{core::List::[]}(1){(core::int) → core::String?} in #t35 == null ?{core::String} #t35 as{Unchecked} core::String : #t35{core::String} in true))) && #1#0{core::List<core::String?>}.{core::List::[]}(2){(core::int) → core::String?} =={core::String::==}{(core::Object) → core::bool} #C4) {
return 1;
}
}
@@ -88,7 +88,7 @@ static method test2(core::List<core::Object?> x) → dynamic {
{
hoisted core::String a;
hoisted core::String? b;
if(#2#0.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C3 && ((#2#4#isSet ?{core::Object?} #2#4{core::Object?} : let final core::bool #t32 = #2#4#isSet = true in #2#4 = #2#0.{core::List::[]}(0){(core::int) → core::Object?}) is core::List<core::String?> && ((#2#4#isSet ?{core::Object?} #2#4{core::Object?} : let final core::bool #t33 = #2#4#isSet = true in #2#4 = #2#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::String?>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C3 && (!((#2#9#isSet ?{core::String?} #2#9{core::String?} : let final core::bool #t34 = #2#9#isSet = true in #2#9 = ((#2#4#isSet ?{core::Object?} #2#4{core::Object?} : let final core::bool #t35 = #2#4#isSet = true in #2#4 = #2#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::String?>).{core::List::[]}(0){(core::int) → core::String?}) == null) && (let final core::String #t36 = a = (#2#9#isSet ?{core::String?} #2#9{core::String?} : let final core::bool #t37 = #2#9#isSet = true in #2#9 = ((#2#4#isSet ?{core::Object?} #2#4{core::Object?} : let final core::bool #t38 = #2#4#isSet = true in #2#4 = #2#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::String?>).{core::List::[]}(0){(core::int) → core::String?}) as{Unchecked} core::String in true)) && (let final core::String? #t39 = b = ((#2#4#isSet ?{core::Object?} #2#4{core::Object?} : let final core::bool #t40 = #2#4#isSet = true in #2#4 = #2#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::String?>).{core::List::[]}(1){(core::int) → core::String?} in true)) && #C5 =={core::num::==}{(core::Object) → core::bool} #2#0.{core::List::[]}(1){(core::int) → core::Object?}) {
if(#2#0.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C3 && ((#2#4#isSet ?{core::Object?} #2#4{core::Object?} : let final core::bool #t37 = #2#4#isSet = true in #2#4 = #2#0.{core::List::[]}(0){(core::int) → core::Object?}) is core::List<core::String?> && ((#2#4#isSet ?{core::Object?} #2#4{core::Object?} : let final core::bool #t38 = #2#4#isSet = true in #2#4 = #2#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::String?>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C3 && (!((#2#9#isSet ?{core::String?} #2#9{core::String?} : let final core::bool #t39 = #2#9#isSet = true in #2#9 = ((#2#4#isSet ?{core::Object?} #2#4{core::Object?} : let final core::bool #t40 = #2#4#isSet = true in #2#4 = #2#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::String?>).{core::List::[]}(0){(core::int) → core::String?}) == null) && (let final core::String #t41 = a = let core::String? #t42 = #2#9#isSet ?{core::String?} #2#9{core::String?} : let final core::bool #t43 = #2#9#isSet = true in #2#9 = ((#2#4#isSet ?{core::Object?} #2#4{core::Object?} : let final core::bool #t44 = #2#4#isSet = true in #2#4 = #2#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::String?>).{core::List::[]}(0){(core::int) → core::String?} in #t42 == null ?{core::String} #t42 as{Unchecked} core::String : #t42{core::String} in true)) && (let final core::String? #t45 = b = ((#2#4#isSet ?{core::Object?} #2#4{core::Object?} : let final core::bool #t46 = #2#4#isSet = true in #2#4 = #2#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::String?>).{core::List::[]}(1){(core::int) → core::String?} in true)) && #C5 =={core::num::==}{(core::Object) → core::bool} #2#0.{core::List::[]}(1){(core::int) → core::Object?}) {
return 2;
}
}
@@ -103,8 +103,8 @@ static method test2(core::List<core::Object?> x) → dynamic {
synthesized core::bool #3#14#isSet = false;
{
hoisted core::Object a;
if(#3#0.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C2 && ((#3#4#isSet ?{core::Object?} #3#4{core::Object?} : let final core::bool #t41 = #3#4#isSet = true in #3#4 = #3#0.{core::List::[]}(0){(core::int) → core::Object?}) is core::List<core::Object?> && ((#3#4#isSet ?{core::Object?} #3#4{core::Object?} : let final core::bool #t42 = #3#4#isSet = true in #3#4 = #3#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C2 && ((#3#9#isSet ?{core::Object?} #3#9{core::Object?} : let final core::bool #t43 = #3#9#isSet = true in #3#9 = ((#3#4#isSet ?{core::Object?} #3#4{core::Object?} : let final core::bool #t44 = #3#4#isSet = true in #3#4 = #3#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?}) is core::List<core::Object?> && ((#3#9#isSet ?{core::Object?} #3#9{core::Object?} : let final core::bool #t45 = #3#9#isSet = true in #3#9 = ((#3#4#isSet ?{core::Object?} #3#4{core::Object?} : let final core::bool #t46 = #3#4#isSet = true in #3#4 = #3#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C2 && !((#3#14#isSet ?{core::Object?} #3#14{core::Object?} : let final core::bool #t47 = #3#14#isSet = true in #3#14 = ((#3#9#isSet ?{core::Object?} #3#9{core::Object?} : let final core::bool #t48 = #3#9#isSet = true in #3#9 = ((#3#4#isSet ?{core::Object?} #3#4{core::Object?} : let final core::bool #t49 = #3#4#isSet = true in #3#4 = #3#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?}) == null)))) {
a = (#3#14#isSet ?{core::Object?} #3#14{core::Object?} : let final core::bool #t50 = #3#14#isSet = true in #3#14 = ((#3#9#isSet ?{core::Object?} #3#9{core::Object?} : let final core::bool #t51 = #3#9#isSet = true in #3#9 = ((#3#4#isSet ?{core::Object?} #3#4{core::Object?} : let final core::bool #t52 = #3#4#isSet = true in #3#4 = #3#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::Object;
if(#3#0.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C2 && ((#3#4#isSet ?{core::Object?} #3#4{core::Object?} : let final core::bool #t47 = #3#4#isSet = true in #3#4 = #3#0.{core::List::[]}(0){(core::int) → core::Object?}) is core::List<core::Object?> && ((#3#4#isSet ?{core::Object?} #3#4{core::Object?} : let final core::bool #t48 = #3#4#isSet = true in #3#4 = #3#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C2 && ((#3#9#isSet ?{core::Object?} #3#9{core::Object?} : let final core::bool #t49 = #3#9#isSet = true in #3#9 = ((#3#4#isSet ?{core::Object?} #3#4{core::Object?} : let final core::bool #t50 = #3#4#isSet = true in #3#4 = #3#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?}) is core::List<core::Object?> && ((#3#9#isSet ?{core::Object?} #3#9{core::Object?} : let final core::bool #t51 = #3#9#isSet = true in #3#9 = ((#3#4#isSet ?{core::Object?} #3#4{core::Object?} : let final core::bool #t52 = #3#4#isSet = true in #3#4 = #3#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C2 && !((#3#14#isSet ?{core::Object?} #3#14{core::Object?} : let final core::bool #t53 = #3#14#isSet = true in #3#14 = ((#3#9#isSet ?{core::Object?} #3#9{core::Object?} : let final core::bool #t54 = #3#9#isSet = true in #3#9 = ((#3#4#isSet ?{core::Object?} #3#4{core::Object?} : let final core::bool #t55 = #3#4#isSet = true in #3#4 = #3#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?}) == null)))) {
a = let core::Object? #t56 = #3#14#isSet ?{core::Object?} #3#14{core::Object?} : let final core::bool #t57 = #3#14#isSet = true in #3#14 = ((#3#9#isSet ?{core::Object?} #3#9{core::Object?} : let final core::bool #t58 = #3#9#isSet = true in #3#9 = ((#3#4#isSet ?{core::Object?} #3#4{core::Object?} : let final core::bool #t59 = #3#4#isSet = true in #3#4 = #3#0.{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?}) as{Unchecked} core::List<core::Object?>).{core::List::[]}(0){(core::int) → core::Object?} in #t56 == null ?{core::Object} #t56 as{Unchecked} core::Object : #t56{core::Object};
{
return 3;
}
@@ -68,14 +68,14 @@ static method test1(core::Object o) → core::String {
synthesized core::int? #0#9;
synthesized core::bool #0#9#isSet = false;
{
if(#0#0 is core::Map<core::String, core::int> && (#0#3#isSet ?{core::bool} #0#3{core::bool} : let final core::bool #t1 = #0#3#isSet = true in #0#3 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && (#0#6#isSet ?{core::bool} #0#6{core::bool} : let final core::bool #t2 = #0#6#isSet = true in #0#6 = #C6 =={core::num::==}{(core::Object) → core::bool} #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C5){(core::Object?) → core::int?} as{Unchecked} core::int) && (#0#8#isSet ?{core::bool} #0#8{core::bool} : let final core::bool #t3 = #0#8#isSet = true in #0#8 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#9#isSet ?{core::int?} #0#9{core::int?} : let final core::bool #t4 = #0#9#isSet = true in #0#9 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C7){(core::Object?) → core::int?}) as{Unchecked} core::int) {
if(#0#0 is core::Map<core::String, core::int> && (#0#3#isSet ?{core::bool} #0#3{core::bool} : let final core::bool #t1 = #0#3#isSet = true in #0#3 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && (#0#6#isSet ?{core::bool} #0#6{core::bool} : let final core::bool #t2 = #0#6#isSet = true in #0#6 = #C6 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t3 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C5){(core::Object?) → core::int?} in #t3 == null ?{core::int} #t3 as{Unchecked} core::int : #t3{core::int})) && (#0#8#isSet ?{core::bool} #0#8{core::bool} : let final core::bool #t4 = #0#8#isSet = true in #0#8 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t5 = #0#9#isSet ?{core::int?} #0#9{core::int?} : let final core::bool #t6 = #0#9#isSet = true in #0#9 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C7){(core::Object?) → core::int?} in #t5 == null ?{core::int} #t5 as{Unchecked} core::int : #t5{core::int})) {
{
return "match-2";
}
}
}
{
if(#0#0 is core::Map<core::String, core::int> && (#0#3#isSet ?{core::bool} #0#3{core::bool} : let final core::bool #t5 = #0#3#isSet = true in #0#3 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && (#0#6#isSet ?{core::bool} #0#6{core::bool} : let final core::bool #t6 = #0#6#isSet = true in #0#6 = #C6 =={core::num::==}{(core::Object) → core::bool} #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C5){(core::Object?) → core::int?} as{Unchecked} core::int) && (#0#8#isSet ?{core::bool} #0#8{core::bool} : let final core::bool #t7 = #0#8#isSet = true in #0#8 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool}) && #C9 =={core::num::==}{(core::Object) → core::bool} (#0#9#isSet ?{core::int?} #0#9{core::int?} : let final core::bool #t8 = #0#9#isSet = true in #0#9 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C7){(core::Object?) → core::int?}) as{Unchecked} core::int) {
if(#0#0 is core::Map<core::String, core::int> && (#0#3#isSet ?{core::bool} #0#3{core::bool} : let final core::bool #t7 = #0#3#isSet = true in #0#3 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && (#0#6#isSet ?{core::bool} #0#6{core::bool} : let final core::bool #t8 = #0#6#isSet = true in #0#6 = #C6 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t9 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C5){(core::Object?) → core::int?} in #t9 == null ?{core::int} #t9 as{Unchecked} core::int : #t9{core::int})) && (#0#8#isSet ?{core::bool} #0#8{core::bool} : let final core::bool #t10 = #0#8#isSet = true in #0#8 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool}) && #C9 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t11 = #0#9#isSet ?{core::int?} #0#9{core::int?} : let final core::bool #t12 = #0#9#isSet = true in #0#9 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C7){(core::Object?) → core::int?} in #t11 == null ?{core::int} #t11 as{Unchecked} core::int : #t11{core::int})) {
{
return "match-3";
}
@@ -92,7 +92,7 @@ static method test1(core::Object o) → core::String {
}
static method test2(core::Object o) → core::String
return block {
core::String #t9;
core::String #t13;
final synthesized core::Object #0#0 = o;
synthesized core::bool #0#3;
synthesized core::bool #0#3#isSet = false;
@@ -105,26 +105,26 @@ static method test2(core::Object o) → core::String
#L2:
{
{
if(#0#0 is core::Map<core::String, core::int> && (#0#3#isSet ?{core::bool} #0#3{core::bool} : let final core::bool #t10 = #0#3#isSet = true in #0#3 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && (#0#6#isSet ?{core::bool} #0#6{core::bool} : let final core::bool #t11 = #0#6#isSet = true in #0#6 = #C6 =={core::num::==}{(core::Object) → core::bool} #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C5){(core::Object?) → core::int?} as{Unchecked} core::int) && (#0#8#isSet ?{core::bool} #0#8{core::bool} : let final core::bool #t12 = #0#8#isSet = true in #0#8 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#9#isSet ?{core::int?} #0#9{core::int?} : let final core::bool #t13 = #0#9#isSet = true in #0#9 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C7){(core::Object?) → core::int?}) as{Unchecked} core::int) {
#t9 = "match-2";
if(#0#0 is core::Map<core::String, core::int> && (#0#3#isSet ?{core::bool} #0#3{core::bool} : let final core::bool #t14 = #0#3#isSet = true in #0#3 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && (#0#6#isSet ?{core::bool} #0#6{core::bool} : let final core::bool #t15 = #0#6#isSet = true in #0#6 = #C6 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t16 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C5){(core::Object?) → core::int?} in #t16 == null ?{core::int} #t16 as{Unchecked} core::int : #t16{core::int})) && (#0#8#isSet ?{core::bool} #0#8{core::bool} : let final core::bool #t17 = #0#8#isSet = true in #0#8 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t18 = #0#9#isSet ?{core::int?} #0#9{core::int?} : let final core::bool #t19 = #0#9#isSet = true in #0#9 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C7){(core::Object?) → core::int?} in #t18 == null ?{core::int} #t18 as{Unchecked} core::int : #t18{core::int})) {
#t13 = "match-2";
break #L2;
}
}
{
if(#0#0 is core::Map<core::String, core::int> && (#0#3#isSet ?{core::bool} #0#3{core::bool} : let final core::bool #t14 = #0#3#isSet = true in #0#3 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && (#0#6#isSet ?{core::bool} #0#6{core::bool} : let final core::bool #t15 = #0#6#isSet = true in #0#6 = #C6 =={core::num::==}{(core::Object) → core::bool} #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C5){(core::Object?) → core::int?} as{Unchecked} core::int) && (#0#8#isSet ?{core::bool} #0#8{core::bool} : let final core::bool #t16 = #0#8#isSet = true in #0#8 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool}) && #C9 =={core::num::==}{(core::Object) → core::bool} (#0#9#isSet ?{core::int?} #0#9{core::int?} : let final core::bool #t17 = #0#9#isSet = true in #0#9 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C7){(core::Object?) → core::int?}) as{Unchecked} core::int) {
#t9 = "match-3";
if(#0#0 is core::Map<core::String, core::int> && (#0#3#isSet ?{core::bool} #0#3{core::bool} : let final core::bool #t20 = #0#3#isSet = true in #0#3 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && (#0#6#isSet ?{core::bool} #0#6{core::bool} : let final core::bool #t21 = #0#6#isSet = true in #0#6 = #C6 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t22 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C5){(core::Object?) → core::int?} in #t22 == null ?{core::int} #t22 as{Unchecked} core::int : #t22{core::int})) && (#0#8#isSet ?{core::bool} #0#8{core::bool} : let final core::bool #t23 = #0#8#isSet = true in #0#8 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C7){(core::Object?) → core::bool}) && #C9 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t24 = #0#9#isSet ?{core::int?} #0#9{core::int?} : let final core::bool #t25 = #0#9#isSet = true in #0#9 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C7){(core::Object?) → core::int?} in #t24 == null ?{core::int} #t24 as{Unchecked} core::int : #t24{core::int})) {
#t13 = "match-3";
break #L2;
}
}
{
if(true) {
#t9 = "no match";
#t13 = "no match";
break #L2;
}
}
throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t9;
} =>#t13;
static method main() → dynamic {
final self::MyMap<core::String, core::int> map = new self::MyMap::•<core::String, core::int>(<core::String, core::int>{"key1": 1, "key2": 2});
self::expect("match-3", self::test1(map));
@@ -137,7 +137,7 @@ static method main() → dynamic {
hoisted has-declared-initializer core::int x2;
{
final synthesized self::MyMap<core::String, core::int> #0#0 = map;
if(!(#0#0.{self::MyMap::containsKey}(#C5){(core::Object?) → core::bool} && (let final core::int #t18 = x1 = #0#0.{self::MyMap::[]}(#C5){(core::Object?) → core::int?} as{Unchecked} core::int in true) && #0#0.{self::MyMap::containsKey}(#C7){(core::Object?) → core::bool} && (let final core::int #t19 = x2 = #0#0.{self::MyMap::[]}(#C7){(core::Object?) → core::int?} as{Unchecked} core::int in true)))
if(!(#0#0.{self::MyMap::containsKey}(#C5){(core::Object?) → core::bool} && (let final core::int #t26 = x1 = let core::int? #t27 = #0#0.{self::MyMap::[]}(#C5){(core::Object?) → core::int?} in #t27 == null ?{core::int} #t27 as{Unchecked} core::int : #t27{core::int} in true) && #0#0.{self::MyMap::containsKey}(#C7){(core::Object?) → core::bool} && (let final core::int #t28 = x2 = let core::int? #t29 = #0#0.{self::MyMap::[]}(#C7){(core::Object?) → core::int?} in #t29 == null ?{core::int} #t29 as{Unchecked} core::int : #t29{core::int} in true)))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
self::expect(self::hasUnsoundNullSafety ?{core::String} self::unsoundResult : self::soundResult, map.{self::MyMap::log}{core::String});
@@ -146,7 +146,7 @@ static method main() → dynamic {
final hoisted has-declared-initializer core::int y2;
{
final synthesized self::MyMap<core::String, core::int> #1#0 = map;
if(!(#1#0.{self::MyMap::containsKey}(#C5){(core::Object?) → core::bool} && (let final core::int #t20 = y1 = #1#0.{self::MyMap::[]}(#C5){(core::Object?) → core::int?} as{Unchecked} core::int in true) && #1#0.{self::MyMap::containsKey}(#C7){(core::Object?) → core::bool} && (let final core::int #t21 = y2 = #1#0.{self::MyMap::[]}(#C7){(core::Object?) → core::int?} as{Unchecked} core::int in true)))
if(!(#1#0.{self::MyMap::containsKey}(#C5){(core::Object?) → core::bool} && (let final core::int #t30 = y1 = let core::int? #t31 = #1#0.{self::MyMap::[]}(#C5){(core::Object?) → core::int?} in #t31 == null ?{core::int} #t31 as{Unchecked} core::int : #t31{core::int} in true) && #1#0.{self::MyMap::containsKey}(#C7){(core::Object?) → core::bool} && (let final core::int #t32 = y2 = let core::int? #t33 = #1#0.{self::MyMap::[]}(#C7){(core::Object?) → core::int?} in #t33 == null ?{core::int} #t33 as{Unchecked} core::int : #t33{core::int} in true)))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
self::expect(self::hasUnsoundNullSafety ?{core::String} self::unsoundResult : self::soundResult, map.{self::MyMap::log}{core::String});
@@ -170,4 +170,4 @@ constants {
Extra constant evaluation status:
Evaluated: IsExpression @ org-dartlang-testcase:///map_lookup.dart:9:49 -> BoolConstant(true)
Extra constant evaluation: evaluated: 343, effectively constant: 1
Extra constant evaluation: evaluated: 415, effectively constant: 1
@@ -7,7 +7,7 @@ static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
{
if(#0#0 is core::Map<core::String, core::int> && #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #C2 =={core::num::==}{(core::Object) → core::bool} #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C1){(core::Object?) → core::int?} as{Unchecked} core::int && #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && #C4 =={core::num::==}{(core::Object) → core::bool} #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} as{Unchecked} core::int) {
if(#0#0 is core::Map<core::String, core::int> && #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #C2 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t1 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C1){(core::Object?) → core::int?} in #t1 == null ?{core::int} #t1 as{Unchecked} core::int : #t1{core::int}) && #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && #C4 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t2 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C3){(core::Object?) → core::int?} in #t2 == null ?{core::int} #t2 as{Unchecked} core::int : #t2{core::int})) {
{
break #L1;
}
@@ -7,7 +7,7 @@ static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
{
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in (#0#0 as{Unchecked} core::Object) is core::Map<core::Object?, core::Object?> && ((#0#0 as{Unchecked} core::Object) as{Unchecked} core::Map<core::Object?, core::Object?>).{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #C2 =={core::num::==}{(core::Object) → core::bool} ((#0#0 as{Unchecked} core::Object) as{Unchecked} core::Map<core::Object?, core::Object?>).{core::Map::[]}(#C1){(core::Object?) → core::Object?}) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object}) is core::Map<core::Object?, core::Object?> && ((let dynamic #t4 = #0#0 in #t4 == null ?{core::Object} #t4 as core::Object : #t4{core::Object}) as{Unchecked} core::Map<core::Object?, core::Object?>).{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #C2 =={core::num::==}{(core::Object) → core::bool} ((let dynamic #t5 = #0#0 in #t5 == null ?{core::Object} #t5 as core::Object : #t5{core::Object}) as{Unchecked} core::Map<core::Object?, core::Object?>).{core::Map::[]}(#C1){(core::Object?) → core::Object?}) {
{
break #L1;
}
@@ -28,19 +28,19 @@ static method test2(dynamic x) → dynamic {
static method test3(core::Map<core::bool, core::double> x) → dynamic {
{
final synthesized core::Map<core::bool, core::double> #0#0 = x;
if(#0#0.{core::Map::containsKey}(#C7){(core::Object?) → core::bool} && #C8 =={core::num::==}{(core::Object) → core::bool} #0#0.{core::Map::[]}(#C7){(core::Object?) → core::double?} as{Unchecked} core::double) {
if(#0#0.{core::Map::containsKey}(#C7){(core::Object?) → core::bool} && #C8 =={core::num::==}{(core::Object) → core::bool} (let core::double? #t1 = #0#0.{core::Map::[]}(#C7){(core::Object?) → core::double?} in #t1 == null ?{core::double} #t1 as{Unchecked} core::double : #t1{core::double})) {
}
}
{
final synthesized core::Map<core::bool, core::double> #1#0 = x;
if(#1#0.{core::Map::containsKey}(#C9){(core::Object?) → core::bool} && #C10 =={core::num::==}{(core::Object) → core::bool} #1#0.{core::Map::[]}(#C9){(core::Object?) → core::double?} as{Unchecked} core::double) {
if(#1#0.{core::Map::containsKey}(#C9){(core::Object?) → core::bool} && #C10 =={core::num::==}{(core::Object) → core::bool} (let core::double? #t2 = #1#0.{core::Map::[]}(#C9){(core::Object?) → core::double?} in #t2 == null ?{core::double} #t2 as{Unchecked} core::double : #t2{core::double})) {
}
}
}
static method test4(self::MyMap x) → dynamic {
{
final synthesized self::MyMap #0#0 = x;
if(#0#0.{core::Map::containsKey}(#C11){(core::Object?) → core::bool} && #C2 =={core::num::==}{(core::Object) → core::bool} #0#0.{core::Map::[]}(#C11){(core::Object?) → core::int?} as{Unchecked} core::int && #0#0.{core::Map::containsKey}(#C12){(core::Object?) → core::bool} && #C4 =={core::num::==}{(core::Object) → core::bool} #0#0.{core::Map::[]}(#C12){(core::Object?) → core::int?} as{Unchecked} core::int) {
if(#0#0.{core::Map::containsKey}(#C11){(core::Object?) → core::bool} && #C2 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t3 = #0#0.{core::Map::[]}(#C11){(core::Object?) → core::int?} in #t3 == null ?{core::int} #t3 as{Unchecked} core::int : #t3{core::int}) && #0#0.{core::Map::containsKey}(#C12){(core::Object?) → core::bool} && #C4 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t4 = #0#0.{core::Map::[]}(#C12){(core::Object?) → core::int?} in #t4 == null ?{core::int} #t4 as{Unchecked} core::int : #t4{core::int})) {
}
}
}
@@ -52,7 +52,7 @@ static method test5(dynamic x) → dynamic {
{
hoisted dynamic y1;
hoisted core::String y2;
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C11){(core::Object?) → core::bool} && (let final dynamic #t1 = y1 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C11){(core::Object?) → dynamic} in true) && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C12){(core::Object?) → core::bool} && (let final dynamic #t2 = (#0#7#isSet ?{dynamic} #0#7{dynamic} : let final core::bool #t3 = #0#7#isSet = true in #0#7 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C12){(core::Object?) → dynamic})! in (#0#7#isSet ?{dynamic} #0#7{dynamic} : let final core::bool #t4 = #0#7#isSet = true in #0#7 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C12){(core::Object?) → dynamic})! is core::String && (let final core::String #t5 = y2 = (#0#7#isSet ?{dynamic} #0#7{dynamic} : let final core::bool #t6 = #0#7#isSet = true in #0#7 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C12){(core::Object?) → dynamic})! as{Unchecked} core::String in true))) {
if(#0#0 is core::Map<dynamic, dynamic> && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C11){(core::Object?) → core::bool} && (let final dynamic #t5 = y1 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C11){(core::Object?) → dynamic} in true) && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C12){(core::Object?) → core::bool} && (let final dynamic #t6 = (#0#7#isSet ?{dynamic} #0#7{dynamic} : let final core::bool #t7 = #0#7#isSet = true in #0#7 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C12){(core::Object?) → dynamic})! in (#0#7#isSet ?{dynamic} #0#7{dynamic} : let final core::bool #t8 = #0#7#isSet = true in #0#7 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C12){(core::Object?) → dynamic})! is core::String && (let final core::String #t9 = y2 = (#0#7#isSet ?{dynamic} #0#7{dynamic} : let final core::bool #t10 = #0#7#isSet = true in #0#7 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C12){(core::Object?) → dynamic})! as{Unchecked} core::String in true))) {
return 0;
}
else {
@@ -322,7 +322,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListBase
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(core::int start, core::int end, [covariant-by-class core::int? fill = #C2]) → void {
core::int value = let core::int? #t6 = fill in #t6 == null ?{core::int} #t6 as{Unchecked} core::int : #t6{core::int};
core::int value = let core::int? #t6 = fill in #t6 == null ?{core::int} let core::int? #t7 = #t6 in #t7 == null ?{core::int} #t7 as core::int : #t7{core::int} : #t6{core::int};
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
for (core::int i = start; i.{core::num::<}(end){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{core::List::[]=}(i, value){(core::int, core::int) → void};
@@ -496,7 +496,7 @@ abstract class _A&Object&ListMixin extends core::Object implements col::ListBase
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
core::int element = :sync-for-iterator.{core::Iterator::current}{core::int};
{
this.{core::List::[]=}(let final core::int #t7 = index in let final core::int #t8 = index = #t7.{core::num::+}(1){(core::num) → core::int} in #t7, element){(core::int, core::int) → void};
this.{core::List::[]=}(let final core::int #t8 = index in let final core::int #t9 = index = #t8.{core::num::+}(1){(core::num) → core::int} in #t8, element){(core::int, core::int) → void};
}
}
}
@@ -537,8 +537,8 @@ static method main() → dynamic {
{
hoisted core::int x;
hoisted core::int y;
if(#0#0.{self::A::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C8 && ((#0#4#isSet ?{core::int} #0#4{core::int} : let final core::bool #t9 = #0#4#isSet = true in #0#4 = #0#0.{self::A::[]}(0){(core::int) → core::int}) is core::int && (let final core::int #t10 = x = #0#4#isSet ?{core::int} #0#4{core::int} : let final core::bool #t11 = #0#4#isSet = true in #0#4 = #0#0.{self::A::[]}(0){(core::int) → core::int} in true)) && (#0#5#isSet ?{core::int} #0#5{core::int} : let final core::bool #t12 = #0#5#isSet = true in #0#5 = #0#0.{self::A::[]}(1){(core::int) → core::int}) is core::int) {
y = #0#5#isSet ?{core::int} #0#5{core::int} : let final core::bool #t13 = #0#5#isSet = true in #0#5 = #0#0.{self::A::[]}(1){(core::int) → core::int};
if(#0#0.{self::A::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C8 && ((#0#4#isSet ?{core::int} #0#4{core::int} : let final core::bool #t10 = #0#4#isSet = true in #0#4 = #0#0.{self::A::[]}(0){(core::int) → core::int}) is core::int && (let final core::int #t11 = x = #0#4#isSet ?{core::int} #0#4{core::int} : let final core::bool #t12 = #0#4#isSet = true in #0#4 = #0#0.{self::A::[]}(0){(core::int) → core::int} in true)) && (#0#5#isSet ?{core::int} #0#5{core::int} : let final core::bool #t13 = #0#5#isSet = true in #0#5 = #0#0.{self::A::[]}(1){(core::int) → core::int}) is core::int) {
y = #0#5#isSet ?{core::int} #0#5{core::int} : let final core::bool #t14 = #0#5#isSet = true in #0#5 = #0#0.{self::A::[]}(1){(core::int) → core::int};
{
self::expectEquals(x, 0);
self::expectEquals(y, 0);
@@ -570,4 +570,4 @@ Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:462:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:471:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:480:12 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1102, effectively constant: 4
Extra constant evaluation: evaluated: 1108, effectively constant: 4
@@ -72,35 +72,35 @@ static method test(dynamic o) → dynamic {
}
}
{
if(#0#0 is core::Map<core::String, core::int> && (#0#21#isSet ?{core::bool} #0#21{core::bool} : let final core::bool #t14 = #0#21#isSet = true in #0#21 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#22#isSet ?{core::int?} #0#22{core::int?} : let final core::bool #t15 = #0#22#isSet = true in #0#22 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C5){(core::Object?) → core::int?}) as{Unchecked} core::int) {
if(#0#0 is core::Map<core::String, core::int> && (#0#21#isSet ?{core::bool} #0#21{core::bool} : let final core::bool #t14 = #0#21#isSet = true in #0#21 = #0#0{core::Map<core::String, core::int>}.{core::Map::containsKey}(#C5){(core::Object?) → core::bool}) && #C8 =={core::num::==}{(core::Object) → core::bool} (let core::int? #t15 = #0#22#isSet ?{core::int?} #0#22{core::int?} : let final core::bool #t16 = #0#22#isSet = true in #0#22 = #0#0{core::Map<core::String, core::int>}.{core::Map::[]}(#C5){(core::Object?) → core::int?} in #t15 == null ?{core::int} #t15 as{Unchecked} core::int : #t15{core::int})) {
{
return 5;
}
}
}
{
if(#0#0 is self::A<dynamic> && #C6 =={core::num::==}{(core::Object) → core::bool} (#0#31#isSet ?{dynamic} #0#31{dynamic} : let final core::bool #t16 = #0#31#isSet = true in #0#31 = #0#0{self::A<dynamic>}.{self::A::foo}{dynamic})) {
if(#0#0 is self::A<dynamic> && #C6 =={core::num::==}{(core::Object) → core::bool} (#0#31#isSet ?{dynamic} #0#31{dynamic} : let final core::bool #t17 = #0#31#isSet = true in #0#31 = #0#0{self::A<dynamic>}.{self::A::foo}{dynamic})) {
{
return 6;
}
}
}
{
if(#0#0 is self::A<core::int> && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#31#isSet ?{core::int} #0#31{core::int} : let final core::bool #t17 = #0#31#isSet = true in #0#31 = #0#0{self::A<core::int>}.{self::A::foo}{core::int})) {
if(#0#0 is self::A<core::int> && #C7 =={core::num::==}{(core::Object) → core::bool} (#0#31#isSet ?{core::int} #0#31{core::int} : let final core::bool #t18 = #0#31#isSet = true in #0#31 = #0#0{self::A<core::int>}.{self::A::foo}{core::int})) {
{
return 7;
}
}
}
{
if(#0#0 is self::B && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#31#isSet ?{core::num} #0#31{core::num} : let final core::bool #t18 = #0#31#isSet = true in #0#31 = #0#0{self::B}.{self::B::foo}{core::num})) {
if(#0#0 is self::B && #C8 =={core::num::==}{(core::Object) → core::bool} (#0#31#isSet ?{core::num} #0#31{core::num} : let final core::bool #t19 = #0#31#isSet = true in #0#31 = #0#0{self::B}.{self::B::foo}{core::num})) {
{
return 8;
}
}
}
{
if(#0#0 is ({foo: core::Object?}) && #C9 =={core::num::==}{(core::Object) → core::bool} (#0#31#isSet ?{core::Object?} #0#31{core::Object?} : let final core::bool #t19 = #0#31#isSet = true in #0#31 = #0#0{({foo: core::Object?})}.foo{core::Object?})) {
if(#0#0 is ({foo: core::Object?}) && #C9 =={core::num::==}{(core::Object) → core::bool} (#0#31#isSet ?{core::Object?} #0#31{core::Object?} : let final core::bool #t20 = #0#31#isSet = true in #0#31 = #0#0{({foo: core::Object?})}.foo{core::Object?})) {
{
return 9;
}
@@ -169,4 +169,4 @@ Evaluated: InstanceInvocation @ org-dartlang-testcase:///multiple_targets.dart:7
Evaluated: RecordLiteral @ org-dartlang-testcase:///multiple_targets.dart:79:18 -> RecordConstant(const ({foo: 8}))
Evaluated: InstanceInvocation @ org-dartlang-testcase:///multiple_targets.dart:80:10 -> IntConstant(-1)
Evaluated: RecordLiteral @ org-dartlang-testcase:///multiple_targets.dart:80:19 -> RecordConstant(const ({foo: 9}))
Extra constant evaluation: evaluated: 313, effectively constant: 11
Extra constant evaluation: evaluated: 319, effectively constant: 11
@@ -322,7 +322,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
}
}
method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(core::int start, core::int end, [covariant-by-class self::_NegativeLengthList&Object&ListMixin::E? fill = #C2]) → void {
self::_NegativeLengthList&Object&ListMixin::E% value = let self::_NegativeLengthList&Object&ListMixin::E? #t6 = fill in #t6 == null ?{self::_NegativeLengthList&Object&ListMixin::E%} #t6 as{Unchecked} self::_NegativeLengthList&Object&ListMixin::E% : #t6{self::_NegativeLengthList&Object&ListMixin::E%};
self::_NegativeLengthList&Object&ListMixin::E% value = let self::_NegativeLengthList&Object&ListMixin::E? #t6 = fill in #t6 == null ?{self::_NegativeLengthList&Object&ListMixin::E%} let self::_NegativeLengthList&Object&ListMixin::E? #t7 = #t6 in #t7 == null ?{self::_NegativeLengthList&Object&ListMixin::E%} #t7 as self::_NegativeLengthList&Object&ListMixin::E% : #t7{self::_NegativeLengthList&Object&ListMixin::E%} : #t6{self::_NegativeLengthList&Object&ListMixin::E%};
core::RangeError::checkValidRange(start, end, this.{core::List::length}{core::int});
for (core::int i = start; i.{core::num::<}(end){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
this.{core::List::[]=}(i, value){(core::int, self::_NegativeLengthList&Object&ListMixin::E%) → void};
@@ -496,7 +496,7 @@ abstract class _NegativeLengthList&Object&ListMixin<E extends core::Object? = dy
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
self::_NegativeLengthList&Object&ListMixin::E% element = :sync-for-iterator.{core::Iterator::current}{self::_NegativeLengthList&Object&ListMixin::E%};
{
this.{core::List::[]=}(let final core::int #t7 = index in let final core::int #t8 = index = #t7.{core::num::+}(1){(core::num) → core::int} in #t7, element){(core::int, self::_NegativeLengthList&Object&ListMixin::E%) → void};
this.{core::List::[]=}(let final core::int #t8 = index in let final core::int #t9 = index = #t8.{core::num::+}(1){(core::num) → core::int} in #t8, element){(core::int, self::_NegativeLengthList&Object&ListMixin::E%) → void};
}
}
}
@@ -530,33 +530,33 @@ class NegativeLengthList<E extends core::Object? = dynamic> extends self::_Negat
}
static method switchList(core::List<core::int> list) → core::int
return block {
core::int #t9;
core::int #t10;
final synthesized core::List<core::int> #0#0 = list;
synthesized core::int #0#1;
synthesized core::bool #0#1#isSet = false;
#L1:
{
{
if((#0#1#isSet ?{core::int} #0#1{core::int} : let final core::bool #t10 = #0#1#isSet = true in #0#1 = #0#0.{core::List::length}{core::int}).{core::num::>=}(#C8){(core::num) → core::bool}) {
#t9 = 2;
if((#0#1#isSet ?{core::int} #0#1{core::int} : let final core::bool #t11 = #0#1#isSet = true in #0#1 = #0#0.{core::List::length}{core::int}).{core::num::>=}(#C8){(core::num) → core::bool}) {
#t10 = 2;
break #L1;
}
}
{
if((#0#1#isSet ?{core::int} #0#1{core::int} : let final core::bool #t11 = #0#1#isSet = true in #0#1 = #0#0.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C9) {
#t9 = 1;
if((#0#1#isSet ?{core::int} #0#1{core::int} : let final core::bool #t12 = #0#1#isSet = true in #0#1 = #0#0.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C9) {
#t10 = 1;
break #L1;
}
}
{
if((#0#1#isSet ?{core::int} #0#1{core::int} : let final core::bool #t12 = #0#1#isSet = true in #0#1 = #0#0.{core::List::length}{core::int}).{core::num::<=}(#C7){(core::num) → core::bool}) {
#t9 = 0;
if((#0#1#isSet ?{core::int} #0#1{core::int} : let final core::bool #t13 = #0#1#isSet = true in #0#1 = #0#0.{core::List::length}{core::int}).{core::num::<=}(#C7){(core::num) → core::bool}) {
#t10 = 0;
break #L1;
}
}
throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t9;
} =>#t10;
static method main() → dynamic {
self::expect(0, self::switchList(core::_GrowableList::•<core::int>(0)));
self::expect(1, self::switchList(core::_GrowableList::_literal1<core::int>(0)));
@@ -588,4 +588,4 @@ Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:471:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-sdk:///sdk/lib/collection/list.dart:480:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///negative_length.dart:12:41 -> IntConstant(-1)
Extra constant evaluation: evaluated: 1124, effectively constant: 5
Extra constant evaluation: evaluated: 1130, effectively constant: 5
@@ -58,7 +58,7 @@ static method test(dynamic value, core::bool expected) → void {
}
{
final synthesized dynamic #3#0 = value;
if(#3#0 is core::Map<core::num, core::Object> && #3#0{core::Map<core::num, core::Object>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #C4 =={core::String::==}{(core::Object) → core::bool} #3#0{core::Map<core::num, core::Object>}.{core::Map::[]}(#C1){(core::Object?) → core::Object?} as{Unchecked} core::Object) {
if(#3#0 is core::Map<core::num, core::Object> && #3#0{core::Map<core::num, core::Object>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool} && #C4 =={core::String::==}{(core::Object) → core::bool} (let core::Object? #t1 = #3#0{core::Map<core::num, core::Object>}.{core::Map::[]}(#C1){(core::Object?) → core::Object?} in #t1 == null ?{core::Object} #t1 as{Unchecked} core::Object : #t1{core::Object})) {
matched = true;
}
}
@@ -74,7 +74,7 @@ static method test(dynamic value, core::bool expected) → void {
}
}
{
if(#0#0 is core::Map<core::num, core::Object> && (#0#12#isSet ?{core::bool} #0#12{core::bool} : let final core::bool #t7 = #0#12#isSet = true in #0#12 = #0#0{core::Map<core::num, core::Object>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool}) && (#0#15#isSet ?{core::bool} #0#15{core::bool} : let final core::bool #t8 = #0#15#isSet = true in #0#15 = #C4 =={core::String::==}{(core::Object) → core::bool} #0#0{core::Map<core::num, core::Object>}.{core::Map::[]}(#C1){(core::Object?) → core::Object?} as{Unchecked} core::Object)) {
if(#0#0 is core::Map<core::num, core::Object> && (#0#12#isSet ?{core::bool} #0#12{core::bool} : let final core::bool #t7 = #0#12#isSet = true in #0#12 = #0#0{core::Map<core::num, core::Object>}.{core::Map::containsKey}(#C1){(core::Object?) → core::bool}) && (#0#15#isSet ?{core::bool} #0#15{core::bool} : let final core::bool #t8 = #0#15#isSet = true in #0#15 = #C4 =={core::String::==}{(core::Object) → core::bool} (let core::Object? #t9 = #0#0{core::Map<core::num, core::Object>}.{core::Map::[]}(#C1){(core::Object?) → core::Object?} in #t9 == null ?{core::Object} #t9 as{Unchecked} core::Object : #t9{core::Object}))) {
{
matched = true;
break #L1;
@@ -16,7 +16,7 @@ static method test(dynamic x) → dynamic {
synthesized core::bool #0#2#isSet = false;
{
hoisted core::int f;
if(#0#0 is self::C && (!((#0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t1 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?}) == null) && (let final core::int #t2 = f = (#0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t3 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?}) as{Unchecked} core::int in true))) {
if(#0#0 is self::C && (!((#0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t1 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?}) == null) && (let final core::int #t2 = f = let core::int? #t3 = #0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t4 = #0#2#isSet = true in #0#2 = #0#0{self::C}.{self::C::f}{core::int?} in #t3 == null ?{core::int} #t3 as{Unchecked} core::int : #t3{core::int} in true))) {
{
break #L1;
}
@@ -7,7 +7,7 @@ static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
{
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in #0#0 as{Unchecked} core::Object == null) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object}) == null) {
{
break #L1;
}
@@ -7,7 +7,7 @@ static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
{
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in #C1 =={core::num::==}{(core::Object) → core::bool} #0#0 as{Unchecked} core::Object) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in #C1 =={core::num::==}{(core::Object) → core::bool} (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object})) {
{
break #L1;
}
@@ -36,9 +36,9 @@ static method test() → dynamic {
^";
if(!(#0#0.{core::Map::containsKey}(invalid-expression "pkg/front_end/testcases/patterns/parser_recovery_in_pattern_arguments.dart:13:14: Error: This couldn't be parsed.
var {const C(:var t): a1} = foo();
^"){(core::Object?) → core::bool} && (let final core::int #t1 = a1 = #0#0.{core::Map::[]}(invalid-expression "pkg/front_end/testcases/patterns/parser_recovery_in_pattern_arguments.dart:13:14: Error: This couldn't be parsed.
^"){(core::Object?) → core::bool} && (let final core::int #t1 = a1 = let core::int? #t2 = #0#0.{core::Map::[]}(invalid-expression "pkg/front_end/testcases/patterns/parser_recovery_in_pattern_arguments.dart:13:14: Error: This couldn't be parsed.
var {const C(:var t): a1} = foo();
^"){(core::Object?) → core::int?} as{Unchecked} core::int in true)))
^"){(core::Object?) → core::int?} in #t2 == null ?{core::int} #t2 as{Unchecked} core::int : #t2{core::int} in true)))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
}
@@ -10,7 +10,7 @@ static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
{
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in (#0#0 as{Unchecked} core::Object) is asy::Future<core::int>) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object}) is asy::Future<core::int>) {
{
break #L1;
}
@@ -7,7 +7,7 @@ static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
{
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in (#0#0 as{Unchecked} core::Object) is (core::Object?, core::Object?) && #C1 =={core::num::==}{(core::Object) → core::bool} ((#0#0 as{Unchecked} core::Object) as{Unchecked} (core::Object?, core::Object?)).$1{core::Object?} && #C2 =={core::num::==}{(core::Object) → core::bool} ((#0#0 as{Unchecked} core::Object) as{Unchecked} (core::Object?, core::Object?)).$2{core::Object?}) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object}) is (core::Object?, core::Object?) && #C1 =={core::num::==}{(core::Object) → core::bool} ((let dynamic #t4 = #0#0 in #t4 == null ?{core::Object} #t4 as core::Object : #t4{core::Object}) as{Unchecked} (core::Object?, core::Object?)).$1{core::Object?} && #C2 =={core::num::==}{(core::Object) → core::bool} ((let dynamic #t5 = #0#0 in #t5 == null ?{core::Object} #t5 as core::Object : #t5{core::Object}) as{Unchecked} (core::Object?, core::Object?)).$2{core::Object?}) {
{
break #L1;
}
@@ -7,7 +7,7 @@ static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
{
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in #C1 =={core::String::==}{(core::Object) → core::bool} #0#0 as{Unchecked} core::Object) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in #C1 =={core::String::==}{(core::Object) → core::bool} (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object})) {
{
break #L1;
}
@@ -8,7 +8,7 @@ static method test(dynamic x) → dynamic {
final synthesized dynamic #0#0 = x;
{
final hoisted core::int y;
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in (#0#0 as{Unchecked} core::Object) is core::int && (let final core::int #t2 = y = (#0#0 as{Unchecked} core::Object) as{Unchecked} core::int in true)) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object}) is core::int && (let final core::int #t4 = y = (let dynamic #t5 = #0#0 in #t5 == null ?{core::Object} #t5 as core::Object : #t5{core::Object}) as{Unchecked} core::int in true)) {
{
break #L1;
}
@@ -8,7 +8,7 @@ static method test(dynamic x) → dynamic {
final synthesized dynamic #0#0 = x;
{
hoisted core::int y;
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in (#0#0 as{Unchecked} core::Object) is core::int && (let final core::int #t2 = y = (#0#0 as{Unchecked} core::Object) as{Unchecked} core::int in true)) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in (let dynamic #t3 = #0#0 in #t3 == null ?{core::Object} #t3 as core::Object : #t3{core::Object}) is core::int && (let final core::int #t4 = y = (let dynamic #t5 = #0#0 in #t5 == null ?{core::Object} #t5 as core::Object : #t5{core::Object}) as{Unchecked} core::int in true)) {
{
break #L1;
}
@@ -8,7 +8,7 @@ static method test(dynamic x) → dynamic {
final synthesized dynamic #0#0 = x;
{
hoisted core::Object y;
if(let final core::Object #t1 = #0#0 as{Unchecked} core::Object in let final core::Object #t2 = y = #0#0 as{Unchecked} core::Object in true) {
if(let final core::Object #t1 = let dynamic #t2 = #0#0 in #t2 == null ?{core::Object} #t2 as core::Object : #t2{core::Object} in let final core::Object #t3 = y = let dynamic #t4 = #0#0 in #t4 == null ?{core::Object} #t4 as core::Object : #t4{core::Object} in true) {
{
break #L1;
}
@@ -43,9 +43,9 @@ static method test(dynamic x, dynamic y, dynamic z) → dynamic {
hoisted core::double boz;
hoisted core::int foobar;
if(#0#0 is self::A && (let final core::int? #t1 = (#0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t2 = #0#2#isSet = true in #0#2 = #0#0{self::A}.{self::A::foo}{core::int?})! in let final core::int? #t3 = foo = (#0#2#isSet ?{core::int?} #0#2{core::int?} : let final core::bool #t4 = #0#2#isSet = true in #0#2 = #0#0{self::A}.{self::A::foo}{core::int?})! in true) && (let final core::int #t5 = bar = #0#0{self::A}.{self::A::bar}{core::int} in true) && !((#0#5#isSet ?{core::int?} #0#5{core::int?} : let final core::bool #t6 = #0#5#isSet = true in #0#5 = #0#0{self::A}.{self::A::baz}{core::int?}) == null)) {
baz = (#0#5#isSet ?{core::int?} #0#5{core::int?} : let final core::bool #t7 = #0#5#isSet = true in #0#5 = #0#0{self::A}.{self::A::baz}{core::int?}) as{Unchecked} core::int;
(#0#7#isSet ?{core::num} #0#7{core::num} : let final core::bool #t8 = #0#7#isSet = true in #0#7 = #0#0{self::A}.{self::A::boz}{core::num}) as core::double;
boz = (#0#7#isSet ?{core::num} #0#7{core::num} : let final core::bool #t9 = #0#7#isSet = true in #0#7 = #0#0{self::A}.{self::A::boz}{core::num}) as core::double;
baz = let core::int? #t7 = #0#5#isSet ?{core::int?} #0#5{core::int?} : let final core::bool #t8 = #0#5#isSet = true in #0#5 = #0#0{self::A}.{self::A::baz}{core::int?} in #t7 == null ?{core::int} #t7 as{Unchecked} core::int : #t7{core::int};
(#0#7#isSet ?{core::num} #0#7{core::num} : let final core::bool #t9 = #0#7#isSet = true in #0#7 = #0#0{self::A}.{self::A::boz}{core::num}) as core::double;
boz = (#0#7#isSet ?{core::num} #0#7{core::num} : let final core::bool #t10 = #0#7#isSet = true in #0#7 = #0#0{self::A}.{self::A::boz}{core::num}) as core::double;
foobar = #0#0{self::A}.{self::A::foobar}{core::int};
{
return 0;
@@ -65,10 +65,10 @@ static method test(dynamic x, dynamic y, dynamic z) → dynamic {
hoisted dynamic baz;
hoisted core::double boz;
hoisted dynamic foobar;
if(#1#0 is (core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?}) && (let final core::Object? #t10 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t11 = #1#2#isSet = true in #1#2 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.foo{core::Object?})! in let final core::Object? #t12 = foo = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t13 = #1#2#isSet = true in #1#2 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.foo{core::Object?})! in true) && (let final core::Object? #t14 = bar = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.bar{core::Object?} in true) && !((#1#5#isSet ?{core::Object?} #1#5{core::Object?} : let final core::bool #t15 = #1#5#isSet = true in #1#5 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.baz{core::Object?}) == null)) {
baz = #1#5#isSet ?{core::Object?} #1#5{core::Object?} : let final core::bool #t16 = #1#5#isSet = true in #1#5 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.baz{core::Object?};
(#1#7#isSet ?{core::Object?} #1#7{core::Object?} : let final core::bool #t17 = #1#7#isSet = true in #1#7 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.$1{core::Object?}) as core::double;
boz = (#1#7#isSet ?{core::Object?} #1#7{core::Object?} : let final core::bool #t18 = #1#7#isSet = true in #1#7 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.$1{core::Object?}) as core::double;
if(#1#0 is (core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?}) && (let final core::Object? #t11 = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t12 = #1#2#isSet = true in #1#2 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.foo{core::Object?})! in let final core::Object? #t13 = foo = (#1#2#isSet ?{core::Object?} #1#2{core::Object?} : let final core::bool #t14 = #1#2#isSet = true in #1#2 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.foo{core::Object?})! in true) && (let final core::Object? #t15 = bar = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.bar{core::Object?} in true) && !((#1#5#isSet ?{core::Object?} #1#5{core::Object?} : let final core::bool #t16 = #1#5#isSet = true in #1#5 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.baz{core::Object?}) == null)) {
baz = #1#5#isSet ?{core::Object?} #1#5{core::Object?} : let final core::bool #t17 = #1#5#isSet = true in #1#5 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.baz{core::Object?};
(#1#7#isSet ?{core::Object?} #1#7{core::Object?} : let final core::bool #t18 = #1#7#isSet = true in #1#7 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.$1{core::Object?}) as core::double;
boz = (#1#7#isSet ?{core::Object?} #1#7{core::Object?} : let final core::bool #t19 = #1#7#isSet = true in #1#7 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.$1{core::Object?}) as core::double;
foobar = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.foobar{core::Object?};
{
return 1;
@@ -94,12 +94,12 @@ static method test(dynamic x, dynamic y, dynamic z) → dynamic {
}
{
final synthesized dynamic #4#0 = y as{TypeError,ForDynamic} self::A;
if(!(#4#0 is self::A && (let final core::bool #t19 = qux = #4#0{self::A}.{self::A::qux}{core::bool} in true) && (let final core::String #t20 = quux = #4#0{self::A}.{self::A::quux}{core::String} in true)))
if(!(#4#0 is self::A && (let final core::bool #t20 = qux = #4#0{self::A}.{self::A::qux}{core::bool} in true) && (let final core::String #t21 = quux = #4#0{self::A}.{self::A::quux}{core::String} in true)))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
{
final synthesized dynamic #5#0 = z as{TypeError,ForDynamic} (dynamic, {quux: dynamic});
if(!(#5#0 is (core::Object?, {quux: core::Object?}) && (let final core::Object? #t21 = qux = #5#0{(core::Object?, {quux: core::Object?})}.$1{core::Object?} in true) && (let final core::Object? #t22 = quux = #5#0{(core::Object?, {quux: core::Object?})}.quux{core::Object?} in true)))
if(!(#5#0 is (core::Object?, {quux: core::Object?}) && (let final core::Object? #t22 = qux = #5#0{(core::Object?, {quux: core::Object?})}.$1{core::Object?} in true) && (let final core::Object? #t23 = quux = #5#0{(core::Object?, {quux: core::Object?})}.quux{core::Object?} in true)))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
}
+2 -9
View File
@@ -22,8 +22,7 @@ import 'package:front_end/src/api_prototype/file_system.dart';
import 'package:front_end/src/api_prototype/incremental_kernel_generator.dart';
import 'package:front_end/src/api_unstable/bazel_worker.dart' as fe;
import 'package:front_end/src/fasta/uri_translator.dart';
import 'package:kernel/ast.dart'
show Component, Library, NonNullableByDefaultCompiledMode;
import 'package:kernel/ast.dart' show Component, Library;
import 'package:kernel/target/targets.dart';
import 'package:vm/kernel_front_end.dart';
import 'package:vm/modular/target/flutter.dart';
@@ -398,13 +397,7 @@ Future<ComputeKernelResult> computeKernel(List<String> args,
nativeAssetsLibrary =
await NativeAssetsSynthesizer.synthesizeLibraryFromYamlFile(
nativeAssetsUri,
new ErrorDetector(),
nonNullableByDefaultCompiledMode:
state.options.nnbdMode == fe.NnbdMode.Strong
? NonNullableByDefaultCompiledMode.Strong
: NonNullableByDefaultCompiledMode.Weak,
);
nativeAssetsUri, new ErrorDetector());
}
if (usingIncrementalCompiler) {
@@ -529,7 +529,6 @@ class FrontendCompiler implements CompilerInterface {
..explicitExperimentalFlags = parseExperimentalFlags(
parseExperimentalArguments(options['enable-experiment']),
onError: (msg) => errors.add(msg))
..nnbdMode = soundNullSafety ? NnbdMode.Strong : NnbdMode.Weak
..onDiagnostic = _onDiagnostic
..verbosity = Verbosity.parseArgument(options['verbosity'],
onError: (msg) => errors.add(msg));
@@ -606,7 +605,6 @@ class FrontendCompiler implements CompilerInterface {
compilerOptions.target = createFrontEndTarget(
options['target'],
trackWidgetCreation: options['track-widget-creation'],
soundNullSafety: compilerOptions.nnbdMode == NnbdMode.Strong,
supportMirrors: options['support-mirrors'] ??
!(options['aot'] || options['minimal-kernel']),
);
@@ -828,7 +826,6 @@ class FrontendCompiler implements CompilerInterface {
PackageConfig packageConfig = await loadPackageConfigUri(
_compilerOptions.packagesFileUri ??
new File('.dart_tool/package_config.json').absolute.uri);
bool soundNullSafety = _compilerOptions.nnbdMode == NnbdMode.Strong;
final Component component = results.component!;
final IncrementalJavaScriptBundler bundler =
@@ -839,7 +836,6 @@ class FrontendCompiler implements CompilerInterface {
useDebuggerModuleNames: useDebuggerModuleNames,
emitDebugMetadata: emitDebugMetadata,
moduleFormat: moduleFormat,
soundNullSafety: soundNullSafety,
canaryFeatures: canaryFeatures,
);
if (fullComponent) {
@@ -37,7 +37,6 @@ class IncrementalJavaScriptBundler {
this.useDebuggerModuleNames = false,
this.emitDebugMetadata = false,
this.emitDebugSymbols = false,
this.soundNullSafety = false,
this.canaryFeatures = false,
String? moduleFormat,
}) : _moduleFormat = parseModuleFormat(moduleFormat ?? 'amd');
@@ -46,7 +45,6 @@ class IncrementalJavaScriptBundler {
final bool emitDebugMetadata;
final bool emitDebugSymbols;
final ModuleFormat _moduleFormat;
final bool soundNullSafety;
final bool canaryFeatures;
final FileSystem? _fileSystem;
final Set<Library> _loadedLibraries;
@@ -212,7 +210,7 @@ class IncrementalJavaScriptBundler {
emitDebugMetadata: emitDebugMetadata,
emitDebugSymbols: emitDebugSymbols,
moduleName: moduleName,
soundNullSafety: soundNullSafety,
soundNullSafety: true,
canaryFeatures: canaryFeatures,
),
_importToSummary,

Some files were not shown because too many files have changed in this diff Show More