|  | library; | 
|  | import self as self; | 
|  | import "dart:core" as core; | 
|  |  | 
|  | static method test1(core::int value) → core::String { | 
|  | #L1: | 
|  | { | 
|  | final synthesized core::int #0#0 = value; | 
|  | { | 
|  | if(#0#0.{core::num::<}(#C1){(core::num) → core::bool}) { | 
|  | { | 
|  | return "case <2"; | 
|  | } | 
|  | } | 
|  | } | 
|  | { | 
|  | if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0) { | 
|  | { | 
|  | return "case 2"; | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | return "not matched"; | 
|  | } | 
|  | static method test2(core::int value) → core::String { | 
|  | #L2: | 
|  | { | 
|  | final synthesized core::int #0#0 = value; | 
|  | { | 
|  | if(#0#0.{core::num::<}(#C1){(core::num) → core::bool}) { | 
|  | { | 
|  | return "case <2"; | 
|  | } | 
|  | } | 
|  | } | 
|  | { | 
|  | if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0 || true) { | 
|  | { | 
|  | return "case 2"; | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | return "not matched"; | 
|  | } | 
|  | static method test3(core::int value) → core::String { | 
|  | #L3: | 
|  | { | 
|  | final synthesized core::int #0#0 = value; | 
|  | { | 
|  | if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0) { | 
|  | { | 
|  | return "case 2"; | 
|  | } | 
|  | } | 
|  | } | 
|  | { | 
|  | if(#0#0.{core::num::<}(#C1){(core::num) → core::bool} || true) { | 
|  | { | 
|  | return "case <2"; | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | return "not matched"; | 
|  | } | 
|  | static method test4(core::int value) → core::String { | 
|  | #L4: | 
|  | { | 
|  | final synthesized core::int #0#0 = value; | 
|  | { | 
|  | if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0) { | 
|  | { | 
|  | return "case 2"; | 
|  | } | 
|  | } | 
|  | } | 
|  | { | 
|  | if(#0#0.{core::num::<}(#C1){(core::num) → core::bool}) { | 
|  | { | 
|  | return "case <2"; | 
|  | } | 
|  | } | 
|  | } | 
|  | { | 
|  | { | 
|  | { | 
|  | return "default"; | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | static method test5(core::int value) → core::String { | 
|  | #L5: | 
|  | { | 
|  | final synthesized core::int #0#0 = value; | 
|  | { | 
|  | if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0) { | 
|  | { | 
|  | return "case 2"; | 
|  | } | 
|  | } | 
|  | } | 
|  | { | 
|  | if(#0#0.{core::num::<}(#C1){(core::num) → core::bool} || #0#0.{core::num::>}(#C2){(core::num) → core::bool}) { | 
|  | { | 
|  | return "case <2 >3"; | 
|  | } | 
|  | } | 
|  | } | 
|  | { | 
|  | { | 
|  | { | 
|  | return "default"; | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  | static method test6(core::int value) → core::String { | 
|  | #L6: | 
|  | switch(value) /* core::int */ { | 
|  | #L7: | 
|  | case #C1: | 
|  | { | 
|  | return "case 2"; | 
|  | } | 
|  | #L8: | 
|  | case #C3: | 
|  | case #C4: | 
|  | { | 
|  | return "case 1/4"; | 
|  | } | 
|  | #L9: | 
|  | default: | 
|  | { | 
|  | return "default"; | 
|  | } | 
|  | } | 
|  | } | 
|  | static method main() → dynamic { | 
|  | self::expect("case <2", self::test1(1)); | 
|  | self::expect("case 2", self::test1(2)); | 
|  | self::expect("not matched", self::test1(3)); | 
|  | self::expect("case <2", self::test2(1)); | 
|  | self::expect("case 2", self::test2(2)); | 
|  | self::expect("case 2", self::test2(3)); | 
|  | self::expect("case <2", self::test3(1)); | 
|  | self::expect("case 2", self::test3(2)); | 
|  | self::expect("case <2", self::test3(3)); | 
|  | self::expect("case <2", self::test4(1)); | 
|  | self::expect("case 2", self::test4(2)); | 
|  | self::expect("default", self::test4(3)); | 
|  | self::expect("case <2", self::test4(1)); | 
|  | self::expect("case 2", self::test4(2)); | 
|  | self::expect("default", self::test4(3)); | 
|  | self::expect("case <2 >3", self::test5(1)); | 
|  | self::expect("case 2", self::test5(2)); | 
|  | self::expect("default", self::test5(3)); | 
|  | self::expect("case <2 >3", self::test5(4)); | 
|  | self::expect("case 1/4", self::test6(1)); | 
|  | self::expect("case 2", self::test6(2)); | 
|  | self::expect("default", self::test6(3)); | 
|  | self::expect("case 1/4", self::test6(4)); | 
|  | } | 
|  | 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 = 3 | 
|  | #C3 = 1 | 
|  | #C4 = 4 | 
|  | } |