blob: 9723009e8c36e63a3e90821c649082b69f2aad15 [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() self::A
: super core::Object::•()
;
}
class B extends self::A {
synthetic constructor •() self::B
: super self::A::•()
;
}
class C extends self::B {
synthetic constructor •() self::C
: super self::B::•()
;
}
class Foo<T extends self::A?> extends core::Object {
synthetic constructor •() self::Foo<self::Foo::T%>
: super core::Object::•()
;
method doPromotionsToNullable(covariant-by-class self::Foo::T% t) dynamic {
if(t is{ForNonNullableByDefault} self::B?) {
self::Foo::T% bar = t{self::Foo::T% & self::B? /* '%' & '?' = '%' */};
if(t{self::Foo::T% & self::B? /* '%' & '?' = '%' */} is{ForNonNullableByDefault} self::C?) {
self::Foo::T% baz = t{self::Foo::T% & self::C? /* '%' & '?' = '%' */};
}
}
}
method doPromotionsToNonNullable(covariant-by-class self::Foo::T% t) dynamic {
if(t is{ForNonNullableByDefault} self::B) {
self::Foo::T% bar = t{self::Foo::T% & self::B /* '%' & '!' = '!' */};
if(t{self::Foo::T% & self::B /* '%' & '!' = '!' */} is{ForNonNullableByDefault} self::C) {
self::Foo::T baz = t{self::Foo::T & self::C /* '!' & '!' = '!' */};
}
}
}
}
static method main() dynamic {}