blob: f6649ecb958b7c468e9b8d67e396891ec3226432 [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "package:expect/expect.dart";
class A<T extends core::Object? = dynamic> extends core::Object {
static final field dynamic _redirecting# = <dynamic>[self::A::•]/*isLegacy*/;
constructor empty() self::A<self::A::T%>
;
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>[self::B::•]/*isLegacy*/;
constructor empty() self::B<self::B::U%, self::B::W%>
;
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%>
;
method toString() core::String
;
}
static method main() dynamic
;
Extra constant evaluation status:
Evaluated: ConstructorTearOff @ org-dartlang-testcase:///redirection_chain_type_arguments.dart:10:7 -> ConstructorTearOffConstant(A.)
Evaluated: ConstructorTearOff @ org-dartlang-testcase:///redirection_chain_type_arguments.dart:15:7 -> ConstructorTearOffConstant(B.)
Extra constant evaluation: evaluated: 6, effectively constant: 2