blob: 841486007d5557158e73c95cb9bde56477c6345b [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "package:expect/expect.dart" as exp;
import "package:expect/expect.dart";
class A<T extends core::Object? = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
constructor empty() self::A<self::A::T%>
: super core::Object::•()
;
static factory •<T extends core::Object? = dynamic>() self::A<self::A::•::T%>
return self::B::•<self::A::•::T%, core::num>();
}
class B<U extends core::Object? = dynamic, W extends core::Object? = dynamic> extends self::A<self::B::U%> {
static final field dynamic _redirecting# = <dynamic>[#C2]/*isLegacy*/;
constructor empty() self::B<self::B::U%, self::B::W%>
: super self::A::empty()
;
static factory •<U extends core::Object? = dynamic, W extends core::Object? = dynamic>() self::B<self::B::•::U%, self::B::•::W%>
return new self::C::•<self::B::•::U%, self::B::•::W%, core::String>();
}
class C<V extends core::Object? = dynamic, S extends core::Object? = dynamic, R extends core::Object? = dynamic> extends self::B<self::C::V%, self::C::S%> {
constructor •() self::C<self::C::V%, self::C::S%, self::C::R%>
: super self::B::empty()
;
method toString() core::String
return "${self::C::V%},${self::C::S%},${self::C::R%}";
}
static method main() dynamic {
exp::Expect::equals("${new self::C::•<core::int, core::num, core::String>()}", "int,num,String");
}
constants {
#C1 = constructor-tearoff self::A::•
#C2 = constructor-tearoff self::B::•
}