blob: 67895ce46a7bcf9b2bdcbecb3591b87d9a1398df [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "package:expect/expect.dart";
abstract 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::List<self::A::•::T%>>();
}
abstract 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::Map<self::B::•::U%, self::B::•::W%>>();
}
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_subst.dart:11:16 -> ConstructorTearOffConstant(A.)
Evaluated: ConstructorTearOff @ org-dartlang-testcase:///redirection_chain_type_arguments_subst.dart:16:16 -> ConstructorTearOffConstant(B.)
Extra constant evaluation: evaluated: 6, effectively constant: 2