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

added @:native("path") support

Nicolas Cannasse 15 жил өмнө
parent
commit
9f3cdd8eb4
2 өөрчлөгдсөн 10 нэмэгдсэн , 2 устгасан
  1. 8 0
      codegen.ml
  2. 2 2
      type.ml

+ 8 - 0
codegen.ml

@@ -353,6 +353,14 @@ let rec has_rtti c =
 let on_generate ctx t =
 	match t with
 	| TClassDecl c ->
+		List.iter (fun m ->
+			match m with
+			| ":native",[{ eexpr = TConst (TString name) }] ->
+				(match List.rev (ExtString.String.nsplit name ".") with
+				| [] -> assert false
+				| name :: path -> c.cl_path <- (List.rev path,name))
+			| _ -> ()
+		) c.cl_meta;
 		if has_rtti c && not (PMap.mem "__rtti" c.cl_statics) then begin
 			let f = mk_field "__rtti" ctx.api.tstring in
 			let str = Genxml.gen_type_string ctx.com t in

+ 2 - 2
type.ml

@@ -127,8 +127,8 @@ and tclass_kind =
 and metadata = (string * texpr list) list
 
 and tclass = {
-	cl_path : path;
-	cl_pos : Ast.pos;
+	mutable cl_path : path;
+	mutable cl_pos : Ast.pos;
 	mutable cl_private : bool;
 	mutable cl_doc : Ast.documentation;
 	mutable cl_meta : metadata;