| 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(generic-covariant-impl 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(generic-covariant-impl 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 {} |