blob: ddecd50449692dab81d7ea9db963c593f3858c54 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/issue40982.dart:28:9: Error: A constant constructor can't call a non-constant super constructor.
// const E1();
// ^
//
// pkg/front_end/testcases/general/issue40982.dart:34:9: Error: A constant constructor can't call a non-constant super constructor.
// const E3();
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object /*hasConstConstructor*/ {
const constructor •() self::A
: super core::Object::•()
;
}
abstract class B extends core::Object /*isMixinDeclaration*/ {
static const field core::int value = #C1;
}
abstract class _C1&A&B = self::A with self::B /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() self::_C1&A&B
: super self::A::•()
;
}
class C1 extends self::_C1&A&B /*hasConstConstructor*/ {
const constructor •() self::C1
: super self::_C1&A&B::•()
;
}
class C2 = self::A with self::B /*hasConstConstructor*/ {
const synthetic constructor •() self::C2
: super self::A::•()
;
}
class C3 extends self::C2 /*hasConstConstructor*/ {
const constructor •() self::C3
: super self::C2::•()
;
}
abstract class D extends core::Object /*isMixinDeclaration*/ {
field core::int value = 1;
}
abstract class _E1&A&D = self::A with self::D /*isAnonymousMixin*/ {
synthetic constructor •() self::_E1&A&D
: super self::A::•()
;
mixin-super-stub get value() core::int
return super.{self::D::value};
mixin-super-stub set value(core::int value) void
return super.{self::D::value} = value;
}
class E1 extends self::_E1&A&D /*hasConstConstructor*/ {
const constructor •() self::E1
: super self::_E1&A&D::•()
;
}
class E2 = self::A with self::D {
synthetic constructor •() self::E2
: super self::A::•()
;
mixin-super-stub get value() core::int
return super.{self::D::value};
mixin-super-stub set value(core::int value) void
return super.{self::D::value} = value;
}
class E3 extends self::E2 /*hasConstConstructor*/ {
const constructor •() self::E3
: super self::E2::•()
;
}
static method main() dynamic {}
constants {
#C1 = 1
}