2
0
Эх сурвалжийг харах

[gencommon] get rid of redundant Option wrapping for filters results (if we don't change expr/type, then we might as well just return it as is)

+ a couple of very minor changes
Dan Korostelev 8 жил өмнө
parent
commit
27132e6c16
32 өөрчлөгдсөн 108 нэмэгдсэн , 122 устгасан
  1. 45 29
      src/generators/gencommon.ml
  2. 1 1
      src/generators/gencommon/abstractImplementationFix.ml
  3. 1 2
      src/generators/gencommon/arrayDeclSynf.ml
  4. 6 5
      src/generators/gencommon/castDetect.ml
  5. 1 2
      src/generators/gencommon/classInstance.ml
  6. 2 3
      src/generators/gencommon/closuresToClass.ml
  7. 1 1
      src/generators/gencommon/defaultArguments.ml
  8. 1 2
      src/generators/gencommon/dynamicFieldAccess.ml
  9. 1 2
      src/generators/gencommon/dynamicOperators.ml
  10. 2 4
      src/generators/gencommon/enumToClass.ml
  11. 2 5
      src/generators/gencommon/enumToClass2.ml
  12. 1 2
      src/generators/gencommon/expressionUnwrap.ml
  13. 1 2
      src/generators/gencommon/filterClosures.ml
  14. 1 2
      src/generators/gencommon/fixOverrides.ml
  15. 1 2
      src/generators/gencommon/hardNullableSynf.ml
  16. 7 7
      src/generators/gencommon/initFunction.ml
  17. 1 2
      src/generators/gencommon/intDivisionSynf.ml
  18. 1 1
      src/generators/gencommon/interfaceMetas.ml
  19. 1 1
      src/generators/gencommon/interfaceProps.ml
  20. 1 1
      src/generators/gencommon/interfaceVarsDeleteModf.ml
  21. 2 3
      src/generators/gencommon/normalize.ml
  22. 1 2
      src/generators/gencommon/objectDeclMap.ml
  23. 1 1
      src/generators/gencommon/overloadingConstructor.ml
  24. 2 4
      src/generators/gencommon/realTypeParams.ml
  25. 14 16
      src/generators/gencommon/reflectionCFs.ml
  26. 2 3
      src/generators/gencommon/switchToIf.ml
  27. 1 2
      src/generators/gencommon/tArrayTransform.ml
  28. 1 2
      src/generators/gencommon/tryCatchWrapper.ml
  29. 1 2
      src/generators/gencommon/unnecessaryCastsRemoval.ml
  30. 1 2
      src/generators/gencommon/unreachableCodeEliminationSynf.ml
  31. 2 4
      src/generators/gencs.ml
  32. 2 5
      src/generators/genjava.ml

+ 45 - 29
src/generators/gencommon.ml

@@ -341,32 +341,50 @@ class ['tp, 'ret] rule_dispatcher name =
 end;;
 
 (* this is a special case where tp = tret and you stack their output as the next's input *)
-class ['tp] rule_map_dispatcher name =
-	object(self)
-	inherit ['tp, 'tp] rule_dispatcher name
+class ['tp] rule_map_dispatcher name = object(self)
+	val tbl = Hashtbl.create 16
+	val mutable keys = []
+	val names = Hashtbl.create 16
 
-	method run_f tp = get (self#run tp)
+	method add (name : string) (* name helps debugging *) (priority : priority) (rule : 'tp->'tp) =
+		let p = match priority with
+			| PFirst -> infinity
+			| PLast -> neg_infinity
+			| PZero -> 0.0
+			| PCustom i -> i
+		in
+		let q = if not (Hashtbl.mem tbl p) then begin
+			let q = Stack.create() in
+			Hashtbl.add tbl p q;
+			keys <- p :: keys;
+			keys <- List.sort (fun x y -> - (compare x y)) keys;
+			q
+		end else Hashtbl.find tbl p in
+		if Hashtbl.mem names name then raise (DuplicateName name);
+		Hashtbl.add names name q;
 
-	method run_from (priority:float) (tp:'tp) : 'ret option =
-		let cur = ref tp in
-		(try begin
-			List.iter (fun key ->
+		Stack.push (name, rule) q
 
-				if key < priority then begin
-					let q = Hashtbl.find tbl key in
-					Stack.iter (fun (n, rule) ->
-						trace ("running rule " ^ n);
-						let t = if !debug_mode then Common.timer [("rule map dispatcher rule: " ^ n)] else fun () -> () in
-						let r = rule(!cur) in
-						t();
-						Option.may (fun v -> cur := v) r
-					) q
-				end
-			) keys
+	method describe =
+		Hashtbl.iter (fun s _ -> (trace s)) names;
 
-		end with Exit -> ());
-		Some (!cur)
+	method run (tp:'tp) : 'tp =
+		self#run_from infinity tp
 
+	method run_from (priority:float) (tp:'tp) : 'tp =
+		let cur = ref tp in
+		List.iter (fun key ->
+			if key < priority then begin
+				let q = Hashtbl.find tbl key in
+				Stack.iter (fun (n, rule) ->
+					trace ("running rule " ^ n);
+					let t = if !debug_mode then Common.timer [("rule map dispatcher rule: " ^ n)] else fun () -> () in
+					cur := rule !cur;
+					t();
+				) q
+			end
+		) keys;
+		!cur
 end;;
 
 
@@ -717,12 +735,12 @@ let run_filters gen =
 	(* first of all, we have to make sure that the filters won't trigger a major Gc collection *)
 	let t = Common.timer ["gencommon_filters"] in
 	(if Common.defined gen.gcon Define.GencommonDebug then debug_mode := true else debug_mode := false);
-	let run_filters filter =
+	let run_filters (filter : texpr rule_map_dispatcher) =
 		let rec loop acc mds =
 			match mds with
 				| [] -> acc
 				| md :: tl ->
-					let filters = [ filter#run_f ] in
+					let filters = [ filter#run ] in
 					let added_types = ref [] in
 					gen.gadd_to_module <- (fun md_type priority ->
 						gen.gtypes_list <- md_type :: gen.gtypes_list;
@@ -732,7 +750,7 @@ let run_filters gen =
 					run_filters_from gen md filters;
 
 					let added_types = List.map (fun (t,p) ->
-						run_filters_from gen t [ fun e -> get (filter#run_from p e) ];
+						run_filters_from gen t [ fun e -> filter#run_from p e ];
 						if Hashtbl.mem gen.gtypes (t_path t) then begin
 							let rec loop i =
 								let p = t_path t in
@@ -756,7 +774,7 @@ let run_filters gen =
 		List.rev (loop [] gen.gtypes_list)
 	in
 
-	let run_mod_filter filter =
+	let run_mod_filter (filter : module_type rule_map_dispatcher) =
 		let last_add_to_module = gen.gadd_to_module in
 		let added_types = ref [] in
 		gen.gadd_to_module <- (fun md_type priority ->
@@ -772,13 +790,11 @@ let run_filters gen =
 							gen.gcurrent_class <- Some c
 						| _ ->
 							gen.gcurrent_class <- None);
-					let new_hd = filter#run_f hd in
+					let new_hd = filter#run hd in
 
 					let added_types_new = !added_types in
 					added_types := [];
-					let added_types = List.map (fun (t,p) ->
-						get (filter#run_from p t)
-					) added_types_new in
+					let added_types = List.map (fun (t,p) -> filter#run_from p t) added_types_new in
 
 					loop ( added_types @ (new_hd :: processed) ) tl
 				| [] ->

+ 1 - 1
src/generators/gencommon/abstractImplementationFix.ml

@@ -39,5 +39,5 @@ let name = "abstract_implementation_fix"
 let priority = solve_deps name []
 
 let configure gen =
-	let run md = (add_abstract_params md; Some md) in
+	let run md = (add_abstract_params md; md) in
 	gen.gmodule_filters#add name (PCustom priority) run

+ 1 - 2
src/generators/gencommon/arrayDeclSynf.ml

@@ -48,5 +48,4 @@ let priority = solve_deps name [DAfter ObjectDeclMap.priority]
 
 let configure gen native_array_cl change_type_params =
 	let run = init native_array_cl change_type_params in
-	let map e = Some (run e) in
-	gen.gsyntax_filters#add name (PCustom priority) map
+	gen.gsyntax_filters#add name (PCustom priority) run

+ 6 - 5
src/generators/gencommon/castDetect.ml

@@ -118,7 +118,7 @@ struct
 		run
 
 	let configure gen =
-		let map e = Some(default_implementation gen e) in
+		let map = default_implementation gen in
 		gen.gsyntax_filters#add name (PCustom priority) map
 end;;
 
@@ -1202,11 +1202,12 @@ let configure gen ?(overloads_cast_to_base = false) maybe_empty_t calls_paramete
 			| _ -> Type.map_expr run e
 	in
 	gen.ghandle_cast <- (fun tto tfrom expr -> handle_cast gen expr (gen.greal_type tto) (gen.greal_type tfrom));
-	let map e = match gen.gcurrent_classfield with
-		| Some(cf) when Meta.has (Meta.Custom ":skipCastDetect") cf.cf_meta ->
-			None
+	let map e =
+		match gen.gcurrent_classfield with
+		| Some cf when Meta.has (Meta.Custom ":skipCastDetect") cf.cf_meta ->
+			e
 		| _ ->
-			Some(run e)
+			run e
 	in
 	gen.gsyntax_filters#add name (PCustom priority) map;
 	ReturnCast.configure gen

+ 1 - 2
src/generators/gencommon/classInstance.ml

@@ -55,5 +55,4 @@ let name = "class_instance"
 let priority = solve_deps name []
 
 let configure gen =
-	let map e = Some(add_typeof e) in
-	gen.gsyntax_filters#add name (PCustom priority) map
+	gen.gsyntax_filters#add name (PCustom priority) add_typeof

+ 2 - 3
src/generators/gencommon/closuresToClass.ml

@@ -587,8 +587,7 @@ let configure gen ft =
 		ft.dynamic_fun_call
 		(* (dynamic_func_call:texpr->texpr->texpr list->texpr) *)
 	in
-	let map e = Some(run e) in
-	gen.gexpr_filters#add name (PCustom priority) map
+	gen.gexpr_filters#add name (PCustom priority) run
 
 
 (*
@@ -760,7 +759,7 @@ struct
 
 				maybe a way to solve this would be to add an "until" field to run_from
 			*)
-			let real_get_args = gen.gexpr_filters#run_f { eexpr = TBlock(get_args); etype = basic.tvoid; epos = pos } in
+			let real_get_args = gen.gexpr_filters#run (mk (TBlock get_args) basic.tvoid pos) in
 
 			let func_expr = Type.concat real_get_args tf_expr in
 

+ 1 - 1
src/generators/gencommon/defaultArguments.ml

@@ -165,6 +165,6 @@ let configure gen =
 			List.iter (change_func gen) cl.cl_ordered_statics;
 			Option.may (change_func gen) cl.cl_constructor;
 		| _ -> ());
-		Some md;
+		md;
 	in
 	gen.gmodule_filters#add name (PCustom priority) run

+ 1 - 2
src/generators/gencommon/dynamicFieldAccess.ml

@@ -116,5 +116,4 @@ let configure gen (is_dynamic:texpr->texpr->Type.tfield_access->bool) (change_ex
 		| _ ->
 			Type.map_expr run e
 	in
-	let map e = Some (run e) in
-	gen.gexpr_filters#add name (PCustom priority) map
+	gen.gexpr_filters#add name (PCustom priority) run

+ 1 - 2
src/generators/gencommon/dynamicOperators.ml

@@ -179,5 +179,4 @@ let priority = 0.0
 
 let configure gen ~handle_strings should_change equals_handler dyn_plus_handler compare_handler =
 	let run = init gen.gcon handle_strings should_change equals_handler dyn_plus_handler compare_handler in
-	let map e = Some (run e) in
-	gen.gexpr_filters#add name (PCustom priority) map
+	gen.gexpr_filters#add name (PCustom priority) run

+ 2 - 4
src/generators/gencommon/enumToClass.ml

@@ -236,8 +236,7 @@ struct
 			| _ ->
 				md
 		in
-		let map md = Some(run md) in
-		gen.gmodule_filters#add name (PCustom priority) map
+		gen.gmodule_filters#add name (PCustom priority) run
 end;;
 
 (* ******************************************* *)
@@ -286,8 +285,7 @@ struct
 			| _ ->
 				Type.map_expr run e
 		in
-		let map e = Some(run e) in
-		gen.gexpr_filters#add name (PCustom priority) map
+		gen.gexpr_filters#add name (PCustom priority) run
 
 end;;
 

+ 2 - 5
src/generators/gencommon/enumToClass2.ml

@@ -326,8 +326,7 @@ struct
 			| _ ->
 				md
 		in
-		let map md = Some(run md) in
-		gen.gmodule_filters#add name (PCustom priority) map
+		gen.gmodule_filters#add name (PCustom priority) run
 end;;
 
 
@@ -374,9 +373,7 @@ struct
 			| _ ->
 				Type.map_expr run e
 		in
-		let map e = Some(run e) in
-		gen.gexpr_filters#add name (PCustom priority) map
-
+		gen.gexpr_filters#add name (PCustom priority) run
 end;;
 
 let configure gen enum_base_class =

+ 1 - 2
src/generators/gencommon/expressionUnwrap.ml

@@ -630,5 +630,4 @@ let configure gen =
 			{ e with eexpr = TFunction({ tfunc with tf_expr = traverse (mk_block tfunc.tf_expr) }) }
 		| _ -> e (* if expression doesn't have a block, we will exit *)
 	in
-	let map e = Some (traverse e) in
-	gen.gsyntax_filters#add "expression_unwrap" (PCustom priority) map
+	gen.gsyntax_filters#add "expression_unwrap" (PCustom priority) traverse

+ 1 - 2
src/generators/gencommon/filterClosures.ml

@@ -83,5 +83,4 @@ let configure gen (should_change:texpr->string->bool) (filter:texpr->texpr->stri
 						filter e (run e1) cf.cf_name false)
 				| _ -> Type.map_expr run e
 	in
-	let map e = Some(run e) in
-	gen.gexpr_filters#add name (PCustom priority) map
+	gen.gexpr_filters#add name (PCustom priority) run

+ 1 - 2
src/generators/gencommon/fixOverrides.ml

@@ -249,5 +249,4 @@ let configure ?explicit_fn_name ~get_vmtype gen =
 	in
 	gen.gafter_mod_filters_ended <- delay :: gen.gafter_mod_filters_ended;
 	let run = run ~explicit_fn_name ~get_vmtype gen in
-	let map md = Some(run md) in
-	gen.gmodule_filters#add name (PCustom priority) map
+	gen.gmodule_filters#add name (PCustom priority) run

+ 1 - 2
src/generators/gencommon/hardNullableSynf.ml

@@ -277,5 +277,4 @@ let configure gen unwrap_null wrap_val null_to_dynamic has_value opeq_handler =
 			| { eexpr = TBlock([e]) } -> e
 			| e -> e
 	in
-	let map e = Some(run e) in
-	gen.gsyntax_filters#add name (PCustom priority) map
+	gen.gsyntax_filters#add name (PCustom priority) run

+ 7 - 7
src/generators/gencommon/initFunction.ml

@@ -224,11 +224,11 @@ let name = "init_funcs"
 let priority = solve_deps name [DBefore OverloadingConstructor.priority]
 
 let configure gen =
-	let mod_filter = function
-	| TClassDecl cl ->
-		if not cl.cl_extern then handle_class gen.gcon cl;
-		None
-	| _ ->
-		None
+	let mod_filter md =
+		(match md with
+		| TClassDecl cl when not cl.cl_extern ->
+			handle_class gen.gcon cl
+		| _ -> ());
+		md
 	in
-	gen.gmodule_filters#add "init_funcs" (PCustom priority) mod_filter
+	gen.gmodule_filters#add name (PCustom priority) mod_filter

+ 1 - 2
src/generators/gencommon/intDivisionSynf.ml

@@ -76,5 +76,4 @@ let priority = solve_deps name [ DAfter ExpressionUnwrap.priority; DAfter Object
 
 let configure gen =
 	let run = init gen.gcon in
-	let map e = Some (run e) in
-	gen.gsyntax_filters#add name (PCustom priority) map
+	gen.gsyntax_filters#add name (PCustom priority) run

+ 1 - 1
src/generators/gencommon/interfaceMetas.ml

@@ -48,5 +48,5 @@ let configure gen =
 			| _ -> ())
 		| _ -> ()
 	in
-	let map md = run md; Some(md) in
+	let map md = run md; md in
 	gen.gmodule_filters#add name (PCustom priority) map

+ 1 - 1
src/generators/gencommon/interfaceProps.ml

@@ -47,5 +47,5 @@ let name = "interface_props"
 let priority = solve_deps name []
 
 let configure gen =
-	let map md = run md; Some md in
+	let map md = run md; md in
 	gen.gmodule_filters#add name (PCustom priority) map

+ 1 - 1
src/generators/gencommon/interfaceVarsDeleteModf.ml

@@ -80,5 +80,5 @@ let configure gen =
 			) !to_add
 		| _ -> ()
 	in
-	let map md = Some(run md; md) in
+	let map md = run md; md in
 	gen.gmodule_filters#add name (PCustom priority) map

+ 2 - 3
src/generators/gencommon/normalize.ml

@@ -90,8 +90,7 @@ let priority = max_dep
 
 let configure gen ~allowed_metas =
 	let run = init_expr_filter allowed_metas in
-	let map e = Some (run e) in
-	gen.gexpr_filters#add name (PCustom priority) map;
+	gen.gexpr_filters#add name (PCustom priority) run;
 
-	let map md = Some (type_filter md; md) in
+	let map md = type_filter md; md in
 	gen.gmodule_filters#add name (PCustom priority) map

+ 1 - 2
src/generators/gencommon/objectDeclMap.ml

@@ -34,5 +34,4 @@ let configure gen map_fn =
 		| _ ->
 			Type.map_expr run e
 	in
-	let map e = Some(run e) in
-	gen.gsyntax_filters#add name (PCustom priority) map
+	gen.gsyntax_filters#add name (PCustom priority) run

+ 1 - 1
src/generators/gencommon/overloadingConstructor.ml

@@ -418,6 +418,6 @@ let configure ~(empty_ctor_type : t) ~(empty_ctor_expr : texpr) gen =
 			change cl;
 		| _ ->
 			());
-		None
+		md
 	in
 	gen.gmodule_filters#add name (PCustom priority) module_filter

+ 2 - 4
src/generators/gencommon/realTypeParams.ml

@@ -742,8 +742,7 @@ struct
 		run
 
 	let configure gen mapping_func =
-		let map e = Some(mapping_func e) in
-		gen.gmodule_filters#add name (PCustom priority) map
+		gen.gmodule_filters#add name (PCustom priority) mapping_func
 
 end;;
 
@@ -786,6 +785,5 @@ let default_implementation gen (dyn_tparam_cast:texpr->t->texpr) ifaces =
 let configure gen (dyn_tparam_cast:texpr->t->texpr) ifaces base_generic =
 	gen.ghas_tparam_cast_handler <- true;
 	let traverse = default_implementation gen dyn_tparam_cast ifaces in
-	let map e = Some(traverse e) in
-	gen.gsyntax_filters#add name (PCustom priority) map;
+	gen.gsyntax_filters#add name (PCustom priority) traverse;
 	RealTypeParamsModf.configure gen (RealTypeParamsModf.default_implementation gen ifaces base_generic)

+ 14 - 16
src/generators/gencommon/reflectionCFs.ml

@@ -1357,7 +1357,7 @@ let implement_invokeField ctx ~slow_invoke cl =
 			| [] -> cases
 			| _ ->
 				let ncases = List.map (fun cf -> switch_case ctx pos cf.cf_name) old in
-				( ncases, mk_return ((get slow_invoke) this (mk_local (fst (List.hd field_args)) pos) (mk_local dynamic_arg pos)) ) :: cases
+				( ncases, mk_return (slow_invoke this (mk_local (fst (List.hd field_args)) pos) (mk_local dynamic_arg pos)) ) :: cases
 		in
 
 		let default = if !is_override then
@@ -1396,14 +1396,12 @@ let implement_invokeField ctx ~slow_invoke cl =
 
 		let old_nonstatics = ref [] in
 
-		let nonstatics = match slow_invoke with
-			| None -> nonstatics
-			| Some _ ->
-				List.filter (fun (n,cf) ->
-					let is_old = not (PMap.mem cf.cf_name cl.cl_fields) || List.memq cf cl.cl_overrides in
-					(if is_old then old_nonstatics := cf :: !old_nonstatics);
-					not is_old
-				) nonstatics
+		let nonstatics =
+			List.filter (fun (n,cf) ->
+				let is_old = not (PMap.mem cf.cf_name cl.cl_fields) || List.memq cf cl.cl_overrides in
+				(if is_old then old_nonstatics := cf :: !old_nonstatics);
+				not is_old
+			) nonstatics
 		in
 
 		mk_switch_dyn nonstatics !old_nonstatics
@@ -1652,7 +1650,7 @@ struct
 				| _ ->
 					()
 		in
-		let map md = Some(run md; md) in
+		let map md = run md; md in
 		gen.gmodule_filters#add name (PCustom priority) map
 end;;
 
@@ -1662,17 +1660,17 @@ end;;
 *)
 let priority = solve_deps name [DAfter UniversalBaseClass.priority]
 
-let configure ?slow_invoke ctx baseinterface =
+let configure ~slow_invoke ctx baseinterface =
 	let gen = ctx.rcf_gen in
-	let run = (fun md -> match md with
+	let run md =
+		(match md with
 		| TClassDecl cl when is_hxgen md && ( not cl.cl_interface || cl.cl_path = baseinterface.cl_path ) && (match cl.cl_kind with KAbstractImpl _ -> false | _ -> true) ->
 			(implement_dynamics ctx cl);
 			(if not (PMap.mem (mk_internal_name "hx" "lookupField") cl.cl_fields) then implement_final_lookup ctx cl);
 			(if not (PMap.mem (mk_internal_name "hx" "getField") cl.cl_fields) then implement_get_set ctx cl);
 			(if not (PMap.mem (mk_internal_name "hx" "invokeField") cl.cl_fields) then implement_invokeField ctx ~slow_invoke:slow_invoke cl);
-			(if not (PMap.mem (mk_internal_name "hx" "getFields") cl.cl_fields) then implement_getFields ctx cl);
-			None
-		| _ -> None)
+			(if not (PMap.mem (mk_internal_name "hx" "getFields") cl.cl_fields) then implement_getFields ctx cl)
+		| _ -> ());
+		md
 	in
-
 	gen.gmodule_filters#add name (PCustom priority) run

+ 2 - 3
src/generators/gencommon/switchToIf.ml

@@ -83,7 +83,7 @@ let configure gen (should_convert:texpr->bool) =
 							the condition is guaranteed to not have run twice, we can really run the
 							expr filters again for it (so to change e.g. OpEq accordingly
 						*)
-						gen.gexpr_filters#run_f ret
+						gen.gexpr_filters#run ret
 					in
 
 					let rec loop cases = match cases with
@@ -125,5 +125,4 @@ let configure gen (should_convert:texpr->bool) =
 				with Not_found -> Type.map_expr run e)
 			| _ -> Type.map_expr run e
 	in
-	let map e = Some(run e) in
-	gen.gsyntax_filters#add name (PCustom priority) map
+	gen.gsyntax_filters#add name (PCustom priority) run

+ 1 - 2
src/generators/gencommon/tArrayTransform.ml

@@ -101,5 +101,4 @@ let configure gen (should_change:texpr->Ast.binop option->bool) (get_fun:string)
 					Type.map_expr run e
 			| _ -> Type.map_expr run e
 	in
-	let map e = Some(run e) in
-	gen.gexpr_filters#add "dyn_tarray" (PCustom priority) map
+	gen.gexpr_filters#add "dyn_tarray" (PCustom priority) run

+ 1 - 2
src/generators/gencommon/tryCatchWrapper.ml

@@ -127,5 +127,4 @@ let configure gen should_wrap wrap_throw unwrap_expr rethrow_expr catchall_type
 		mk (TCall (std_is, [e; mk_mt_access (t_to_mt t) pos])) gen.gcon.basic.tbool pos
 	in
 	let run = init gen.gcon should_wrap wrap_throw unwrap_expr rethrow_expr catchall_type wrapper_type catch_map gen_typecheck in
-	let map e = Some(run e) in
-	gen.gsyntax_filters#add name (PCustom priority) map
+	gen.gsyntax_filters#add name (PCustom priority) run

+ 1 - 2
src/generators/gencommon/unnecessaryCastsRemoval.ml

@@ -57,5 +57,4 @@ let name = "casts_removal"
 let priority = solve_deps name [DAfter CastDetect.priority; DBefore ExpressionUnwrap.priority]
 
 let configure gen =
-	let map e = Some (traverse e) in
-	gen.gsyntax_filters#add name (PCustom priority) map
+	gen.gsyntax_filters#add name (PCustom priority) traverse

+ 1 - 2
src/generators/gencommon/unreachableCodeEliminationSynf.ml

@@ -210,5 +210,4 @@ let priority = min_dep -. 100.0
 
 let configure gen java_mode =
 	let run = init gen.gcon java_mode in
-	let map e = Some(run e) in
-	gen.gsyntax_filters#add "unreachable_synf" (PCustom priority) map
+	gen.gsyntax_filters#add "unreachable_synf" (PCustom priority) run

+ 2 - 4
src/generators/gencs.ml

@@ -305,8 +305,7 @@ struct
 
 				| _ -> Type.map_expr run e
 		in
-		let map e = Some(run e) in
-		gen.gsyntax_filters#add name (PCustom priority) map
+		gen.gsyntax_filters#add name (PCustom priority) run
 end;;
 
 (* ******************************************* *)
@@ -490,8 +489,7 @@ struct
 
 				| _ -> Type.map_expr run e
 		in
-		let map e = Some(run e) in
-		gen.gsyntax_filters#add name (PCustom priority) map
+		gen.gsyntax_filters#add name (PCustom priority) run
 end;;
 
 let add_cast_handler gen =

+ 2 - 5
src/generators/genjava.ml

@@ -263,8 +263,7 @@ struct
 				(* end Std.is() *)
 				| _ -> Type.map_expr run e
 		in
-		let map e = Some(run e) in
-		gen.gsyntax_filters#add name (PCustom priority) map
+		gen.gsyntax_filters#add name (PCustom priority) run
 
 end;;
 
@@ -676,9 +675,7 @@ struct
 					{ e with eexpr = TBinop(op, mk_cast t_empty (run e1), mk_cast t_empty (run e2)) }
 				| _ -> Type.map_expr run e
 		in
-		let map e = Some(run e) in
-		gen.gsyntax_filters#add name (PCustom priority) map
-
+		gen.gsyntax_filters#add name (PCustom priority) run
 end;;