| 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 | 
 | } |