blob: 5471c7c402a05fee429f0a3893c521957371178e [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
abstract class FooBase<Tf extends core::Object> extends core::Object {
abstract get x() core::int;
}
abstract class Foo<T extends core::Object> extends core::Object implements self::FooBase<dynamic> {
}
class Bar<Sb extends core::Object, Tb extends core::Object> extends core::Object implements self::Foo<self::Bar::Tb> {
field core::int x;
constructor •(core::int x) void
: self::Bar::x = x, super core::Object::•() {
core::print("Bar<${self::Bar::Sb},${self::Bar::Tb}>");
}
}
abstract class SimpleCase<A extends core::Object, B extends core::Object> extends core::Object {
}
abstract class SimpleCaseImpl<Ai extends core::Object, Bi extends core::Object> extends core::Object implements self::SimpleCase<self::SimpleCaseImpl::Ai, self::SimpleCaseImpl::Bi> {
}
class SimpleCaseImpl2<Ai2 extends core::Object, Bi2 extends core::Object> extends core::Object implements self::SimpleCaseImpl<self::SimpleCaseImpl2::Ai2, self::SimpleCaseImpl2::Bi2> {
constructor •() void
: super core::Object::•()
;
}
abstract class Base<M extends core::Object> extends core::Object {
constructor •() void
: super core::Object::•()
;
}
abstract class Mixin<M extends core::Object> extends core::Object {
}
class Mix<M extends core::Object> extends self::Base<self::Mix::M> implements self::Mixin<self::Mix::M> {
constructor •() void
: super self::Base::•()
;
}
static method main() dynamic {
core::print(new self::Bar::•<core::String, core::double>(4).{self::FooBase::x});
new self::SimpleCaseImpl2::•<core::int, core::double>();
new self::Mix::•<core::double>();
}