|  | library; | 
|  | import self as self; | 
|  | import "dart:core" as core; | 
|  |  | 
|  | static method main() → dynamic { | 
|  | self::throws(() → void { | 
|  | if(self::val(10) =={core::num::==}{(core::Object) → core::bool} 10 && self::guard(42) as{TypeError,ForDynamic} core::bool) { | 
|  | core::print("cast on conditions catches non-bools"); | 
|  | } | 
|  | }); | 
|  | self::throws(() → void { | 
|  | (core::int) r = (10); | 
|  | { | 
|  | final synthesized(core::int) #0#0 = r; | 
|  | if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0.$1{core::int} && self::guard(42) as{TypeError} core::bool) { | 
|  | core::print("missing cast on conditions allows this code to execute"); | 
|  | } | 
|  | } | 
|  | }); | 
|  | } | 
|  | static method val(core::int x) → core::int | 
|  | return x; | 
|  | static method guard(dynamic x) → dynamic | 
|  | return x; | 
|  | static method throws(() → void f) → dynamic { | 
|  | try { | 
|  | f(){() → void}; | 
|  | } | 
|  | on core::Object catch(final core::Object e) { | 
|  | core::print(e); | 
|  | return; | 
|  | } | 
|  | throw "Missing exception"; | 
|  | } | 
|  |  | 
|  | constants  { | 
|  | #C1 = 10 | 
|  | } |