Browse Source

fix @:build enum should not be extern if empty

Nicolas Cannasse 15 years ago
parent
commit
4c4119a970
2 changed files with 3 additions and 2 deletions
  1. 1 1
      type.ml
  2. 2 1
      typeload.ml

+ 1 - 1
type.ml

@@ -177,7 +177,7 @@ and tenum = {
 	e_doc : Ast.documentation;
 	e_meta : metadata;
 	e_private : bool;
-	e_extern : bool;
+	mutable e_extern : bool;
 	mutable e_types : (string * t) list;
 	mutable e_constrs : (string , tenum_field) PMap.t;
 	mutable e_names : string list;

+ 2 - 1
typeload.ml

@@ -1002,7 +1002,7 @@ let type_module ctx m tdecls loadp =
 				e_meta = type_meta ctx d.d_meta;
 				e_types = [];
 				e_private = priv;
-				e_extern = List.mem EExtern d.d_flags || d.d_data = [];
+				e_extern = List.mem EExtern d.d_flags;
 				e_constrs = PMap.empty;
 				e_names = [];
 			} in
@@ -1152,6 +1152,7 @@ let type_module ctx m tdecls loadp =
 				names := c :: !names;
 			) (d.d_data @ extra);
 			e.e_names <- List.rev !names;
+			e.e_extern <- e.e_extern || e.e_names = [];
 		| ETypedef d ->
 			let t = get_tdef d.d_name in
 			ctx.type_params <- t.t_types;