Переглянути джерело

[gencommon] remove unused implement_class_methods, remove mutable from some gen_tools methods

Dan Korostelev 9 роки тому
батько
коміт
c060969c8d
1 змінених файлів з 4 додано та 147 видалено
  1. 4 147
      src/generators/gencommon.ml

+ 4 - 147
src/generators/gencommon.ml

@@ -606,13 +606,13 @@ and gen_classes =
 and gen_tools =
 {
 	(* (klass : texpr, t : t) : texpr *)
-	mutable r_create_empty : texpr->t->texpr;
+	r_create_empty : texpr->t->texpr;
 	(* Reflect.fields(). The bool is if we are iterating in a read-only manner. If it is read-only we might not need to allocate a new array *)
-	mutable r_fields : bool->texpr->texpr;
+	r_fields : bool->texpr->texpr;
 	(* (first argument = return type. should be void in most cases) Reflect.setField(obj, field, val) *)
-	mutable r_set_field : t->texpr->texpr->texpr->texpr;
+	r_set_field : t->texpr->texpr->texpr->texpr;
 	(* Reflect.field. bool indicates if is safe (no error throwing) or unsafe; t is the expected return type true = safe *)
-	mutable r_field : bool->t->texpr->texpr->texpr;
+	r_field : bool->t->texpr->texpr->texpr;
 
 	(*
 		these are now the functions that will later be used when creating the reflection classes
@@ -8299,149 +8299,6 @@ struct
 		in
 		ignore fields
 
-	let implement_class_methods ctx cl =
-		ctx.rcf_class_cl <- Some cl;
-
-		let pos = cl.cl_pos in
-		let gen = ctx.rcf_gen in
-		let basic = gen.gcon.basic in
-		(*
-			fields -> redirected to classFields
-			getField -> redirected to getField with isStatic true
-			setField -> isStatic true
-			invokeField -> isStatic true
-			getClass -> null
-			create -> proxy
-			createEmpty -> proxy
-		*)
-		let is_override = is_override cl in
-		let name = "classProxy" in
-		let t = (TInst(ctx.rcf_object_iface,[])) in
-		(* let cf = mk_class_field name t false pos (Var { v_read = AccNormal; v_write = AccNormal }) [] in *)
-		let register_cf cf override =
-			cl.cl_ordered_fields <- cf :: cl.cl_ordered_fields;
-			cl.cl_fields <- PMap.add cf.cf_name cf cl.cl_fields;
-			if override then cl.cl_overrides <- cf :: cl.cl_overrides
-		in
-		(* register_cf cf false; *)
-
-		let this_t = TInst(cl, List.map snd cl.cl_params) in
-		let this = { eexpr = TConst(TThis); etype = this_t; epos = pos } in
-		let mk_this field t = { (mk_field_access gen this field pos) with etype = t } in
-		let proxy = mk_this name t in
-
-		(*let ctor =
-			let cls = alloc_var "cls" t in
-			let tf_args = [cls, None] in
-			let t = TFun(fun_args tf_args, basic.tvoid) in
-			let cf = mk_class_field "new" t true pos (Method MethNormal) [] in
-			cf.cf_expr <- Some({
-				eexpr = TFunction({
-					tf_args = tf_args;
-					tf_type = basic.tvoid;
-					tf_expr = mk_block {
-						eexpr = TBinop(Ast.OpAssign, proxy, mk_local cls pos);
-						etype = cls.v_type;
-						epos = pos;
-					}
-				});
-				etype = t;
-				epos = pos;
-			});
-			cf
-		in
-		register_cf ctor false;*)
-
-		(* setting it as DynamicObject makes getClass return null *)
-		let get_class =
-			cl.cl_meta <- (Meta.DynamicObject, [], pos) :: cl.cl_meta
-		in
-		ignore get_class;
-
-		(* fields -> if isInstanceField, redir the method. If not, return classFields *)
-		let fields =
-			let name = gen.gmk_internal_name "hx" "getFields" in
-			let v_base_arr, v_is_inst = alloc_var "baseArr" (basic.tarray basic.tstring), alloc_var "isInstanceFields" basic.tbool in
-			let base_arr, is_inst = mk_local v_base_arr pos, mk_local v_is_inst pos in
-
-			let tf_args = [ v_base_arr,None; v_is_inst, None ] in
-			let t = TFun(fun_args tf_args, basic.tvoid) in
-			let cf = mk_class_field name t false pos (Method MethNormal) [] in
-			cf.cf_expr <- Some({
-				eexpr = TFunction({
-					tf_args = tf_args;
-					tf_type = basic.tvoid;
-					tf_expr = mk_block {
-						eexpr = TIf(is_inst,
-							{ eexpr = TCall( { (mk_field_access gen proxy name pos) with etype = t }, [base_arr;is_inst]); etype = basic.tvoid; epos = pos },
-							Some { eexpr = TCall(mk_this (gen.gmk_internal_name "hx" "classFields") (TFun(["baseArr",false,basic.tarray basic.tstring], basic.tvoid)), [base_arr]); etype = basic.tvoid; epos = pos });
-						etype = basic.tvoid;
-						epos = pos
-					}
-				});
-				etype = t;
-				epos = pos;
-			});
-			cf
-		in
-		register_cf fields (is_override);
-
-		let do_proxy field tf_args ret is_static_argnum =
-			let field = gen.gmk_internal_name "hx" field in
-			let t = TFun(fun_args tf_args, ret) in
-			let cf = mk_class_field field t false pos (Method MethNormal) [] in
-			let is_void = ExtType.is_void ret in
-			let may_return e = if is_void then mk_block e else mk_block (mk_return e) in
-			let i = ref 0 in
-			cf.cf_expr <- Some({
-				eexpr = TFunction({
-					tf_args = tf_args;
-					tf_type = ret;
-					tf_expr = may_return {
-						eexpr = TCall(
-							{ (mk_field_access gen proxy field pos) with etype = t },
-							List.map (fun (v,_) ->
-								let lasti = !i in
-								incr i;
-								if lasti = is_static_argnum then
-									{ eexpr = TConst(TBool true); etype = basic.tbool; epos = pos }
-								else
-									mk_local v pos
-							) tf_args);
-						etype = ret;
-						epos = pos
-					}
-				});
-				etype = t;
-				epos = pos;
-			});
-			cf
-		in
-
-		(* getClassFields -> redir *)
-		register_cf (do_proxy "classFields" [ alloc_var "baseArr" (basic.tarray basic.tstring), None ] basic.tvoid (-1)) true;
-
-		(*register_cf (do_proxy "classFields" [ alloc_var "baseArr" (basic.tarray basic.tstring), None ] basic.tvoid (-1)) true;*)
-
-		let fst_args, _ = field_type_args ctx pos in
-		let fst_args_len = List.length fst_args in
-
-		(* getField -> redir the method with static = true *)
-		(* setField -> redir the methods with static = true *)
-		(if ctx.rcf_float_special_case then
-			register_cf (do_proxy "getField_f" (fst_args @ [ alloc_var "isStatic" basic.tbool, None; alloc_var "throwErrors" basic.tbool, None ]) basic.tfloat fst_args_len) true;
-			register_cf (do_proxy "setField_f" (fst_args @ [ alloc_var "isStatic" basic.tbool, None; alloc_var "value" basic.tfloat, None ]) basic.tfloat fst_args_len) true
-		);
-		register_cf (do_proxy "getField" (fst_args @ [ alloc_var "isStatic" basic.tbool, None; alloc_var "throwErrors" basic.tbool, None; alloc_var "isCheck" basic.tbool, None; alloc_var "handleProperties" basic.tbool,None; ]) t_dynamic fst_args_len) true;
-		register_cf (do_proxy "setField" (fst_args @ [ alloc_var "isStatic" basic.tbool, None; alloc_var "value" t_dynamic, None; alloc_var "handleProperties" basic.tbool,None; ]) t_dynamic fst_args_len) true;
-
-		(* invokeField -> redir the method with static = true *)
-		register_cf (do_proxy "invokeField" (fst_args @ [ alloc_var "isStatic" basic.tbool, None; alloc_var "dynArgs" (basic.tarray t_dynamic), None ]) t_dynamic fst_args_len) true;
-
-		(* create / createEmpty -> redir the method *)
-		register_cf (do_proxy "create" [ alloc_var "arr" (basic.tarray t_dynamic), None ] t_dynamic (-1)) true;
-		register_cf (do_proxy "createEmpty" [ ] t_dynamic (-1)) true
-
 
 	let implement_invokeField ctx ~slow_invoke cl =
 		(*