| 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; |
| } |