Explorar o código

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

Simon Krajewski %!s(int64=9) %!d(string=hai) anos
pai
achega
cfe9ee1628
Modificáronse 1 ficheiros con 4 adicións e 1 borrados
  1. 4 1
      filters.ml

+ 4 - 1
filters.ml

@@ -1141,7 +1141,10 @@ let do_the_tivo_thing ctx =
 	let run = substitute_expr in
 	let run = substitute_expr in
 	List.iter (fun mt -> match mt with
 	List.iter (fun mt -> match mt with
 		| TClassDecl c ->
 		| 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 =
 			let rec process_field f =
 				f.cf_type <- substitute_type f.cf_type;
 				f.cf_type <- substitute_type f.cf_type;
 				begin match f.cf_expr with
 				begin match f.cf_expr with