瀏覽代碼

Lua : fix enum reflection handling

Justin Donaldson 9 年之前
父節點
當前提交
7aef9ee570
共有 1 個文件被更改,包括 8 次插入3 次删除
  1. 8 3
      genlua.ml

+ 8 - 3
genlua.ml

@@ -1488,9 +1488,10 @@ let generate_enum ctx e =
 	if has_feature ctx "Type.resolveEnum" then begin
 	    newline ctx;
 	    print ctx "_hxClasses[\"%s\"] = %s" (dot_path e.e_path) p; semicolon ctx; newline ctx;
-	    print ctx "%s = _hxClasses[\"%s\"];" p (dot_path e.e_path);
-	end else begin
-	    print ctx "%s = {" p;
+	end;
+	if has_feature ctx "lua.Boot.isEnum" then begin
+	    newline ctx;
+	    print ctx "_hxClasses[\"%s\"] = {" (dot_path e.e_path);
 	    if has_feature ctx "lua.Boot.isEnum" then  begin
 		print ctx " __ename__ = %s," (if has_feature ctx "Type.getEnumName" then "{" ^ String.concat "," ename ^ "}" else "true");
 	    end;
@@ -1498,6 +1499,10 @@ let generate_enum ctx e =
 	    ctx.separator <- true;
 	end;
 
+	if has_feature ctx "Type.resolveEnum" || has_feature ctx "lua.Boot.isEnum" then
+	    print ctx "%s = _hxClasses[\"%s\"];" p (dot_path e.e_path);
+
+
 	newline ctx;
 	List.iter (fun n ->
 		let f = PMap.find n e.e_constrs in