| library test; | 
 | import self as self; | 
 | import "dart:core" as core; | 
 |  | 
 | class C extends core::Object { | 
 |   synthetic constructor •() → self::C | 
 |     : super core::Object::•() | 
 |     ; | 
 | } | 
 | class D extends core::Object { | 
 |   synthetic constructor •() → self::D | 
 |     : super core::Object::•() | 
 |     ; | 
 | } | 
 | class E extends core::Object { | 
 |   synthetic constructor •() → self::E | 
 |     : super core::Object::•() | 
 |     ; | 
 | } | 
 | static method test(() → void f) → void { | 
 |   try { | 
 |     core::int x = 0; | 
 |     f(){() → void}; | 
 |   } | 
 |   on self::C catch(no-exception-var) { | 
 |     core::int x = 0; | 
 |   } | 
 |   on self::D catch(final self::D x) { | 
 |     self::D x2 = x; | 
 |   } | 
 |   on self::E catch(final self::E x, final core::StackTrace y) { | 
 |     self::E x2 = x; | 
 |     core::StackTrace y2 = y; | 
 |   } | 
 |   on core::Object catch(final core::Object x, final core::StackTrace y) { | 
 |     core::Object x2 = x; | 
 |     core::StackTrace y2 = y; | 
 |   } | 
 | } | 
 | static method main() → dynamic {} |