| library /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| |
| static method test(core::Object? o) → core::String { |
| core::String toReturn = ""; |
| #L1: |
| { |
| final core::Object? #0#0 = o; |
| core::int #0#2; |
| core::bool #0#2#isSet = false; |
| if(#0#0 is{ForNonNullableByDefault} core::List<dynamic> && (#0#2#isSet ?{core::int} #0#2{core::int} : let final dynamic #t1 = #0#2#isSet = true in #0#2 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C1 && #C2 =={core::num::==}{(core::Object) → core::bool} #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} && #C1 =={core::num::==}{(core::Object) → core::bool} #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) { |
| { |
| toReturn = "list"; |
| break #L1; |
| } |
| } |
| else |
| if(#0#0 is{ForNonNullableByDefault} core::Map<dynamic, dynamic> && (#0#2#isSet ?{core::int} #0#2{core::int} : let final dynamic #t2 = #0#2#isSet = true in #0#2 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C2 && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool} && (let final dynamic #t3 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C3){(core::Object?) → dynamic} in true)) { |
| { |
| toReturn = "map"; |
| break #L1; |
| } |
| } |
| else { |
| { |
| toReturn = "default"; |
| } |
| } |
| } |
| return toReturn; |
| } |
| static method main() → dynamic { |
| self::expect("list", self::test(<core::int>[1, 2])); |
| self::expect("map", self::test(<core::String, core::int>{"key1": 1})); |
| } |
| static method expect(dynamic expected, dynamic actual) → dynamic { |
| if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual)) { |
| throw "Expected ${expected}, actual ${actual}"; |
| } |
| } |
| |
| constants { |
| #C1 = 2 |
| #C2 = 1 |
| #C3 = "key1" |
| } |