Ver Fonte

[typer] align enum abstract with enum

closes #6427
Simon Krajewski há 7 anos atrás
pai
commit
e9ef88436c

+ 1 - 0
src/typing/typer.ml

@@ -421,6 +421,7 @@ let rec type_ident_raise ctx i p mode =
 				| TTypeDecl t ->
 					(match follow t.t_type with
 					| TEnum (e,_) -> loop ((TEnumDecl e,pt) :: l)
+					| TAbstract (a,_) when Meta.has Meta.Enum a.a_meta -> loop ((TAbstractDecl a,pt) :: l)
 					| _ -> loop l)
 				| TEnumDecl e ->
 					try

+ 3 - 0
tests/misc/projects/Issue6427/E.hx

@@ -0,0 +1,3 @@
+enum abstract E(String) {
+	var A = 'a';
+}

+ 6 - 0
tests/misc/projects/Issue6427/Main.hx

@@ -0,0 +1,6 @@
+import T;
+class Main {
+    static function main() {
+        Sys.stderr().writeString(Std.string(A));
+    }
+}

+ 2 - 0
tests/misc/projects/Issue6427/T.hx

@@ -0,0 +1,2 @@
+typedef Alias = E;
+class T {}

+ 2 - 0
tests/misc/projects/Issue6427/compile.hxml

@@ -0,0 +1,2 @@
+--main Main
+--interp

+ 1 - 0
tests/misc/projects/Issue6427/compile.hxml.stderr

@@ -0,0 +1 @@
+a