|  | 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 | 
|  | 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; | 
|  | } | 
|  | finally { | 
|  | core::int x = 0; | 
|  | } | 
|  | } | 
|  | static method main() → dynamic {} |