blob: dfea62c0a4ffaf8d9ce4e854d7731a8b035ca58b [file] [log] [blame]
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
}