| library /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| |
| class A<X extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ { |
| final field core::List<self::A::X%> x; |
| const constructor •(dynamic x) → self::A<self::A::X%> |
| : self::A::x = x is{ForNonNullableByDefault} core::List<self::A::X%> ?{core::List<self::A::X%>} x{core::List<self::A::X%>} : x as{ForNonNullableByDefault} core::List<self::A::X%>, super core::Object::•() |
| ; |
| } |
| class B<X extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ { |
| final field (self::B::X%) → void f; |
| const constructor •() → self::B<self::B::X%> |
| : self::B::f = #C1<self::B::X%>, super core::Object::•() |
| ; |
| } |
| class C<X extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ { |
| final field dynamic f; |
| const constructor •() → self::C<self::C::X%> |
| : self::C::f = #C1<self::C::X%>, super core::Object::•() |
| ; |
| } |
| static method m<X extends core::Object? = dynamic>(self::m::X% x) → void {} |
| static method main() → void { |
| #C4; |
| core::print((#C6.{self::B::f}{(core::String) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::String) → void).{core::Object::runtimeType}{core::Type}); |
| core::print(#C7.{self::C::f}{dynamic}.{core::Object::runtimeType}{core::Type}); |
| } |
| |
| constants { |
| #C1 = static-tearoff self::m |
| #C2 = 1 |
| #C3 = <core::int*>[#C2] |
| #C4 = self::A<core::int*> {x:#C3} |
| #C5 = instantiation #C1 <core::String*> |
| #C6 = self::B<core::String*> {f:#C5} |
| #C7 = self::C<core::String*> {f:#C5} |
| } |
| |
| |
| Constructor coverage from constants: |
| org-dartlang-testcase:///issue47154c.dart: |
| - A. (from org-dartlang-testcase:///issue47154c.dart:8:9) |
| - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9) |
| - B. (from org-dartlang-testcase:///issue47154c.dart:16:9) |
| - C. (from org-dartlang-testcase:///issue47154c.dart:22:9) |