Browse Source

[hl] remove extern + inline case from Reflect.makeVarArgs (#9362)

see #3846
Simon Krajewski 5 years ago
parent
commit
43268024ee
2 changed files with 4 additions and 4 deletions
  1. 2 0
      src/generators/genhl.ml
  2. 2 4
      std/hl/_std/Reflect.hx

+ 2 - 0
src/generators/genhl.ml

@@ -2055,6 +2055,8 @@ and eval_expr ctx e =
 		get_enum_index ctx v
 		get_enum_index ctx v
 	| TCall ({ eexpr = TField (_,FStatic ({ cl_path = [],"Type" },{ cf_name = "enumIndex" })) },[v]) when (match follow v.etype with TEnum _ -> true | _ -> false) ->
 	| TCall ({ eexpr = TField (_,FStatic ({ cl_path = [],"Type" },{ cf_name = "enumIndex" })) },[v]) when (match follow v.etype with TEnum _ -> true | _ -> false) ->
 		get_enum_index ctx v
 		get_enum_index ctx v
+	| TCall ({ eexpr = TField (ef,FStatic ({ cl_path = [],"Reflect" } as c,{ cf_name = "makeVarArgs" })) } as e1,[v]) ->
+		eval_expr ctx {e with eexpr = TCall({e1 with eexpr = TField(ef,FStatic(c, PMap.find "_makeVarArgs" c.cl_statics))},[v])}
 	| TCall ({ eexpr = TField (_,FStatic ({ cl_path = [],"Std" },{ cf_name = "instance" })) },[v;vt])
 	| TCall ({ eexpr = TField (_,FStatic ({ cl_path = [],"Std" },{ cf_name = "instance" })) },[v;vt])
 	| TCall ({ eexpr = TField (_,FStatic ({ cl_path = [],"Std" },{ cf_name = "downcast" })) },[v;vt]) ->
 	| TCall ({ eexpr = TField (_,FStatic ({ cl_path = [],"Std" },{ cf_name = "downcast" })) },[v;vt]) ->
 		let r = eval_expr ctx v in
 		let r = eval_expr ctx v in

+ 2 - 4
std/hl/_std/Reflect.hx

@@ -131,11 +131,9 @@ class Reflect {
 	}
 	}
 
 
 	@:overload(function(f:Array<Dynamic>->Void):Dynamic {})
 	@:overload(function(f:Array<Dynamic>->Void):Dynamic {})
-	extern public inline static function makeVarArgs(f:Array<Dynamic>->Dynamic):Dynamic {
-		return _makeVarArgs(f);
-	}
+	extern public static function makeVarArgs(f:Array<Dynamic>->Dynamic):Dynamic;
 
 
-	static function _makeVarArgs(f:Array<Dynamic>->Dynamic):Dynamic {
+	@:ifFeature("Reflect.makeVarArgs") static function _makeVarArgs(f:Array<Dynamic>->Dynamic):Dynamic {
 		return hl.Api.makeVarArgs(function(args:hl.NativeArray<Dynamic>) {
 		return hl.Api.makeVarArgs(function(args:hl.NativeArray<Dynamic>) {
 			var arr = hl.types.ArrayDyn.alloc(hl.types.ArrayObj.alloc(args), true);
 			var arr = hl.types.ArrayDyn.alloc(hl.types.ArrayObj.alloc(args), true);
 			return f(cast arr);
 			return f(cast arr);