blob: 62be6f03104107e81ad1a62e953b8c54aac368b9 [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() self::A
: super core::Object::•()
;
get foo() core::String
return "foo";
}
class B extends core::Object {
synthetic constructor •() self::B
: super core::Object::•()
;
method bar() core::int
return 42;
}
abstract class M extends core::Object /*isMixinDeclaration*/ {
set callOnAssignment(() void f) void {
f(){() void};
}
}
abstract class _E1&_Enum&A = core::_Enum with self::A /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •(core::int index, core::String _name) self::_E1&_Enum&A
: super core::_Enum::•(index, _name)
;
mixin-super-stub get foo() core::String
return super.{self::A::foo};
}
class E1 extends self::_E1&_Enum&A /*isEnum*/ {
static const field core::List<self::E1> values = #C7;
static const field self::E1 one = #C3;
static const field self::E1 two = #C6;
const constructor •(core::int index, core::String name) self::E1
: super self::_E1&_Enum&A::•(index, name)
;
method toString() core::String
return "E1.${this.{core::_Enum::_name}{core::String}}";
}
abstract class _E2&_Enum&A = core::_Enum with self::A /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •(core::int index, core::String _name) self::_E2&_Enum&A
: super core::_Enum::•(index, _name)
;
mixin-super-stub get foo() core::String
return super.{self::A::foo};
}
abstract class _E2&_Enum&A&B = self::_E2&_Enum&A with self::B /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •(core::int index, core::String _name) self::_E2&_Enum&A&B
: super self::_E2&_Enum&A::•(index, _name)
;
mixin-super-stub method bar() core::int
return super.{self::B::bar}();
}
class E2 extends self::_E2&_Enum&A&B /*isEnum*/ {
static const field core::List<self::E2> values = #C10;
static const field self::E2 one = #C8;
static const field self::E2 two = #C9;
const constructor •(core::int index, core::String name) self::E2
: super self::_E2&_Enum&A&B::•(index, name)
;
method toString() core::String
return "E2.${this.{core::_Enum::_name}{core::String}}";
}
abstract class _E3&_Enum&M = core::_Enum with self::M /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •(core::int index, core::String _name) self::_E3&_Enum&M
: super core::_Enum::•(index, _name)
;
mixin-super-stub set callOnAssignment(() void f) void
return super.{self::M::callOnAssignment} = f;
}
class E3 extends self::_E3&_Enum&M /*isEnum*/ {
static const field core::List<self::E3> values = #C13;
static const field self::E3 one = #C11;
static const field self::E3 two = #C12;
const constructor •(core::int index, core::String name) self::E3
: super self::_E3&_Enum&M::•(index, name)
;
method toString() core::String
return "E3.${this.{core::_Enum::_name}{core::String}}";
}
static method expectEquals(dynamic x, dynamic y) dynamic {
if(!(x =={core::Object::==}{(core::Object) core::bool} y)) {
throw "Expected '${x}' and '${y}' to be equal.";
}
}
static method expectThrows(() void f) dynamic {
try {
f(){() void};
throw "Expected function to throw.";
}
on core::Object catch(final core::Object e) {
}
}
static method throwOnCall() void {
throw 42;
}
static method main() dynamic {
self::expectEquals(#C3.{self::_E1&_Enum&A::foo}{core::String}, "foo");
self::expectEquals(#C6.{self::_E1&_Enum&A::foo}{core::String}, "foo");
self::expectEquals(#C8.{self::_E2&_Enum&A::foo}{core::String}, "foo");
self::expectEquals(#C9.{self::_E2&_Enum&A::foo}{core::String}, "foo");
self::expectEquals(#C8.{self::_E2&_Enum&A&B::bar}(){() core::int}, "bar");
self::expectEquals(#C9.{self::_E2&_Enum&A&B::bar}(){() core::int}, "bar");
self::expectThrows(#C11.{self::_E3&_Enum&M::callOnAssignment} = #C14);
self::expectThrows(#C12.{self::_E3&_Enum&M::callOnAssignment} = #C14);
}
constants {
#C1 = 0
#C2 = "one"
#C3 = self::E1 {index:#C1, _name:#C2}
#C4 = 1
#C5 = "two"
#C6 = self::E1 {index:#C4, _name:#C5}
#C7 = <self::E1*>[#C3, #C6]
#C8 = self::E2 {index:#C1, _name:#C2}
#C9 = self::E2 {index:#C4, _name:#C5}
#C10 = <self::E2*>[#C8, #C9]
#C11 = self::E3 {index:#C1, _name:#C2}
#C12 = self::E3 {index:#C4, _name:#C5}
#C13 = <self::E3*>[#C11, #C12]
#C14 = static-tearoff self::throwOnCall
}
Constructor coverage from constants:
org-dartlang-testcase:///simple_mixins.dart:
- E1. (from org-dartlang-testcase:///simple_mixins.dart:19:6)
- _E1&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:19:6)
- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- E2. (from org-dartlang-testcase:///simple_mixins.dart:21:6)
- _E2&_Enum&A&B. (from org-dartlang-testcase:///simple_mixins.dart:21:6)
- _E2&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:21:6)
- E3. (from org-dartlang-testcase:///simple_mixins.dart:23:6)
- _E3&_Enum&M. (from org-dartlang-testcase:///simple_mixins.dart:23:6)