blob: aabd09990fd9b37e46de843bc771ba17947f8c9e [file] [log] [blame]
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
}