| library /*isNonNullableByDefault*/; |
| import self as self; |
| import "const_lib.dart" as con; |
| import "dart:core" as core; |
| |
| import "org-dartlang-testcase:///const_lib.dart"; |
| |
| static const field con::B crossModule = #C3; |
| static method main() → dynamic { |
| self::expect(2.71, #C3.{con::A::d}{core::double}); |
| self::expect("default", #C3.{con::A::s}{core::String}); |
| } |
| static method expect(dynamic expected, dynamic actual) → dynamic { |
| if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual)) |
| throw "Expected ${expected}, actual ${actual}"; |
| } |
| |
| library /*isNonNullableByDefault*/; |
| import self as con; |
| import "dart:core" as core; |
| |
| abstract class A extends core::Object /*hasConstConstructor*/ { |
| final field core::double d; |
| final field core::String s; |
| const constructor •({core::double d = #C4, core::String s = #C2}) → con::A |
| : con::A::d = d, con::A::s = s, super core::Object::•() |
| ; |
| } |
| abstract class _B&A&M extends con::A implements con::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { |
| const synthetic constructor •({core::double d = #C4, core::String s = #C2}) → con::_B&A&M |
| : super con::A::•(d: d, s: s) |
| ; |
| method m1() → dynamic {} |
| } |
| class B extends con::_B&A&M /*hasConstConstructor*/ { |
| const constructor •({core::double d = #C1}) → con::B |
| : super con::_B&A&M::•(d: d) |
| ; |
| } |
| abstract class M extends con::A /*isMixinDeclaration*/ { |
| method m1() → dynamic {} |
| } |
| |
| constants { |
| #C1 = 2.71 |
| #C2 = "default" |
| #C3 = con::B {d:#C1, s:#C2} |
| #C4 = 3.14 |
| } |
| |
| |
| Constructor coverage from constants: |
| org-dartlang-testcase:///main.dart: |
| - B. (from org-dartlang-testcase:///const_lib.dart:16:9) |
| - _B&A&M. (from org-dartlang-testcase:///const_lib.dart:15:7) |
| - A. (from org-dartlang-testcase:///const_lib.dart:6:9) |
| - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) |