Browse Source

respect `no_local_dce` type flag

Simon Krajewski 11 years ago
parent
commit
38de3e2cef
2 changed files with 2 additions and 1 deletions
  1. 1 1
      analyzer.ml
  2. 1 0
      std/cs/Out.hx

+ 1 - 1
analyzer.ml

@@ -1002,7 +1002,7 @@ end
 
 module LocalDce = struct
 	let apply e =
-		let is_used v = Meta.has Meta.Used v.v_meta in
+		let is_used v = Meta.has Meta.Used v.v_meta || type_has_analyzer_option v.v_type flag_no_local_dce in
 		let use v = v.v_meta <- (Meta.Used,[],Ast.null_pos) :: v.v_meta in
 		let has_side_effect e = match e.eexpr with
 			| TVar(v,None) -> is_used v

+ 1 - 0
std/cs/Out.hx

@@ -28,4 +28,5 @@ package cs;
 	Note: Using this type should be considered a bad practice unless overriding a native function is needed.
 **/
 @:analyzer(no_simplification)
+@:analyzer(no_local_dce)
 typedef Out<T> = T;