|  | library; | 
|  | import self as self; | 
|  | import "dart:core" as core; | 
|  |  | 
|  | abstract class Base extends core::Object { | 
|  | synthetic constructor •() → self::Base | 
|  | : super core::Object::•() | 
|  | ; | 
|  | } | 
|  | class Foo extends self::Base { | 
|  | synthetic constructor •() → self::Foo | 
|  | : super self::Base::•() | 
|  | ; | 
|  | } | 
|  | class Bar extends self::Base { | 
|  | synthetic constructor •() → self::Bar | 
|  | : super self::Base::•() | 
|  | ; | 
|  | } | 
|  | class Baz extends self::Base { | 
|  | synthetic constructor •() → self::Baz | 
|  | : super self::Base::•() | 
|  | ; | 
|  | } | 
|  | static method foo(dynamic x) → void {} | 
|  | static method bar(dynamic x) → void {} | 
|  | static method foo_escaped(dynamic x) → void {} | 
|  | static method bar_escaped(dynamic x) → void {} | 
|  | static method escape(dynamic fn) → void { | 
|  | fn{dynamic}(new self::Baz::•()); | 
|  | } | 
|  | static method main() → dynamic { | 
|  | self::foo(new self::Foo::•()); | 
|  | self::bar(new self::Bar::•()); | 
|  | self::escape(#C1); | 
|  | self::escape(#C2); | 
|  | } | 
|  |  | 
|  | constants  { | 
|  | #C1 = static-tearoff self::foo_escaped | 
|  | #C2 = static-tearoff self::bar_escaped | 
|  | } |