| 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 extends core::Object /*hasConstConstructor*/ { |
| static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/; |
| const constructor empty() → self::A |
| : super core::Object::•() |
| ; |
| static factory •() → self::A |
| return new self::B::•<core::String>(); |
| } |
| class B<T extends core::Object? = dynamic> extends self::A /*hasConstConstructor*/ { |
| const constructor •() → self::B<self::B::T%> |
| : super self::A::empty() |
| ; |
| method toString() → core::String |
| return "${self::B::T%}"; |
| } |
| static method main() → void { |
| exp::Expect::equals("${#C2}", "String"); |
| } |
| |
| constants { |
| #C1 = constructor-tearoff self::A::• |
| #C2 = self::B<core::String*> {} |
| } |
| |
| |
| Constructor coverage from constants: |
| org-dartlang-testcase:///redirection_type_arguments.dart: |
| - B. (from org-dartlang-testcase:///redirection_type_arguments.dart:16:9) |
| - A.empty (from org-dartlang-testcase:///redirection_type_arguments.dart:12:9) |
| - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9) |