| library; | |
| import self as self; | |
| import "dart:core" as core; | |
| class E extends core::_Enum /*isEnum*/ { | |
| enum-element static const field self::E a = #C3; | |
| enum-element static const field self::E b = #C6; | |
| enum-element static const field self::E c = #C9; | |
| static const field core::List<self::E> values = #C10; | |
| const synthetic constructor •(core::int #index, core::String #name) → self::E | |
| : super core::_Enum::•(#index, #name) | |
| ; | |
| method core::_enumToString() → core::String | |
| return "E.${this.{core::_Enum::_name}{core::String}}"; | |
| } | |
| class PrimitiveEquals extends core::Object /*hasConstConstructor*/ { | |
| final field core::int field; | |
| const constructor •(initializing-formal core::int field) → self::PrimitiveEquals | |
| : self::PrimitiveEquals::field = field, super core::Object::•() | |
| ; | |
| } | |
| class NonPrimitiveEquals extends core::Object /*hasConstConstructor*/ { | |
| final field core::int field; | |
| const constructor •(initializing-formal core::int field) → self::NonPrimitiveEquals | |
| : self::NonPrimitiveEquals::field = field, super core::Object::•() | |
| ; | |
| get hashCode() → core::int | |
| return this.{self::NonPrimitiveEquals::field}{core::int}.{core::num::hashCode}{core::int}; | |
| operator ==(core::Object other) → core::bool { | |
| if(core::identical(this, other)) | |
| return true; | |
| return other is self::NonPrimitiveEquals && this.{self::NonPrimitiveEquals::field}{core::int} =={core::num::==}{(core::Object) → core::bool} other{self::NonPrimitiveEquals}.{self::NonPrimitiveEquals::field}{core::int}; | |
| } | |
| } | |
| static method switchStatement(dynamic o) → dynamic { | |
| #L1: | |
| { | |
| final synthesized dynamic #0#0 = o; | |
| synthesized core::int #0#2; | |
| synthesized core::bool #0#2#isSet = false; | |
| final const synthesized core::int #0#3 = #C4; | |
| final const synthesized core::int #0#7 = #C7; | |
| synthesized dynamic #0#13; | |
| synthesized core::bool #0#13#isSet = false; | |
| dynamic #t1; | |
| { | |
| lowered hoisted dynamic a#case#0; | |
| lowered hoisted dynamic a#case#1; | |
| if(#0#0 is core::List<dynamic> && (#0#2#isSet ?{core::int} #0#2 : let final dynamic #t2 = #0#2#isSet = true in #0#2 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C4 && (let final dynamic #t3 = a#case#0 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} in true) && a#case#0{dynamic}.>(5) as{TypeError} core::bool && (let final dynamic #t4 = #t1 = a#case#0 in true) || #0#0 is core::List<dynamic> && (#0#2#isSet ?{core::int} #0#2 : let final dynamic #t5 = #0#2#isSet = true in #0#2 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && (let final dynamic #t6 = a#case#1 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} in true) && a#case#1{dynamic}.<(5) as{TypeError} core::bool && (let final dynamic #t7 = #t1 = a#case#1 in true)) { | |
| dynamic a = #t1; | |
| { | |
| core::print(a); | |
| break #L1; | |
| } | |
| } | |
| } | |
| { | |
| hoisted dynamic a##1; | |
| if(#0#0 is core::Map<dynamic, dynamic> && (!((#0#13#isSet ?{dynamic} #0#13 : let final dynamic #t8 = #0#13#isSet = true in #0#13 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic}) == null) || null is dynamic && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && (let final dynamic #t9 = a##1 = #0#13#isSet ?{dynamic} #0#13 : let final dynamic #t10 = #0#13#isSet = true in #0#13 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic} in true)) { | |
| { | |
| core::print(a##1); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| static method switchStatementWithLabel(dynamic o) → dynamic { | |
| #L2: | |
| { | |
| final synthesized dynamic #0#0 = o; | |
| synthesized core::int #0#2; | |
| synthesized core::bool #0#2#isSet = false; | |
| final const synthesized core::int #0#3 = #C4; | |
| final const synthesized core::int #0#7 = #C7; | |
| synthesized dynamic #0#13; | |
| synthesized core::bool #0#13#isSet = false; | |
| dynamic #t11; | |
| { | |
| lowered hoisted dynamic a#case#0; | |
| lowered hoisted dynamic a#case#1; | |
| if(#0#0 is core::List<dynamic> && (#0#2#isSet ?{core::int} #0#2 : let final dynamic #t12 = #0#2#isSet = true in #0#2 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C4 && (let final dynamic #t13 = a#case#0 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} in true) && a#case#0{dynamic}.>(5) as{TypeError} core::bool && (let final dynamic #t14 = #t11 = a#case#0 in true) || #0#0 is core::List<dynamic> && (#0#2#isSet ?{core::int} #0#2 : let final dynamic #t15 = #0#2#isSet = true in #0#2 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && (let final dynamic #t16 = a#case#1 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} in true) && a#case#1{dynamic}.<(5) as{TypeError} core::bool && (let final dynamic #t17 = #t11 = a#case#1 in true)) { | |
| dynamic a = #t11; | |
| { | |
| core::print(a); | |
| break #L2; | |
| } | |
| } | |
| } | |
| { | |
| hoisted dynamic a##1; | |
| if(#0#0 is core::Map<dynamic, dynamic> && (!((#0#13#isSet ?{dynamic} #0#13 : let final dynamic #t18 = #0#13#isSet = true in #0#13 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic}) == null) || null is dynamic && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && (let final dynamic #t19 = a##1 = #0#13#isSet ?{dynamic} #0#13 : let final dynamic #t20 = #0#13#isSet = true in #0#13 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic} in true)) { | |
| { | |
| core::print(a##1); | |
| break #L2; | |
| } | |
| } | |
| } | |
| { | |
| if(#C4 =={core::num::==}{(core::Object) → core::bool} #0#0) { | |
| { | |
| core::print(1); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| static method switchStatementWithContinue(dynamic o) → dynamic { | |
| #L3: | |
| { | |
| core::int #t21 = 1.{core::int::unary-}(){() → core::int}; | |
| final synthesized dynamic #0#0 = o; | |
| synthesized core::int #0#2; | |
| synthesized core::bool #0#2#isSet = false; | |
| final const synthesized core::int #0#3 = #C4; | |
| final const synthesized core::int #0#7 = #C7; | |
| synthesized dynamic #0#13; | |
| synthesized core::bool #0#13#isSet = false; | |
| final const synthesized core::int #0#14 = #C1; | |
| dynamic #t22; | |
| #L4: | |
| { | |
| { | |
| lowered hoisted dynamic a#case#0; | |
| lowered hoisted dynamic a#case#1; | |
| if(#0#0 is core::List<dynamic> && (#0#2#isSet ?{core::int} #0#2 : let final dynamic #t23 = #0#2#isSet = true in #0#2 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C4 && (let final dynamic #t24 = a#case#0 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} in true) && a#case#0{dynamic}.>(5) as{TypeError} core::bool && (let final dynamic #t25 = #t22 = a#case#0 in true) || #0#0 is core::List<dynamic> && (#0#2#isSet ?{core::int} #0#2 : let final dynamic #t26 = #0#2#isSet = true in #0#2 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && (let final dynamic #t27 = a#case#1 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} in true) && a#case#1{dynamic}.<(5) as{TypeError} core::bool && (let final dynamic #t28 = #t22 = a#case#1 in true)) { | |
| dynamic a = #t22; | |
| { | |
| core::print(a); | |
| break #L3; | |
| } | |
| } | |
| } | |
| { | |
| hoisted dynamic a##1; | |
| if(#0#0 is core::Map<dynamic, dynamic> && (!((#0#13#isSet ?{dynamic} #0#13 : let final dynamic #t29 = #0#13#isSet = true in #0#13 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic}) == null) || null is dynamic && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && (let final dynamic #t30 = a##1 = #0#13#isSet ?{dynamic} #0#13 : let final dynamic #t31 = #0#13#isSet = true in #0#13 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic} in true)) { | |
| { | |
| core::print(a##1); | |
| #t21 = 0; | |
| break #L4; | |
| } | |
| } | |
| } | |
| { | |
| if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0) { | |
| { | |
| core::print(o); | |
| break #L3; | |
| } | |
| } | |
| } | |
| { | |
| if(#C4 =={core::num::==}{(core::Object) → core::bool} #0#0) { | |
| #t21 = 0; | |
| break #L4; | |
| } | |
| } | |
| { | |
| if(#C7 =={core::num::==}{(core::Object) → core::bool} #0#0) { | |
| #t21 = 1; | |
| break #L4; | |
| } | |
| } | |
| } | |
| switch(#t21) /* dynamic */ { | |
| #L5: | |
| case #C1: | |
| { | |
| { | |
| core::print(1); | |
| continue #L6; | |
| } | |
| } | |
| #L6: | |
| case #C4: | |
| { | |
| { | |
| core::print(2); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| static method switchStatementWithContinueNested(dynamic o1, dynamic o2) → dynamic { | |
| #L7: | |
| { | |
| core::int #t32 = 1.{core::int::unary-}(){() → core::int}; | |
| final synthesized dynamic #2#0 = o1; | |
| final const synthesized core::int #2#3 = #C4; | |
| synthesized dynamic #2#9; | |
| synthesized core::bool #2#9#isSet = false; | |
| final const synthesized core::int #2#10 = #C1; | |
| final const synthesized core::int #2#13 = #C7; | |
| #L8: | |
| { | |
| { | |
| hoisted dynamic a; | |
| if(#2#0 is core::List<dynamic> && #2#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C4 && (let final dynamic #t33 = a = #2#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} in true)) { | |
| { | |
| core::print(a); | |
| break #L7; | |
| } | |
| } | |
| } | |
| { | |
| hoisted dynamic a##1; | |
| if(#2#0 is core::Map<dynamic, dynamic> && (!((#2#9#isSet ?{dynamic} #2#9 : let final dynamic #t34 = #2#9#isSet = true in #2#9 = #2#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic}) == null) || null is dynamic && #2#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && (let final dynamic #t35 = a##1 = #2#9#isSet ?{dynamic} #2#9 : let final dynamic #t36 = #2#9#isSet = true in #2#9 = #2#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic} in true)) { | |
| { | |
| core::print(a##1); | |
| #L9: | |
| { | |
| core::int #t37 = 1.{core::int::unary-}(){() → core::int}; | |
| final synthesized dynamic #0#0 = o2; | |
| synthesized core::int #0#2; | |
| synthesized core::bool #0#2#isSet = false; | |
| final const synthesized core::int #0#3 = #C4; | |
| final const synthesized core::int #0#7 = #C7; | |
| synthesized dynamic #0#13; | |
| synthesized core::bool #0#13#isSet = false; | |
| final const synthesized core::int #0#14 = #C1; | |
| dynamic #t38; | |
| #L10: | |
| { | |
| { | |
| lowered hoisted dynamic a#case#0; | |
| lowered hoisted dynamic a#case#1; | |
| if(#0#0 is core::List<dynamic> && (#0#2#isSet ?{core::int} #0#2 : let final dynamic #t39 = #0#2#isSet = true in #0#2 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C4 && (let final dynamic #t40 = a#case#0 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} in true) && a#case#0{dynamic}.>(5) as{TypeError} core::bool && (let final dynamic #t41 = #t38 = a#case#0 in true) || #0#0 is core::List<dynamic> && (#0#2#isSet ?{core::int} #0#2 : let final dynamic #t42 = #0#2#isSet = true in #0#2 = #0#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && (let final dynamic #t43 = a#case#1 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} in true) && a#case#1{dynamic}.<(5) as{TypeError} core::bool && (let final dynamic #t44 = #t38 = a#case#1 in true)) { | |
| dynamic a##2 = #t38; | |
| { | |
| core::print(a##2); | |
| break #L9; | |
| } | |
| } | |
| } | |
| { | |
| hoisted dynamic a##3; | |
| if(#0#0 is core::Map<dynamic, dynamic> && (!((#0#13#isSet ?{dynamic} #0#13 : let final dynamic #t45 = #0#13#isSet = true in #0#13 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic}) == null) || null is dynamic && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && (let final dynamic #t46 = a##3 = #0#13#isSet ?{dynamic} #0#13 : let final dynamic #t47 = #0#13#isSet = true in #0#13 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic} in true)) { | |
| { | |
| core::print(a##3); | |
| #t32 = 1; | |
| break #L8; | |
| } | |
| } | |
| } | |
| { | |
| if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0) { | |
| { | |
| core::print(o2); | |
| #t37 = 0; | |
| break #L10; | |
| } | |
| } | |
| } | |
| { | |
| if(#C4 =={core::num::==}{(core::Object) → core::bool} #0#0) { | |
| #t37 = 0; | |
| break #L10; | |
| } | |
| } | |
| { | |
| if(#C7 =={core::num::==}{(core::Object) → core::bool} #0#0) { | |
| #t37 = 1; | |
| break #L10; | |
| } | |
| } | |
| } | |
| switch(#t37) /* dynamic */ { | |
| #L11: | |
| case #C1: | |
| { | |
| { | |
| core::print(1); | |
| continue #L12; | |
| } | |
| } | |
| #L12: | |
| case #C4: | |
| { | |
| { | |
| core::print(2); | |
| #t32 = 0; | |
| break #L8; | |
| } | |
| } | |
| } | |
| } | |
| break #L7; | |
| } | |
| } | |
| } | |
| { | |
| if(#C1 =={core::num::==}{(core::Object) → core::bool} #2#0) { | |
| { | |
| core::print(o1); | |
| break #L7; | |
| } | |
| } | |
| } | |
| { | |
| if(#C4 =={core::num::==}{(core::Object) → core::bool} #2#0) { | |
| #t32 = 0; | |
| break #L8; | |
| } | |
| } | |
| { | |
| if(#C7 =={core::num::==}{(core::Object) → core::bool} #2#0) { | |
| #t32 = 1; | |
| break #L8; | |
| } | |
| } | |
| } | |
| switch(#t32) /* dynamic */ { | |
| #L13: | |
| case #C1: | |
| { | |
| { | |
| core::print(1); | |
| continue #L14; | |
| } | |
| } | |
| #L14: | |
| case #C4: | |
| { | |
| { | |
| core::print(2); | |
| #L15: | |
| { | |
| core::int #t48 = 1.{core::int::unary-}(){() → core::int}; | |
| final synthesized dynamic #1#0 = o2; | |
| synthesized core::int #1#2; | |
| synthesized core::bool #1#2#isSet = false; | |
| final const synthesized core::int #1#3 = #C4; | |
| final const synthesized core::int #1#7 = #C7; | |
| synthesized dynamic #1#13; | |
| synthesized core::bool #1#13#isSet = false; | |
| final const synthesized core::int #1#14 = #C1; | |
| dynamic #t49; | |
| #L16: | |
| { | |
| { | |
| lowered hoisted dynamic a#case#0##1; | |
| lowered hoisted dynamic a#case#1##1; | |
| if(#1#0 is core::List<dynamic> && (#1#2#isSet ?{core::int} #1#2 : let final dynamic #t50 = #1#2#isSet = true in #1#2 = #1#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C4 && (let final dynamic #t51 = a#case#0##1 = #1#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} in true) && a#case#0##1{dynamic}.>(5) as{TypeError} core::bool && (let final dynamic #t52 = #t49 = a#case#0##1 in true) || #1#0 is core::List<dynamic> && (#1#2#isSet ?{core::int} #1#2 : let final dynamic #t53 = #1#2#isSet = true in #1#2 = #1#0{core::List<dynamic>}.{core::List::length}{core::int}) =={core::num::==}{(core::Object) → core::bool} #C7 && (let final dynamic #t54 = a#case#1##1 = #1#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} in true) && a#case#1##1{dynamic}.<(5) as{TypeError} core::bool && (let final dynamic #t55 = #t49 = a#case#1##1 in true)) { | |
| dynamic a##4 = #t49; | |
| { | |
| core::print(a##4); | |
| break #L15; | |
| } | |
| } | |
| } | |
| { | |
| hoisted dynamic a##5; | |
| if(#1#0 is core::Map<dynamic, dynamic> && (!((#1#13#isSet ?{dynamic} #1#13 : let final dynamic #t56 = #1#13#isSet = true in #1#13 = #1#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic}) == null) || null is dynamic && #1#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C4){(core::Object?) → core::bool}) && (let final dynamic #t57 = a##5 = #1#13#isSet ?{dynamic} #1#13 : let final dynamic #t58 = #1#13#isSet = true in #1#13 = #1#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic} in true)) { | |
| { | |
| core::print(a##5); | |
| continue #L14; | |
| } | |
| } | |
| } | |
| { | |
| if(#C1 =={core::num::==}{(core::Object) → core::bool} #1#0) { | |
| { | |
| core::print(o2); | |
| #t48 = 0; | |
| break #L16; | |
| } | |
| } | |
| } | |
| { | |
| if(#C4 =={core::num::==}{(core::Object) → core::bool} #1#0) { | |
| #t48 = 0; | |
| break #L16; | |
| } | |
| } | |
| { | |
| if(#C7 =={core::num::==}{(core::Object) → core::bool} #1#0) { | |
| #t48 = 1; | |
| break #L16; | |
| } | |
| } | |
| } | |
| switch(#t48) /* dynamic */ { | |
| #L17: | |
| case #C1: | |
| { | |
| { | |
| core::print(1); | |
| continue #L18; | |
| } | |
| } | |
| #L18: | |
| case #C4: | |
| { | |
| { | |
| core::print(2); | |
| continue #L13; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| static method switchStatementEnum(self::E o) → dynamic { | |
| #L19: | |
| switch(o) /* isExplicitlyExhaustive, self::E */ { | |
| #L20: | |
| case #C3: | |
| { | |
| core::print("a"); | |
| break #L19; | |
| } | |
| #L21: | |
| case #C6: | |
| { | |
| core::print("b"); | |
| break #L19; | |
| } | |
| #L22: | |
| case #C9: | |
| { | |
| core::print("c"); | |
| } | |
| } | |
| } | |
| static method switchStatementEnumWithGuard(self::E o) → dynamic { | |
| #L23: | |
| { | |
| final synthesized self::E #0#0 = o; | |
| final const synthesized self::E #0#1 = #C3; | |
| final const synthesized self::E #0#3 = #C6; | |
| { | |
| if(#C3 =={core::Object::==}{(core::Object) → core::bool} #0#0 && true) { | |
| { | |
| core::print("a"); | |
| break #L23; | |
| } | |
| } | |
| } | |
| { | |
| if(#C6 =={core::Object::==}{(core::Object) → core::bool} #0#0) { | |
| { | |
| core::print("b"); | |
| break #L23; | |
| } | |
| } | |
| } | |
| { | |
| if(true) { | |
| } | |
| } | |
| } | |
| } | |
| static method switchStatementEnumWithLabel(self::E o) → dynamic { | |
| #L24: | |
| switch(o) /* isExplicitlyExhaustive, self::E */ { | |
| #L25: | |
| case #C3: | |
| { | |
| core::print("a"); | |
| break #L24; | |
| } | |
| #L26: | |
| case #C6: | |
| { | |
| core::print("b"); | |
| break #L24; | |
| } | |
| #L27: | |
| case #C9: | |
| { | |
| core::print("c"); | |
| } | |
| } | |
| } | |
| static method switchStatementEnumWithContinue(self::E o) → dynamic { | |
| switch(o) /* isExplicitlyExhaustive, self::E */ { | |
| #L28: | |
| case #C3: | |
| { | |
| core::print("a"); | |
| continue #L29; | |
| } | |
| #L29: | |
| case #C6: | |
| { | |
| core::print("b"); | |
| continue #L30; | |
| } | |
| #L30: | |
| case #C9: | |
| { | |
| core::print("c"); | |
| } | |
| } | |
| } | |
| static method switchStatementPrimitiveEquals(dynamic o) → dynamic { | |
| #L31: | |
| switch(o) /* dynamic */ { | |
| #L32: | |
| case #C11: | |
| { | |
| core::print("a"); | |
| break #L31; | |
| } | |
| #L33: | |
| case #C12: | |
| { | |
| core::print("b"); | |
| } | |
| } | |
| } | |
| static method switchStatementNonPrimitiveEquals(dynamic o) → dynamic { | |
| #L34: | |
| { | |
| final synthesized dynamic #0#0 = o; | |
| final const synthesized self::NonPrimitiveEquals #0#1 = #C13; | |
| final const synthesized self::NonPrimitiveEquals #0#3 = #C14; | |
| { | |
| if(#C13 =={self::NonPrimitiveEquals::==}{(core::Object) → core::bool} #0#0) { | |
| { | |
| core::print("a"); | |
| break #L34; | |
| } | |
| } | |
| } | |
| { | |
| if(#C14 =={self::NonPrimitiveEquals::==}{(core::Object) → core::bool} #0#0) { | |
| { | |
| core::print("b"); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| static method switchExpression(dynamic o) → dynamic { | |
| return block { | |
| dynamic #t59; | |
| final synthesized dynamic #0#0 = o; | |
| final const synthesized core::int #0#3 = #C4; | |
| synthesized dynamic #0#9; | |
| synthesized core::bool #0#9#isSet = false; | |
| #L35: | |
| { | |
| { | |
| hoisted dynamic a; | |
| if(#0#0 is core::List<dynamic> && #0#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C4) { | |
| a = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}; | |
| #t59 = a; | |
| break #L35; | |
| } | |
| } | |
| { | |
| hoisted dynamic a##1; | |
| if(#0#0 is core::Map<dynamic, dynamic> && (!((#0#9#isSet ?{dynamic} #0#9 : let final dynamic #t60 = #0#9#isSet = true in #0#9 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic}) == null) || null is dynamic && #0#0{core::Map<dynamic, dynamic>}.{core::Map::containsKey}(#C4){(core::Object?) → core::bool})) { | |
| a##1 = #0#9#isSet ?{dynamic} #0#9 : let final dynamic #t61 = #0#9#isSet = true in #0#9 = #0#0{core::Map<dynamic, dynamic>}.{core::Map::[]}(#C4){(core::Object?) → dynamic}; | |
| #t59 = a##1; | |
| break #L35; | |
| } | |
| } | |
| { | |
| if(true) { | |
| #t59 = null; | |
| break #L35; | |
| } | |
| } | |
| } | |
| } =>#t59; | |
| } | |
| static method switchExpressionEnum(self::E o) → dynamic { | |
| return block { | |
| core::int #t62; | |
| #L36: | |
| switch(o) /* isExplicitlyExhaustive, self::E */ { | |
| #L37: | |
| case #C3: | |
| { | |
| #t62 = 0; | |
| break #L36; | |
| } | |
| #L38: | |
| case #C6: | |
| { | |
| #t62 = 1; | |
| break #L36; | |
| } | |
| #L39: | |
| case #C9: | |
| { | |
| #t62 = 2; | |
| break #L36; | |
| } | |
| } | |
| } =>#t62; | |
| } | |
| static method switchExpressionEnumWithGuard(self::E o) → dynamic { | |
| return block { | |
| core::int #t63; | |
| final synthesized self::E #0#0 = o; | |
| final const synthesized self::E #0#1 = #C3; | |
| final const synthesized self::E #0#3 = #C6; | |
| #L40: | |
| { | |
| { | |
| if(#C3 =={core::Object::==}{(core::Object) → core::bool} #0#0 && true) { | |
| #t63 = 0; | |
| break #L40; | |
| } | |
| } | |
| { | |
| if(#C6 =={core::Object::==}{(core::Object) → core::bool} #0#0) { | |
| #t63 = 1; | |
| break #L40; | |
| } | |
| } | |
| { | |
| if(true) { | |
| #t63 = 2; | |
| break #L40; | |
| } | |
| } | |
| } | |
| } =>#t63; | |
| } | |
| static method switchExpressionPrimitiveEquals(dynamic o) → dynamic { | |
| return block { | |
| core::int #t64; | |
| #L41: | |
| switch(o) /* dynamic */ { | |
| #L42: | |
| case #C11: | |
| { | |
| #t64 = 0; | |
| break #L41; | |
| } | |
| #L43: | |
| case #C12: | |
| { | |
| #t64 = 1; | |
| break #L41; | |
| } | |
| #L44: | |
| default: | |
| { | |
| #t64 = 2; | |
| break #L41; | |
| } | |
| } | |
| } =>#t64; | |
| } | |
| static method switchExpressionNonPrimitiveEquals(dynamic o) → dynamic { | |
| return block { | |
| core::int #t65; | |
| final synthesized dynamic #0#0 = o; | |
| final const synthesized self::NonPrimitiveEquals #0#1 = #C13; | |
| final const synthesized self::NonPrimitiveEquals #0#3 = #C14; | |
| #L45: | |
| { | |
| { | |
| if(#C13 =={self::NonPrimitiveEquals::==}{(core::Object) → core::bool} #0#0) { | |
| #t65 = 0; | |
| break #L45; | |
| } | |
| } | |
| { | |
| if(#C14 =={self::NonPrimitiveEquals::==}{(core::Object) → core::bool} #0#0) { | |
| #t65 = 1; | |
| break #L45; | |
| } | |
| } | |
| { | |
| if(true) { | |
| #t65 = 2; | |
| break #L45; | |
| } | |
| } | |
| } | |
| } =>#t65; | |
| } | |
| static method switchStatementSymbol(core::Symbol s) → dynamic { | |
| { | |
| final synthesized core::Symbol #0#0 = s; | |
| final const synthesized core::Symbol #0#1 = #C15; | |
| final const synthesized core::Symbol #0#3 = #C16; | |
| { | |
| if(#C15 =={core::Symbol::==}{(core::Object) → core::bool} #0#0) { | |
| { | |
| return 0; | |
| } | |
| } | |
| } | |
| { | |
| if(#C16 =={core::Symbol::==}{(core::Object) → core::bool} #0#0) { | |
| { | |
| return 1; | |
| } | |
| } | |
| } | |
| { | |
| { | |
| { | |
| return 2; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| static method switchExpressionSymbol(core::Symbol s) → dynamic { | |
| return block { | |
| core::int #t66; | |
| final synthesized core::Symbol #0#0 = s; | |
| final const synthesized core::Symbol #0#1 = #C15; | |
| final const synthesized core::Symbol #0#3 = #C16; | |
| #L46: | |
| { | |
| { | |
| if(#C15 =={core::Symbol::==}{(core::Object) → core::bool} #0#0) { | |
| #t66 = 0; | |
| break #L46; | |
| } | |
| } | |
| { | |
| if(#C16 =={core::Symbol::==}{(core::Object) → core::bool} #0#0) { | |
| #t66 = 1; | |
| break #L46; | |
| } | |
| } | |
| { | |
| if(true) { | |
| #t66 = 2; | |
| break #L46; | |
| } | |
| } | |
| } | |
| } =>#t66; | |
| } | |
| constants { | |
| #C1 = 0 | |
| #C2 = "a" | |
| #C3 = self::E {index:#C1, _name:#C2} | |
| #C4 = 1 | |
| #C5 = "b" | |
| #C6 = self::E {index:#C4, _name:#C5} | |
| #C7 = 2 | |
| #C8 = "c" | |
| #C9 = self::E {index:#C7, _name:#C8} | |
| #C10 = <self::E>[#C3, #C6, #C9] | |
| #C11 = self::PrimitiveEquals {field:#C1} | |
| #C12 = self::PrimitiveEquals {field:#C4} | |
| #C13 = self::NonPrimitiveEquals {field:#C1} | |
| #C14 = self::NonPrimitiveEquals {field:#C4} | |
| #C15 = #a | |
| #C16 = #b | |
| } | |
| Constructor coverage from constants: | |
| org-dartlang-testcase:///switch_encoding.dart: | |
| - E. (from org-dartlang-testcase:///switch_encoding.dart:5:6) | |
| - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) | |
| - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) | |
| - PrimitiveEquals. (from org-dartlang-testcase:///switch_encoding.dart:10:9) | |
| - NonPrimitiveEquals. (from org-dartlang-testcase:///switch_encoding.dart:16:9) |