diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t01.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t01.dart
index 8e46098..e5749f0 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t01.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t01.dart
@@ -9,42 +9,12 @@
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
 ///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// It's a compile-time error if a concrete class has Enum as a superinterface
+/// (directly or transitively) unless it is the corresponding class of an enum
+/// declaration. (Abstract interfaces and mixins implementing Enum are allowed,
+/// but only so that they can be used by enum declarations, they can never be
+/// used to create an instance which implements Enum, but which is not an enum
+/// value.)
 ///
 /// @description Check that it’s a compile-time error if a non-abstract class
 /// implements Enum and it is not the implicit class of an enum declaration.
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t02.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t02.dart
index 3420b15..f238e02 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t02.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t02.dart
@@ -9,42 +9,12 @@
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
 ///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// It's a compile-time error if a concrete class has Enum as a superinterface
+/// (directly or transitively) unless it is the corresponding class of an enum
+/// declaration. (Abstract interfaces and mixins implementing Enum are allowed,
+/// but only so that they can be used by enum declarations, they can never be
+/// used to create an instance which implements Enum, but which is not an enum
+/// value.)
 ///
 /// @description Check that abstract classes may implement enum
 /// @author sgrekhov@unipro.ru
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t03.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t03.dart
index d29c4dc..841254d 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t03.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t03.dart
@@ -9,42 +9,12 @@
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
 ///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// It's a compile-time error if a concrete class has Enum as a superinterface
