Selaa lähdekoodia

[Dce] keep unknown fields too

Simon Krajewski 12 vuotta sitten
vanhempi
commit
ce59ee537f
1 muutettua tiedostoa jossa 10 lisäystä ja 6 poistoa
  1. 10 6
      dce.ml

+ 10 - 6
dce.ml

@@ -91,15 +91,19 @@ let keep_field dce cf =
 
 (* mark a field as kept *)
 let rec mark_field dce c cf stat =
+	let add () =
+		if not (has_meta ":used" cf.cf_meta) then begin
+			cf.cf_meta <- (":used",[],cf.cf_pos) :: cf.cf_meta;
+			dce.added_fields <- (c,cf,stat) :: dce.added_fields;
+			dce.marked_fields <- cf :: dce.marked_fields
+		end
+	in
 	if not (PMap.mem cf.cf_name (if stat then c.cl_statics else c.cl_fields)) then begin
 		match c.cl_super with
-		| None -> (* error? *) ()
+		| None -> add()
 		| Some (c,_) -> mark_field dce c cf stat
-	end else if not (has_meta ":used" cf.cf_meta) then begin
-		cf.cf_meta <- (":used",[],cf.cf_pos) :: cf.cf_meta;
-		dce.added_fields <- (c,cf,stat) :: dce.added_fields;
-		dce.marked_fields <- cf :: dce.marked_fields
-	end
+	end else
+		add()
 
 let rec update_marked_class_fields dce c =
 	(* mark all :?used fields as surely :used now *)