blob: c25d7b18f0cfd7e06ab674b961bcd263ebb9c2f5 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
interface class Model extends core::Object {
synthetic constructor •() self::Model
: super core::Object::•()
;
}
class MyModelExpectingABoolean extends core::Object implements self::Model {
constructor •(core::bool value) self::MyModelExpectingABoolean
: super core::Object::•()
;
}
class MyModelExpectingAString extends core::Object implements self::Model {
constructor •(core::String value) self::MyModelExpectingAString
: super core::Object::•()
;
}
static final field core::Map<core::String, dynamic> json = <core::String, dynamic>{"someKey": "In some cases, this field could also be a boolean"};
static method test1() void {
final self::Model model = block {
self::Model #t1;
final synthesized dynamic #0#0 = self::json.{core::Map::[]}("someKey"){(core::Object?) → dynamic};
#L1:
{
{
final hoisted core::bool value;
if(#0#0 is core::bool) {
value = #0#0{core::bool};
#t1 = new self::MyModelExpectingABoolean::•(value);
break #L1;
}
}
{
final hoisted core::String value;
if(true) {
#0#0 as core::String;
value = #0#0 as core::String;
#t1 = new self::MyModelExpectingAString::•(value);
break #L1;
}
}
}
} =>#t1;
}
static method test2() void {
final self::Model model = block {
self::Model #t2;
final synthesized dynamic #0#0 = self::json.{core::Map::[]}("someKey"){(core::Object?) → dynamic};
#L2:
{
{
final hoisted core::bool value;
if(#0#0 is core::bool) {
value = #0#0{core::bool};
#t2 = new self::MyModelExpectingABoolean::•(value);
break #L2;
}
}
{
if(let final dynamic #t3 = #0#0 as core::String in true) {
#t2 = new self::MyModelExpectingAString::•("");
break #L2;
}
}
}
} =>#t2;
}