+/// (directly or transitively) unless it is the corresponding class of an enum
+/// declaration. (Abstract interfaces and mixins implementing Enum are allowed,
+/// but only so that they can be used by enum declarations, they can never be
+/// used to create an instance which implements Enum, but which is not an enum
+/// value.)
 ///
 /// @description Check that implicit class of enum declaration implements Enum
 /// @author sgrekhov@unipro.ru
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t04.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t04.dart
new file mode 100644
index 0000000..8f83cdc
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t04.dart
@@ -0,0 +1,49 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+///
+/// It's a compile-time error if a concrete class has Enum as a superinterface
+/// (directly or transitively) unless it is the corresponding class of an enum
+/// declaration. (Abstract interfaces and mixins implementing Enum are allowed,
+/// but only so that they can be used by enum declarations, they can never be
+/// used to create an instance which implements Enum, but which is not an enum
+/// value.)
+///
+/// @description Check that it’s a compile-time error if a non-abstract class
+/// implements Enum transitively and it is not the implicit class of an enum
+/// declaration.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+abstract class A implements Enum {
+  int foo();
+}
+
+class C1 implements A {
+//    ^^
+// [analyzer] unspecified
+// [cfe] unspecified
+  int get index => 42;
+  int foo() => 42;
+}
+
+class C2 extends A {
+//    ^^
+// [analyzer] unspecified
+// [cfe] unspecified
+  int get index => 42;
+  int foo() => 42;
+}
+
+main() {
+  print(C1);
+  print(C2);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t05.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t05.dart
new file mode 100644
index 0000000..c6d9497
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t05.dart
@@ -0,0 +1,50 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+///
+/// It's a compile-time error if a concrete class has Enum as a superinterface
+/// (directly or transitively) unless it is the corresponding class of an enum
+/// declaration. (Abstract interfaces and mixins implementing Enum are allowed,
+/// but only so that they can be used by enum declarations, they can never be
+/// used to create an instance which implements Enum, but which is not an enum
+/// value.)
+///
+/// @description Check that mixins implementing Enum are allowed, if they are
+/// used by enum declarations
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+abstract class M1 with Enum {}
+
+abstract class M2 = Object with Enum;
+
+mixin M3 implements Enum {}
+
+enum E1 implements M1 {
+  e1,
+  e2;
+}
+
+enum E2 implements M2 {
+  e1,
+  e2;
+}
+
+enum E3 with M3 {
+  e1,
+  e2;
+}
+
+main() {
+  print(E1);
+  print(E2);
+  print(E3);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t06.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t06.dart
new file mode 100644
index 0000000..62985e4
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t06.dart
@@ -0,0 +1,56 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+///
+/// It's a compile-time error if a concrete class has Enum as a superinterface
+/// (directly or transitively) unless it is the corresponding class of an enum
+/// declaration. (Abstract interfaces and mixins implementing Enum are allowed,
+/// but only so that they can be used by enum declarations, they can never be
+/// used to create an instance which implements Enum, but which is not an enum
+/// value.)
+///
+/// @description Check that it is a compile-time error if mixins implementing
+/// Enum are used not by enum declarations
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+abstract class M1 with Enum {}
+
+abstract class M2 = Object with Enum;
+
+mixin M3 implements Enum {}
+
+class C1 implements M1 {
+//    ^^
+// [analyzer] unspecified
+// [cfe] unspecified
+  int get index => 1;
+}
+
+class C2 implements M2 {
+//    ^^
+// [analyzer] unspecified
+// [cfe] unspecified;
+  int get index => 2;
+}
+
+class C3 with M3 {
+//    ^^
+// [analyzer] unspecified
+// [cfe] unspecified
+  int get index => 3;
+}
+
+main() {
+  print(C1);
+  print(C2);
+  print(C3);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t07.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t07.dart
new file mode 100644
index 0000000..a9dbe66
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A01_t07.dart
@@ -0,0 +1,48 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+///
+/// It's a compile-time error if a concrete class has Enum as a superinterface
+/// (directly or transitively) unless it is the corresponding class of an enum
+/// declaration. (Abstract interfaces and mixins implementing Enum are allowed,
+/// but only so that they can be used by enum declarations, they can never be
+/// used to create an instance which implements Enum, but which is not an enum
+/// value.)
+///
+/// @description Check that it is a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+
+class C1 implements Enum {
+//                  ^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+class C2 extends Enum {
+//               ^^^^
+// [analyzer] unspecified
+// [cfe] unspecified;
+}
+
+class C3 with Enum {
+//            ^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(C1);
+  print(C2);
+  print(C3);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t01.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t01.dart
index 3339f5d..33e300c 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t01.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t01.dart
@@ -8,44 +8,12 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
+/// ...
 /// It is a compile-time error if a class implements, extends or mixes-in the
 /// class or interface introduced by an enum declaration. (An enum class can’t
 /// be used as a mixin since it is not a mixin declaration and the class has a
 /// superclass other than Object, but we include “mixes-in” for completeness.)
 ///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
-///
 /// @description Check that it is a compile-time error if a class extends
 /// a class declared by an enum declaration.
 /// @author sgrekhov@unipro.ru
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t02.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t02.dart
index 21b6ab4..80407c2 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t02.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t02.dart
@@ -8,44 +8,12 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
+/// ...
 /// It is a compile-time error if a class implements, extends or mixes-in the
 /// class or interface introduced by an enum declaration. (An enum class can’t
 /// be used as a mixin since it is not a mixin declaration and the class has a
 /// superclass other than Object, but we include “mixes-in” for completeness.)
 ///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
-///
 /// @description Check that it is a compile-time error if a class extends
 /// a class declared by an enum declaration.
 /// @author sgrekhov@unipro.ru
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t03.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t03.dart
index 3cb2a68..31f56d3 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t03.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t03.dart
@@ -8,44 +8,12 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
+/// ...
 /// It is a compile-time error if a class implements, extends or mixes-in the
 /// class or interface introduced by an enum declaration. (An enum class can’t
 /// be used as a mixin since it is not a mixin declaration and the class has a
 /// superclass other than Object, but we include “mixes-in” for completeness.)
 ///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
-///
 /// @description Check that it is a compile-time error if a class implements
 /// a class declared by an enum declaration.
 /// @author sgrekhov@unipro.ru
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t04.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t04.dart
index c509267..6f1beb5 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t04.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t04.dart
@@ -8,44 +8,12 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
+/// ...
 /// It is a compile-time error if a class implements, extends or mixes-in the
 /// class or interface introduced by an enum declaration. (An enum class can’t
 /// be used as a mixin since it is not a mixin declaration and the class has a
 /// superclass other than Object, but we include “mixes-in” for completeness.)
 ///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
-///
 /// @description Check that it is a compile-time error if a class implements
 /// a class declared by an enum declaration.
 /// @author sgrekhov@unipro.ru
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t05.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t05.dart
index 8cc67e6..953e9bb 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t05.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t05.dart
@@ -8,44 +8,12 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
+/// ...
 /// It is a compile-time error if a class implements, extends or mixes-in the
 /// class or interface introduced by an enum declaration. (An enum class can’t
 /// be used as a mixin since it is not a mixin declaration and the class has a
 /// superclass other than Object, but we include “mixes-in” for completeness.)
 ///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
-///
 /// @description Check that it is a compile-time error if a class mixes-in
 /// a class declared by an enum declaration.
 /// @author sgrekhov@unipro.ru
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t06.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t06.dart
index 64c4a8c..d009250 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t06.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A02_t06.dart
@@ -8,44 +8,12 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
+/// ...
 /// It is a compile-time error if a class implements, extends or mixes-in the
 /// class or interface introduced by an enum declaration. (An enum class can’t
 /// be used as a mixin since it is not a mixin declaration and the class has a
 /// superclass other than Object, but we include “mixes-in” for completeness.)
 ///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
-///
 /// @description Check that it is a compile-time error if a class mixes-in
 /// a class declared by an enum declaration.
 /// @author sgrekhov@unipro.ru
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t01.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t01.dart
index 969fc9c..d53a2ba 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t01.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t01.dart
@@ -8,47 +8,19 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a class has Enum as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values
+/// member with the name `values`
 /// @author sgrekhov@unipro.ru
 
 // SharedOptions=--enable-experiment=enhanced-enums
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t02.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t02.dart
index 6b111bd..c278ddb 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t02.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t02.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a class has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t03.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t03.dart
index 8d1f471..875924c 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t03.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t03.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a class has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t04.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t04.dart
index 19ea864..e27a2ef 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t04.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t04.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a class has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t05.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t05.dart
index 83d91e8..b6fad65 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t05.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t05.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a mixin has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t06.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t06.dart
index df33302..071c3cf 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t06.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t06.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a mixin has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t07.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t07.dart
index c08754c..c981f34 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t07.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t07.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a mixin has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t08.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t08.dart
index 2d1efa6..a935c76 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t08.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t08.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a mixin has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t09.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t09.dart
index 0a1f9cf..f04feae 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t09.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t09.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a class has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t10.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t10.dart
index b81cb53..e9d0529 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t10.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t10.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a class has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t11.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t11.dart
index 99b0a4a..2a20a37 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t11.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t11.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a class has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t12.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t12.dart
index 48d874f..5fd4563 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t12.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t12.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a class has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t13.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t13.dart
index b57d721..5a50336 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t13.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t13.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a class has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t14.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t14.dart
index f9f671b..714e987 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t14.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t14.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a class has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t15.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t15.dart
index 80482a1..4351808 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t15.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t15.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a class has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t16.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t16.dart
index e40e935..9e0f979 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t16.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A03_t16.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
-/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// ...
+/// It's a compile-time error if a class or mixin declaration has `Enum` as a
 /// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// member with the name `values`, whether declared or inherited. If any
+/// concrete class implements this interface, it will be an enum declaration
+/// class, and then the `values` member would conflict with the static `values`
+/// constant getter that is automatically added to enum declaration classes.
+/// Such an instance `values` declaration is either useless or wrong, so we
+/// disallow it entirely.
 ///
 /// @description Check that it's a compile-time error if a class has Enum as a
 /// superinterface and the interface of the declarations contains an instance
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t01.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t01.dart
index 13802ea..8bbdd9a 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t01.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t01.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
+/// ...
 /// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
 ///
 /// @description Check that it's a compile-time error if a class declaration has
 /// Enum as a superinterface, and it declares a non-abstract instance member
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t02.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t02.dart
index b06b500..4654d1c 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t02.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t02.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
+/// ...
 /// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
 ///
 /// @description Check that it's a compile-time error if a class declaration has
 /// Enum as a superinterface, and it declares a non-abstract instance member
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t03.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t03.dart
index 337965b..b2c5643 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t03.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t03.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
+/// ...
 /// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
 ///
 /// @description Check that it's a compile-time error if a class declaration has
 /// Enum as a superinterface, and it declares a non-abstract instance member
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t04.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t04.dart
index 34cf5e6..25a29b3 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t04.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t04.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
+/// ...
 /// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
 ///
 /// @description Check that it's a compile-time error if a class declaration has
 /// Enum as a superinterface, and it declares a non-abstract instance member
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t05.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t05.dart
index 56b8b96..0d15992 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t05.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t05.dart
@@ -8,45 +8,17 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
+/// ...
 /// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
 ///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
-///
-/// @description Check that it's a compile-time error if a enum declaration has
+/// @description Check that it's a compile-time error if an enum declaration has
 /// Enum as a superinterface, and it declares a non-abstract instance member
 /// named `index`.
 /// @author sgrekhov@unipro.ru
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t06.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t06.dart
index 9abe3e5..ba8e45c 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t06.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t06.dart
@@ -8,45 +8,17 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
+/// ...
 /// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
 ///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
-///
-/// @description Check that it's a compile-time error if a enum declaration has
+/// @description Check that it's a compile-time error if an enum declaration has
 /// Enum as a superinterface, and it declares a non-abstract instance member
 /// named `index`.
 /// @author sgrekhov@unipro.ru
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t07.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t07.dart
index 958caf1..d8e26ca 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t07.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t07.dart
@@ -8,45 +8,17 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
+/// ...
 /// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
 ///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
-///
-/// @description Check that it's a compile-time error if a enum declaration has
+/// @description Check that it's a compile-time error if an enum declaration has
 /// Enum as a superinterface, and it declares a non-abstract instance member
 /// named `index`.
 /// @author sgrekhov@unipro.ru
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t08.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t08.dart
index 76491b0..fafbed3 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t08.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t08.dart
@@ -8,45 +8,17 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
+/// ...
 /// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
 ///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
-///
-/// @description Check that it's a compile-time error if a enum declaration has
+/// @description Check that it's a compile-time error if an enum declaration has
 /// Enum as a superinterface, and it declares a non-abstract instance member
 /// named `index`.
 /// @author sgrekhov@unipro.ru
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t09.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t09.dart
index 7ad8ae2..a727933 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t09.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t09.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
+/// ...
 /// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
 ///
 /// @description Check that it's a compile-time error if a mixin declaration has
 /// Enum as a superinterface, and it declares a non-abstract instance member
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t10.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t10.dart
index eb144ad..7d5ccbc 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t10.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t10.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
+/// ...
 /// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
 ///
 /// @description Check that it's a compile-time error if a mixin declaration has
 /// Enum as a superinterface, and it declares a non-abstract instance member
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t11.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t11.dart
index 163554b..3dcb0b9 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t11.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t11.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
+/// ...
 /// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
 ///
 /// @description Check that it's a compile-time error if a mixin declaration has
 /// Enum as a superinterface, and it declares a non-abstract instance member
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t12.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t12.dart
index bc5f0b9..7e74fb4 100644
--- a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t12.dart
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t12.dart
@@ -8,43 +8,15 @@
 /// Because we want to allow interfaces and mixins that are intended to be
 /// applied to enum declarations, and therefore to assume Enum to be a
 /// superclass, we loosen that restriction to:
-///
-/// It's a compile-time error if a non-abstract class has Enum as a
-/// superinterface (directly or transitively) unless it is the corresponding
-/// class of an enum declaration.
-///
-/// It is a compile-time error if a class implements, extends or mixes-in the
-/// class or interface introduced by an enum declaration. (An enum class can’t
-/// be used as a mixin since it is not a mixin declaration and the class has a
-/// superclass other than Object, but we include “mixes-in” for completeness.)
-///
+/// ...
 /// It's a compile-time error if a class or mixin declaration has Enum as a
-/// superinterface and the interface of the declarations contains an instance
-/// member with the name values, whether declared or inherited. If any concrete
-/// class implements this interface, it will be an enum declaration class, and
-/// then the values member would conflict with the static values constant getter
-/// that is automatically added to enum declaration classes. Such an instance
-/// values declaration is either useless or wrong, so we disallow it entirely.
-///
-/// It's a compile-time error if a class, mixin or enum declaration has Enum as
-/// a superinterface, and it declares a non-abstract instance member named index.
-/// That member would override the index getter inherited from Enum, and we
-/// currently do not allow that.
-///
-/// Those restrictions allows abstract classes (interfaces) which implements
-/// Enum in order to have the int index; getter member available, and it allows
-/// mixin declarations to use Enum as an on type because mixin declarations
-/// cannot be instantiated directly.
-///
-/// The restrictions still ensure enum values are the only object instances
-/// which implements Enum, while making it valid to declare abstract class
-/// MyInterface implements Enum and mixin MyMixin on Enum for interfaces and
-/// mixins intended to be used in declaring enum classes. It's also impossible
-/// to override or prevent the instance index and static values members without
-/// causing a compile-time error. Say implementing an interface with
-/// `Never get index;` as a member, then because it's not possible to override
-/// `int get index;` from Enum, the resulting class does not implement its
-/// interface and is a compile-time error.
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
 ///
 /// @description Check that it's a compile-time error if a mixin declaration has
 /// Enum as a superinterface, and it declares a non-abstract instance member
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t13.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t13.dart
new file mode 100644
index 0000000..5edfca5
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t13.dart
@@ -0,0 +1,45 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+/// ...
+/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
+///
+/// @description Check that it's a compile-time error if a class declaration has
+/// Enum as a superinterface, and it declares a non-abstract instance member
+/// named `hashCode`.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+abstract class E1 extends Enum {
+  final int hashCode = 42;
+//          ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+abstract class E2 extends Enum {
+  final String hashCode = "42";
+//             ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(E1);
+  print(E2);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t14.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t14.dart
new file mode 100644
index 0000000..4dc4461
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t14.dart
@@ -0,0 +1,45 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+/// ...
+/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
+///
+/// @description Check that it's a compile-time error if a class declaration has
+/// Enum as a superinterface, and it declares a non-abstract instance member
+/// named `hashCode`.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+abstract class E1 extends Enum {
+  int hashCode() => 42;
+//    ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+abstract class E2 extends Enum {
+  String hashCode() => "42";
+//       ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(E1);
+  print(E2);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t15.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t15.dart
new file mode 100644
index 0000000..bbea12e
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t15.dart
@@ -0,0 +1,45 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+/// ...
+/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
+///
+/// @description Check that it's a compile-time error if a class declaration has
+/// Enum as a superinterface, and it declares a non-abstract instance member
+/// named `hashCode`.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+abstract class E1 extends Enum {
+  int get hashCode => 42;
+//        ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+abstract class E2 extends Enum {
+  int String hashCode => "42";
+//           ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(E1);
+  print(E2);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t16.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t16.dart
new file mode 100644
index 0000000..b38dd70
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t16.dart
@@ -0,0 +1,45 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+/// ...
+/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
+///
+/// @description Check that it's a compile-time error if a class declaration has
+/// Enum as a superinterface, and it declares a non-abstract instance member
+/// named `hashCode`.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+abstract class E1 extends Enum {
+  void set hashCode(int val) {}
+//         ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+abstract class E2 extends Enum {
+  void set hashCode(String val) {}
+//         ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(E1);
+  print(E2);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t17.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t17.dart
new file mode 100644
index 0000000..bfc5c29
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t17.dart
@@ -0,0 +1,52 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+/// ...
+/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
+///
+/// @description Check that it's a compile-time error if an enum declaration has
+/// Enum as a superinterface, and it declares a non-abstract instance member
+/// named `hashCode`.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+enum E1 {
+  e1,
+  e2;
+
+  final int hashCode = 42;
+//          ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+enum E2 {
+  e1(42),
+  e2(0);
+
+  const E2(int i);
+  final String hashCode = "";
+//             ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(E1);
+  print(E2);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t18.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t18.dart
new file mode 100644
index 0000000..0836813
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t18.dart
@@ -0,0 +1,52 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+/// ...
+/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
+///
+/// @description Check that it's a compile-time error if an enum declaration has
+/// Enum as a superinterface, and it declares a non-abstract instance member
+/// named `hashCode`.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+enum E1 {
+  e1,
+  e2;
+
+  int hashCode() => 42;
+//    ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+enum E2 {
+  e1(42),
+  e2(0);
+
+  const E2(int i);
+  String hashCode() => "";
+//       ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(E1);
+  print(E2);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t19.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t19.dart
new file mode 100644
index 0000000..3a260a4
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t19.dart
@@ -0,0 +1,52 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+/// ...
+/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
+///
+/// @description Check that it's a compile-time error if an enum declaration has
+/// Enum as a superinterface, and it declares a non-abstract instance member
+/// named `hashCode`.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+enum E1 {
+  e1,
+  e2;
+
+  int get hashCode => 42;
+//        ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+enum E2 {
+  e1(42),
+  e2(0);
+
+  const E2(int i);
+  String get hashCode => "";
+//           ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(E1);
+  print(E2);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t20.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t20.dart
new file mode 100644
index 0000000..af08deb
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t20.dart
@@ -0,0 +1,52 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+/// ...
+/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
+///
+/// @description Check that it's a compile-time error if an enum declaration has
+/// Enum as a superinterface, and it declares a non-abstract instance member
+/// named `hashCode`.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+enum E1 {
+  e1,
+  e2;
+
+  void set hashCode(int val) {}
+//         ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+enum E2 {
+  e1(42),
+  e2(0);
+
+  const E2(int i);
+  void set hashCode(String val) {}
+//         ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(E1);
+  print(E2);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t21.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t21.dart
new file mode 100644
index 0000000..262087f
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t21.dart
@@ -0,0 +1,45 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+/// ...
+/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
+///
+/// @description Check that it's a compile-time error if a mixin declaration has
+/// Enum as a superinterface, and it declares a non-abstract instance member
+/// named `hashCode`.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+mixin M1 on Enum {
+  final int hashCode = 42;
+//          ^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+mixin M2 on Enum {
+  final String hashCode = "";
+//             ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(M1);
+  print(M2);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t22.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t22.dart
new file mode 100644
index 0000000..286d5c2
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t22.dart
@@ -0,0 +1,45 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+/// ...
+/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
+///
+/// @description Check that it's a compile-time error if a mixin declaration has
+/// Enum as a superinterface, and it declares a non-abstract instance member
+/// named `hashCode`.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+mixin M1 on Enum {
+  int hashCode() => 42;
+//    ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+mixin M2 on Enum {
+  String hashCode() => "";
+//       ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(M1);
+  print(M2);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t23.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t23.dart
new file mode 100644
index 0000000..d5b27fc
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t23.dart
@@ -0,0 +1,45 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+/// ...
+/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
+///
+/// @description Check that it's a compile-time error if a mixin declaration has
+/// Enum as a superinterface, and it declares a non-abstract instance member
+/// named `hashCode`.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+mixin M1 on Enum {
+  int get hashCode => 42;
+//        ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+mixin M2 on Enum {
+  String get hashCode => "";
+//           ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(M1);
+  print(M2);
+}
diff --git a/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t24.dart b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t24.dart
new file mode 100644
index 0000000..6932088
--- /dev/null
+++ b/LanguageFeatures/Enhanced-Enum/implementing_enum_A04_t24.dart
@@ -0,0 +1,45 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion It’s currently a compile-time error for a class to implement,
+/// extend or mix-in the Enum class.
+///
+/// Because we want to allow interfaces and mixins that are intended to be
+/// applied to enum declarations, and therefore to assume Enum to be a
+/// superclass, we loosen that restriction to:
+/// ...
+/// It's a compile-time error if a class or mixin declaration has Enum as a
+/// superinterface, and that class or mixin declares or inherits a concrete
+/// instance member named `index`, `hashCode` or `==` (an `operator ==`
+/// declaration). That `index` member could override the `index` getter
+/// inherited from `Enum`, and we currently do not allow that. The `hashCode`
+/// and `operator ==` declarations would prevent the enum class from having
+/// "primitive equality", and we want to ensure that enums can be used in
+/// switches.
+///
+/// @description Check that it's a compile-time error if a mixin declaration has
+/// Enum as a superinterface, and it declares a non-abstract instance member
+/// named `hashCode`.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=enhanced-enums
+
+mixin M1 on Enum {
+  void set hashCode(int v) {}
+//         ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+mixin M2 on Enum {
+  void set hashCode(String val) {}
+//         ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(M1);
+  print(M2);
+}
