blob: 5864fb56ea2a30f2c966ee0e80c425e6639bf5e2 [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:7:39: Error: The class 'A' can't be extended outside of its library because it's a final class.
// final class ExtendsFinalClass extends A {} /* Error */
// ^
//
// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:9:45: Error: The class 'A' can't be implemented outside of its library because it's a final class.
// final class ImplementsFinalClass implements A {} /* Error */
// ^
//
// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:42: Error: The class 'A' can't be implemented outside of its library because it's a final class.
// enum EnumImplementsFinalMixin implements A { x } /* Error */
// ^
//
// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:13:24: Error: The class 'A' can't be used as a mixin superclass constraint outside of its library because it's a final class.
// base mixin MixinOnA on A {} /* Error */
// ^
//
// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:15:25: Error: The class 'A' can't be used as a mixin superclass constraint outside of its library because it's a final class.
// base mixin MixinOnAB on A, B {} /* Error */
// ^
//
// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:15:28: Error: The class 'B' can't be used as a mixin superclass constraint outside of its library because it's a final class.
// base mixin MixinOnAB on A, B {} /* Error */
// ^
//
import self as self;
import "main_lib.dart" as mai;
import "dart:core" as core;
import "org-dartlang-testcase:///main_lib.dart";
final class ExtendsFinalClass extends mai::A {
synthetic constructor •() self::ExtendsFinalClass
;
}
final class ImplementsFinalClass extends core::Object implements mai::A {
synthetic constructor •() self::ImplementsFinalClass
;
}
class EnumImplementsFinalMixin extends core::_Enum implements mai::A /*isEnum*/ {
static const field core::List<self::EnumImplementsFinalMixin> values = const <self::EnumImplementsFinalMixin>[self::EnumImplementsFinalMixin::x];
enum-element static const field self::EnumImplementsFinalMixin x = const self::EnumImplementsFinalMixin::•(0, "x");
const synthetic constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixin
: super core::_Enum::•(#index, #name)
;
method _enumToString() core::String
return "EnumImplementsFinalMixin.${this.{core::_Enum::_name}{core::String}}";
}
abstract base class MixinOnA extends mai::A /*isMixinDeclaration*/ {
}
abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/ {
synthetic constructor •() self::_MixinOnAB&A&B
;
}
abstract base class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/ {
}
library;
import self as mai;
import "dart:core" as core;
final class A extends core::Object {
synthetic constructor •() mai::A
;
}
final class B extends core::Object {
synthetic constructor •() mai::B
;
}
Extra constant evaluation status:
Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:11:6 -> ListConstant(const <EnumImplementsFinalMixin>[const EnumImplementsFinalMixin{_Enum.index: 0, _Enum._name: "x"}])
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:11:46 -> InstanceConstant(const EnumImplementsFinalMixin{_Enum.index: 0, _Enum._name: "x"})
Extra constant evaluation: evaluated: 7, effectively constant: 2