|  | library; | 
|  | import self as self; | 
|  | import "dart:core" as core; | 
|  |  | 
|  | static method test(core::Object? o) → core::String { | 
|  | core::String toReturn = ""; | 
|  | #L1: | 
|  | { | 
|  | final synthesized core::Object? #0#0 = o; | 
|  | synthesized core::Object? #0#14; | 
|  | synthesized core::bool #0#14#isSet = false; | 
|  | { | 
|  | 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} #C1 && #C2 =={core::num::==}{(core::Object) → core::bool} #0#0{core::List<core::Object?>}.{core::List::[]}(0){(core::int) → core::Object?} && #C1 =={core::num::==}{(core::Object) → core::bool} #0#0{core::List<core::Object?>}.{core::List::[]}(1){(core::int) → core::Object?}) { | 
|  | { | 
|  | toReturn = "list"; | 
|  | break #L1; | 
|  | } | 
|  | } | 
|  | } | 
|  | { | 
|  | if(#0#0 is core::Map<core::Object?, core::Object?> && (!((#0#14#isSet ?{core::Object?} #0#14{core::Object?} : let final core::bool* #t1 = #0#14#isSet = true in #0#14 = #0#0{core::Map<core::Object?, core::Object?>}.{core::Map::[]}(#C3){(core::Object?) → core::Object?}) == null) || null is core::Object? && #0#0{core::Map<core::Object?, core::Object?>}.{core::Map::containsKey}(#C3){(core::Object?) → core::bool}) && (let final core::Object? #t2 = #0#14#isSet ?{core::Object?} #0#14{core::Object?} : let final core::bool* #t3 = #0#14#isSet = true in #0#14 = #0#0{core::Map<core::Object?, core::Object?>}.{core::Map::[]}(#C3){(core::Object?) → core::Object?} in true)) { | 
|  | { | 
|  | toReturn = "map"; | 
|  | break #L1; | 
|  | } | 
|  | } | 
|  | } | 
|  | { | 
|  | { | 
|  | { | 
|  | toReturn = "default"; | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | return toReturn; | 
|  | } | 
|  | static method main() → dynamic { | 
|  | self::expect("list", self::test(core::_GrowableList::_literal2<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" | 
|  | } | 
|  |  | 
|  | Extra constant evaluation status: | 
|  | Evaluated: IsExpression @ org-dartlang-testcase:///issue51140.dart:10:17 -> BoolConstant(true) | 
|  | Extra constant evaluation: evaluated: 61, effectively constant: 1 |