blob: 9b249ca81f76975e7b474da325cf9b4046fdec45 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
import "dart:_internal" as _in;
class Other extends core::Object {
field core::String text = 42.{core::int::toString}(){() core::String};
synthetic constructor •() self::Other
: super core::Object::•()
;
}
class Inner extends core::Object {
field self::Other? other = core::int::parse("3") =={core::num::==}{(core::Object) core::bool} 3 ?{self::Other?} new self::Other::•() : null;
synthetic constructor •() self::Inner
: super core::Object::•()
;
}
abstract sealed class Wrapper extends core::Object {
synthetic constructor •() self::Wrapper
: super core::Object::•()
;
}
class WrapperA extends self::Wrapper {
field self::Inner inner = new self::Inner::•();
synthetic constructor •() self::WrapperA
: super self::Wrapper::•()
;
}
class WrapperB extends self::Wrapper {
field self::Inner inner = new self::Inner::•();
synthetic constructor •() self::WrapperB
: super self::Wrapper::•()
;
}
static field self::Wrapper obj = core::int::parse("1") =={core::num::==}{(core::Object) core::bool} 1 ?{self::Wrapper} new self::WrapperB::•() : new self::WrapperA::•();
static method main() void {
self::foo(self::obj);
}
static method foo(self::Wrapper wrapper) void {
core::print( block {
core::String #t1;
final synthesized self::Wrapper #0#0 = wrapper;
synthesized self::Other? #0#3;
synthesized core::bool #0#3#isSet = false;
synthesized core::bool #0#5;
synthesized core::bool #0#5#isSet = false;
#L1:
{
{
final hoisted self::Other other;
if(#0#0 is self::WrapperA && (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t2 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperA}.{self::WrapperA::inner}{self::Inner}.{self::Inner::other}{self::Other?}) is self::Other) {
other = (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t3 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperA}.{self::WrapperA::inner}{self::Inner}.{self::Inner::other}{self::Other?}) as{Unchecked} self::Other;
#t1 = other.{self::Other::text}{core::String};
break #L1;
}
}
{
if(#0#0 is self::WrapperA && (#0#5#isSet ?{core::bool} #0#5{core::bool} : let final core::bool #t4 = #0#5#isSet = true in #0#5 = (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t5 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperA}.{self::WrapperA::inner}{self::Inner}.{self::Inner::other}{self::Other?}) == null)) {
#t1 = "no other";
break #L1;
}
}
{
final hoisted self::Other other;
if(#0#0 is self::WrapperB && (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t6 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperB}.{self::WrapperB::inner}{self::Inner}.{self::Inner::other}{self::Other?}) is self::Other) {
other = (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t7 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperB}.{self::WrapperB::inner}{self::Inner}.{self::Inner::other}{self::Other?}) as{Unchecked} self::Other;
#t1 = other.{self::Other::text}{core::String};
break #L1;
}
}
{
if(#0#0 is self::WrapperB && (#0#5#isSet ?{core::bool} #0#5{core::bool} : let final core::bool #t8 = #0#5#isSet = true in #0#5 = (#0#3#isSet ?{self::Other?} #0#3{self::Other?} : let final core::bool #t9 = #0#3#isSet = true in #0#3 = #0#0{self::WrapperB}.{self::WrapperB::inner}{self::Inner}.{self::Inner::other}{self::Other?}) == null)) {
#t1 = "no other";
break #L1;
}
}
throw{for-error-handling} new _in::ReachabilityError::•("`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>#t1);
}