浏览代码

fix capture policy (again)

Simon Krajewski 11 年之前
父节点
当前提交
aade0fc88d
共有 2 个文件被更改,包括 2 次插入3 次删除
  1. 1 1
      common.ml
  2. 1 2
      genpy.ml

+ 1 - 1
common.ml

@@ -641,7 +641,7 @@ let get_config com =
 			pf_locals_scope = false;
 			pf_captured_scope = false;
 			pf_unique_locals = false;
-			pf_capture_policy = CPWrapRef;
+			pf_capture_policy = CPLoopVars;
 			pf_pad_nulls = false;
 			pf_add_final_return = false;
 			pf_overload = false;

+ 1 - 2
genpy.ml

@@ -749,11 +749,10 @@ module Transformer = struct
 		| (_, TCall(e, params)) ->
 			let e = trans true [] e in
 			let params = List.map (trans true []) params in
-			let blocks = List.flatten (List.map (fun (p) -> p.a_blocks) params) in
+			let blocks = e.a_blocks @ (List.flatten (List.map (fun (p) -> p.a_blocks) params)) in
 			let params = List.map (fun (p) -> p.a_expr) params in
 			let e = { a_expr with eexpr = TCall(e.a_expr, params) } in
 			lift_expr ~blocks:blocks e
-
 		| (true, TArray(e1, e2)) ->
 			let e1 = trans true [] e1 in
 			let e2 = trans true [] e2 in