2
0
Эх сурвалжийг харах

prevent duplicate metadata declaration (fixed issue #309)

Nicolas Cannasse 14 жил өмнө
parent
commit
67cb0ffb85
1 өөрчлөгдсөн 4 нэмэгдсэн , 1 устгасан
  1. 4 1
      codegen.ml

+ 4 - 1
codegen.ml

@@ -316,7 +316,10 @@ let build_metadata com t =
 			error "Metadata should be constant" p
 	in
 	let make_meta_field ml =
-		mk (TObjectDecl (List.map (fun (f,el,_) ->
+		let h = Hashtbl.create 0 in
+		mk (TObjectDecl (List.map (fun (f,el,p) ->
+			if Hashtbl.mem h f then error ("Duplicate metadata '" ^ f ^ "'") p;
+			Hashtbl.add h f ();
 			f, mk (match el with [] -> TConst TNull | _ -> TArrayDecl (List.map loop el)) (api.tarray t_dynamic) p
 		) ml)) (api.tarray t_dynamic) p
 	in