浏览代码

[java/cs] Cleanup unnecessary casts when inside a special __magic__ block

Cauê Waneck 11 年之前
父节点
当前提交
69b2592df8
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      gencommon.ml

+ 1 - 1
gencommon.ml

@@ -6109,7 +6109,7 @@ struct
           let base_type = List.hd base_type in
           { e with eexpr = TArrayDecl( List.map (fun e -> handle (run e) base_type e.etype) el ); etype = et }
         | TCall( ({ eexpr = TLocal v } as local), params ) when String.get v.v_name 0 = '_' && String.get v.v_name 1 = '_' && Hashtbl.mem gen.gspecial_vars v.v_name ->
-          { e with eexpr = TCall(local, List.map run params) }
+          { e with eexpr = TCall(local, List.map (fun e -> (match e.eexpr with TBlock _ -> in_value := false | _ -> ()); run e) params) }
         | TCall( ({ eexpr = TField(ef, f) }) as e1, elist ) ->
           handle_type_parameter gen (Some e) (e1) (run ef) ~clean_ef:ef ~overloads_cast_to_base:overloads_cast_to_base f (List.map run elist) calls_parameters_explicitly