| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| class A extends core::Object { |
| synthetic constructor •() → self::A |
| : super core::Object::•() |
| ; |
| } |
| class B1<T extends core::Object? = dynamic> extends core::Object implements self::A { |
| synthetic constructor •() → self::B1<self::B1::T%> |
| : super core::Object::•() |
| ; |
| } |
| class B2<T extends core::Object? = dynamic> extends core::Object implements self::A { |
| synthetic constructor •() → self::B2<self::B2::T%> |
| : super core::Object::•() |
| ; |
| } |
| class C1<T extends core::Object? = dynamic> extends core::Object implements self::B1<self::C1::T%>, self::B2<self::C1::T%> { |
| synthetic constructor •() → self::C1<self::C1::T%> |
| : super core::Object::•() |
| ; |
| } |
| class C2<T extends core::Object? = dynamic> extends core::Object implements self::B1<self::C2::T%>, self::B2<self::C2::T%> { |
| synthetic constructor •() → self::C2<self::C2::T%> |
| : super core::Object::•() |
| ; |
| } |
| static method contextIterable<T extends core::Object? = dynamic>(core::Iterable<self::contextIterable::T%> x) → core::Iterable<self::contextIterable::T%> |
| return x; |
| static method contextB1<T extends core::Object? = dynamic>(self::B1<self::contextB1::T%> x) → self::B1<self::contextB1::T%> |
| return x; |
| static method test(core::int i) → dynamic { |
| self::C1<core::int> c1Int = new self::C1::•<core::int>(); |
| self::C2<core::double> c2Double = new self::C2::•<core::double>(); |
| self::contextB1<dynamic>( block { |
| self::B1<dynamic> #t1; |
| final synthesized core::int #0#0 = i; |
| final const synthesized core::int #0#1 = #C1; |
| #L1: |
| { |
| { |
| if(#C1 =={core::num::==}{(core::Object) → core::bool} #0#0) { |
| #t1 = c1Int; |
| break #L1; |
| } |
| } |
| { |
| if(true) { |
| #t1 = c2Double; |
| break #L1; |
| } |
| } |
| } |
| } =>#t1); |
| core::Iterable<core::int> iterableInt = <core::int>[] as core::Iterable<core::int>; |
| core::List<core::num> listNum = <core::num>[]; |
| self::contextIterable<core::num>( block { |
| core::Iterable<core::num> #t2; |
| final synthesized core::int #1#0 = i; |
| final const synthesized core::int #1#1 = #C1; |
| #L2: |
| { |
| { |
| if(#C1 =={core::num::==}{(core::Object) → core::bool} #1#0) { |
| #t2 = iterableInt; |
| break #L2; |
| } |
| } |
| { |
| if(true) { |
| #t2 = listNum; |
| break #L2; |
| } |
| } |
| } |
| } =>#t2); |
| } |
| static method main() → dynamic { |
| self::test(0); |
| self::test(1); |
| self::test(2); |
| } |
| |
| constants { |
| #C1 = 0 |
| } |