blob: 041c84c43f0f3369f34a0f92755c155886e80c2f [file]
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"
}