diff --git a/Language/Enums/restrictions_t09.dart b/Language/Enums/restrictions_t09.dart
new file mode 100644
index 0000000..baa052f
--- /dev/null
+++ b/Language/Enums/restrictions_t09.dart
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2015, 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 is also a compile-time error to subclass, mix-in or implement 
+ * an enum or to explicitly instantiate an enum.
+ * @description Checks that it is compile-time error to subclass an enum via
+ * type alias
+ * @compile-error
+ * @author sgrekhov@unipro.ru
+ */
+
+enum E {a, b, c}
+
+typedef EAlias = E;
+
+class C extends EAlias {
+}
+
+main() {
+  new C();
+}
diff --git a/Language/Enums/restrictions_t10.dart b/Language/Enums/restrictions_t10.dart
new file mode 100644
index 0000000..45bfa4b
--- /dev/null
+++ b/Language/Enums/restrictions_t10.dart
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2015, 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 is also a compile-time error to subclass, mix-in or implement 
+ * an enum or to explicitly instantiate an enum.
+ * @description Checks that it is compile-time error to mix-in an enum. Test
+ * type alias
+ * @compile-error
+ * @author sgrekhov@unipro.ru
+ */
+
+enum E {a, b, c}
+
+typedef EAlias = E;
+
+class A {
+}
+
+class C extends A with EAlias {
+}
+
+main() {
+  new C();
+}
diff --git a/Language/Enums/restrictions_t11.dart b/Language/Enums/restrictions_t11.dart
new file mode 100644
index 0000000..7bf4ce0
--- /dev/null
+++ b/Language/Enums/restrictions_t11.dart
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2015, 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 is also a compile-time error to subclass, mix-in or implement 
+ * an enum or to explicitly instantiate an enum.
+ * @description Checks that it is compile-time error to explicitly instantiate 
+ * an enum. Test type alias
+ * @compile-error
+ * @author sgrekhov@unipro.ru
+ */
+
+enum E {a, b, c}
+
+typedef EAlias = E;
+
+main() {
+  E e = new EAlias();
+}
diff --git a/Language/Enums/restrictions_t12.dart b/Language/Enums/restrictions_t12.dart
new file mode 100644
index 0000000..63a061d
--- /dev/null
+++ b/Language/Enums/restrictions_t12.dart
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2015, 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 is also a compile-time error to subclass, mix-in or implement 
+ * an enum or to explicitly instantiate an enum.
+ * @description Checks that it is compile-time error to implement an enum
+ * @compile-error
+ * @author sgrekhov@unipro.ru
+ */
+
+enum E {a, b, c}
+
+typedef EAlias = E;
+
+class C implements EAlias {
+}
+
+main() {
+  new C();
+}
diff --git a/Language/Enums/syntax_t10.dart b/Language/Enums/syntax_t10.dart
new file mode 100644
index 0000000..41921d8
--- /dev/null
+++ b/Language/Enums/syntax_t10.dart
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2019, 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 An enumerated type, or enum, is used to represent a fixed number 
+ * of constant values.
+ *  enumType:
+ *  metadata enum id ‘{’ id [‘, ’ id]* [‘, ’] ‘}’
+ *  ;
+ * @description Checks that enum can be created using syntax
+ * metadata enum id ‘{’ id [‘, ’ id]* [‘, ’] ‘}’ and no errors occurs. Test type
+ * alias
+ *
+ * @author sgrekhov@unipro.ru
+ */
+import "../../Utils/expect.dart";
+
+const String some_metadata = "Some metadata";
+
+@some_metadata enum E {a, b, c}
+
+typedef EAlias = E;
+
+main() {
+  E e1 = EAlias.a;
+  EAlias e2 = E.a;
+  EAlias e3 = EAlias.a;
+  Expect.equals(e1, E.a);
+  Expect.equals(e2, E.a);
+  Expect.equals(e3, E.a);
+}
