Skip to content

Commit 6cb1e40

Browse files
committed
Reflect.callMethod should accept Function only.
1 parent 721ce12 commit 6cb1e40

File tree

16 files changed

+16
-19
lines changed

16 files changed

+16
-19
lines changed

std/Reflect.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ extern class Reflect {
8989
/**
9090
Call a method with the given object and arguments.
9191
**/
92-
public static function callMethod( o : Dynamic, func : Dynamic, args : Array<Dynamic> ) : Dynamic;
92+
public static function callMethod( o : Dynamic, func : haxe.Constraints.Function, args : Array<Dynamic> ) : Dynamic;
9393

9494
/**
9595
Returns the fields of structure `o`.

std/cpp/_std/Reflect.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
o.__SetField(field,value,true);
4444
}
4545

46-
public static function callMethod( o : Dynamic, func : Dynamic, args : Array<Dynamic> ) : Dynamic untyped {
46+
public static function callMethod( o : Dynamic, func : haxe.Constraints.Function, args : Array<Dynamic> ) : Dynamic untyped {
4747
if (func!=null && func.__GetType()==__global__.vtString)
4848
func = o.__Field(func,true);
4949
untyped func.__SetThis(o);

std/cs/_std/Reflect.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ import cs.internal.Function;
110110
@:functionCode('
111111
return ((haxe.lang.Function) func).__hx_invokeDynamic(args);
112112
')
113-
public static function callMethod( o : Dynamic, func : Dynamic, args : Array<Dynamic> ) : Dynamic
113+
public static function callMethod( o : Dynamic, func : haxe.Constraints.Function, args : Array<Dynamic> ) : Dynamic
114114
{
115115
return null;
116116
}

std/flash/_std/Reflect.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
}
5353
}
5454

55-
public inline static function callMethod( o : Dynamic, func : Dynamic, args : Array<Dynamic> ) : Dynamic untyped {
55+
public inline static function callMethod( o : Dynamic, func : haxe.Constraints.Function, args : Array<Dynamic> ) : Dynamic untyped {
5656
return func.apply(o,args);
5757
}
5858

std/flash/_std/Type.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ enum ValueType {
162162
}
163163

164164
public static function createEnum<T>( e : Enum<T>, constr : String, ?params : Array<Dynamic> ) : T {
165-
var f = untyped e[constr];
165+
var f:Dynamic = untyped e[constr];
166166
if( f == null ) throw "No such constructor "+constr;
167167
if( Reflect.isFunction(f) ) {
168168
if( params == null ) throw "Constructor "+constr+" need parameters";

std/flash8/_std/Reflect.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
Reflect.setField(o, field, value);
6060
}
6161

62-
public inline static function callMethod( o : Dynamic, func : Dynamic, args : Array<Dynamic> ) : Dynamic untyped {
62+
public inline static function callMethod( o : Dynamic, func : haxe.Constraints.Function, args : Array<Dynamic> ) : Dynamic untyped {
6363
return func["apply"](o,args);
6464
}
6565

std/flash8/_std/Type.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ enum ValueType {
9292
}
9393

9494
public static function createEnum<T>( e : Enum<T>, constr : String, ?params : Array<Dynamic> ) : T {
95-
var f = Reflect.field(e,constr);
95+
var f:Dynamic = Reflect.field(e,constr);
9696
if( f == null ) throw "No such constructor "+constr;
9797
if( Reflect.isFunction(f) ) {
9898
if( params == null ) throw "Constructor "+constr+" need parameters";

std/java/_std/Reflect.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ import java.Boot;
8888
@:functionCode('
8989
return ((haxe.lang.Function) func).__hx_invokeDynamic(args);
9090
')
91-
public static function callMethod( o : Dynamic, func : Dynamic, args : Array<Dynamic> ) : Dynamic
91+
public static function callMethod( o : Dynamic, func : haxe.Constraints.Function, args : Array<Dynamic> ) : Dynamic
9292
{
9393
return null;
9494
}

std/js/_std/Reflect.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
if( o.__properties__ && (tmp=o.__properties__["set_"+field]) ) o[tmp](value) else o[field] = __define_feature__("Reflect.setProperty",value);
4444
}
4545

46-
public inline static function callMethod( o : Dynamic, func : Dynamic, args : Array<Dynamic> ) : Dynamic untyped {
46+
public inline static function callMethod( o : Dynamic, func : haxe.Constraints.Function, args : Array<Dynamic> ) : Dynamic untyped {
4747
return func.apply(o,args);
4848
}
4949

std/js/_std/Type.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ enum ValueType {
110110
}
111111

112112
public static function createEnum<T>( e : Enum<T>, constr : String, ?params : Array<Dynamic> ) : T {
113-
var f = Reflect.field(e,constr);
113+
var f:Dynamic = Reflect.field(e,constr);
114114
if( f == null ) throw "No such constructor "+constr;
115115
if( Reflect.isFunction(f) ) {
116116
if( params == null ) throw "Constructor "+constr+" need parameters";

std/neko/_std/Reflect.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
}
4747
}
4848

49-
public static function callMethod( o : Dynamic, func : Dynamic, args : Array<Dynamic> ) : Dynamic untyped {
49+
public static function callMethod( o : Dynamic, func : haxe.Constraints.Function, args : Array<Dynamic> ) : Dynamic untyped {
5050
var a = args.__neko();
5151
// pad missing args with null's
5252
var n = $nargs(func);

std/neko/_std/Type.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ enum ValueType {
115115
}
116116

117117
public static function createEnum<T>( e : Enum<T>, constr : String, ?params : Array<Dynamic> ) : T {
118-
var f = Reflect.field(e,constr);
118+
var f:Dynamic = Reflect.field(e,constr);
119119
if( f == null ) throw "No such constructor "+constr;
120120
if( Reflect.isFunction(f) ) {
121121
if( params == null ) throw "Constructor "+constr+" need parameters";

std/php/_std/Reflect.hx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,7 @@
5353
return untyped __php__("$o->$field = $value");
5454
}
5555

56-
public static function callMethod( o : Dynamic, func : Dynamic, args : Array<Dynamic> ) : Dynamic untyped {
57-
if (__call__("is_string", o) && !__call__("is_array", func)) {
58-
return __call__("call_user_func_array", field(o, func), __field__(args, "a"));
59-
}
56+
public static function callMethod( o : Dynamic, func : haxe.Constraints.Function, args : Array<Dynamic> ) : Dynamic untyped {
6057
return __call__("call_user_func_array", __call__("is_callable", func) ? func : __call__("array", o, func), (null == args ? __call__("array") : __field__(args, "a")));
6158
}
6259

std/php/_std/Type.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ enum ValueType {
128128
}
129129

130130
public static function createEnum<T>( e : Enum<T>, constr : String, ?params : Array<Dynamic> ) : T {
131-
var f = Reflect.field(e,constr);
131+
var f:Dynamic = Reflect.field(e,constr);
132132
if( f == null ) throw "No such constructor "+constr;
133133
if( Reflect.isFunction(f) ) {
134134
if( params == null ) throw "Constructor "+constr+" need parameters";

std/python/_std/Reflect.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class Reflect {
9393
else Builtin.setattr(o,field, value);
9494
}
9595

96-
public static function callMethod( o : Dynamic, func : Dynamic, args : Array<Dynamic> ) : Dynamic
96+
public static function callMethod( o : Dynamic, func : haxe.Constraints.Function, args : Array<Dynamic> ) : Dynamic
9797
{
9898
var args:VarArgs = args;
9999
return if (Builtin.callable(func)) func(python.Syntax.varArgs(args)) else null;

std/python/_std/Type.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ enum ValueType {
160160

161161
public static function createEnum<T>( e : Enum<T>, constr : String, ?params : Array<Dynamic> ) : T
162162
{
163-
var f = Reflect.field(e,constr);
163+
var f:Dynamic = Reflect.field(e,constr);
164164
if( f == null ) throw "No such constructor "+constr;
165165
if( Reflect.isFunction(f) ) {
166166
if( params == null ) throw "Constructor "+constr+" need parameters";

0 commit comments

Comments
 (0)