|
@@ -101,6 +101,7 @@ type extern_api = {
|
|
|
set_js_generator : (value -> unit) -> unit;
|
|
|
get_local_type : unit -> t option;
|
|
|
get_local_method : unit -> string;
|
|
|
+ get_local_using : unit -> tclass list;
|
|
|
get_build_fields : unit -> value;
|
|
|
define_type : value -> unit;
|
|
|
module_dependency : string -> string -> bool -> unit;
|
|
@@ -175,6 +176,7 @@ let encode_type_ref = ref (fun t -> assert false)
|
|
|
let decode_type_ref = ref (fun t -> assert false)
|
|
|
let encode_expr_ref = ref (fun e -> assert false)
|
|
|
let decode_expr_ref = ref (fun e -> assert false)
|
|
|
+let encode_clref_ref = ref (fun c -> assert false)
|
|
|
let enc_array_ref = ref (fun l -> assert false)
|
|
|
let make_ast_ref = ref (fun _ -> assert false)
|
|
|
let make_complex_type_ref = ref (fun _ -> assert false)
|
|
@@ -185,6 +187,7 @@ let encode_type (t:Type.t) : value = (!encode_type_ref) t
|
|
|
let decode_type (v:value) : Type.t = (!decode_type_ref) v
|
|
|
let encode_expr (e:Ast.expr) : value = (!encode_expr_ref) e
|
|
|
let decode_expr (e:value) : Ast.expr = (!decode_expr_ref) e
|
|
|
+let encode_clref (c:tclass) : value = (!encode_clref_ref) c
|
|
|
let make_ast (e:texpr) : Ast.expr = (!make_ast_ref) e
|
|
|
let make_complex_type (t:Type.t) : Ast.complex_type = (!make_complex_type_ref) t
|
|
|
|
|
@@ -2225,6 +2228,9 @@ let macro_lib =
|
|
|
"local_method", Fun0 (fun() ->
|
|
|
VString ((get_ctx()).curapi.get_local_method())
|
|
|
);
|
|
|
+ "local_using", Fun0 (fun() ->
|
|
|
+ enc_array (List.map encode_clref ((get_ctx()).curapi.get_local_using()))
|
|
|
+ );
|
|
|
"follow", Fun2 (fun v once ->
|
|
|
let t = decode_type v in
|
|
|
let follow_once t =
|
|
@@ -4250,4 +4256,5 @@ enc_array_ref := enc_array;
|
|
|
encode_type_ref := encode_type;
|
|
|
decode_type_ref := decode_type;
|
|
|
encode_expr_ref := encode_expr;
|
|
|
-decode_expr_ref := decode_expr
|
|
|
+decode_expr_ref := decode_expr;
|
|
|
+encode_clref_ref := encode_clref
|