Franco Ponticelli 14 лет назад
Родитель
Сommit
ebd2ea7061
1 измененных файлов с 3 добавлено и 2 удалено
  1. 3 2
      optimizer.ml

+ 3 - 2
optimizer.ml

@@ -597,14 +597,15 @@ let reduce_expression ctx e =
 let filter_dead_code com =
 	let s_class c = s_type_path c.cl_path in
 	let s_field c cf = (s_class c) ^ "." ^ cf.cf_name in
+	let keep c cf = (has_meta ":core_api" c.cl_meta) || (has_meta ":keep" c.cl_meta) || (has_meta ":keep" cf.cf_meta) in
 	let remove_inlines c =
 		let remove_inline_fields lst =
 			List.filter(fun cf ->
 				match cf.cf_kind with
-				| Var k when ((k.v_read = AccInline) && (not (has_meta ":keep" cf.cf_meta))) ->
+				| Var k when ((k.v_read = AccInline) && (not (keep c cf))) ->
 					if com.verbose then print_endline ("Remove inline var " ^ s_field c cf);
 					false;
-				| Method k when ((k = MethInline) && (not (has_meta ":keep" cf.cf_meta))) ->
+				| Method k when ((k = MethInline) && (not (keep c cf))) ->
 					if com.verbose then print_endline ("Remove inline method " ^ s_field c cf);
 					false;
 				| _ ->