Type alias tests for enum
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);
+}