소스 검색

mark removable interfaces as extern so they are removed even without DCE

Simon Krajewski 9 년 전
부모
커밋
cfe9ee1628
1개의 변경된 파일4개의 추가작업 그리고 1개의 파일을 삭제
  1. 4 1
      filters.ml

+ 4 - 1
filters.ml

@@ -1141,7 +1141,10 @@ let do_the_tivo_thing ctx =
 	let run = substitute_expr in
 	List.iter (fun mt -> match mt with
 		| TClassDecl c ->
-			if get_substitute_class c != c && c.cl_implements = [] then c.cl_meta <- (Meta.Remove,[],c.cl_pos) :: c.cl_meta;
+			if get_substitute_class c != c && c.cl_implements = [] then begin
+				c.cl_meta <- (Meta.Remove,[],c.cl_pos) :: c.cl_meta;
+				c.cl_extern <- true;
+			end;
 			let rec process_field f =
 				f.cf_type <- substitute_type f.cf_type;
 				begin match f.cf_expr with