瀏覽代碼

don't lose v_extra when duplicating vars because we rely on it for abstract specialization

Simon Krajewski 8 年之前
父節點
當前提交
7e4cba6fcd
共有 2 個文件被更改,包括 2 次插入0 次删除
  1. 1 0
      src/optimization/optimizer.ml
  2. 1 0
      src/typing/type.ml

+ 1 - 0
src/optimization/optimizer.ml

@@ -261,6 +261,7 @@ let rec type_inline ctx cf f ethis params tret config p ?(self_calling_closure=f
 		with Not_found ->
 			let v' = alloc_var v.v_name v.v_type v.v_pos in
 			if Meta.has Meta.Unbound v.v_meta then v'.v_meta <- [Meta.Unbound,[],p];
+			v'.v_extra <- v.v_extra;
 			let i = {
 				i_var = v;
 				i_subst = v';

+ 1 - 0
src/typing/type.ml

@@ -2651,6 +2651,7 @@ module Texpr = struct
 		let copy_var v =
 			let v2 = alloc_var v.v_name v.v_type v.v_pos in
 			v2.v_meta <- v.v_meta;
+			v2.v_extra <- v.v_extra;
 			Hashtbl.add vars v.v_id v2;
 			v2;
 		in