@@ -1501,7 +1501,7 @@ Object evaluateTransformExpression(Symbol expr, Object input, Frame environment)
15011501 return result ;
15021502 };
15031503
1504- return new JFunction (transformer , "<(oa):o>" );
1504+ return new JFunction ("evaluateTransform" , transformer , "<(oa):o>" );
15051505 }
15061506
15071507 static Symbol chainAST ; // = new Parser().parse("function($f, $g) { function($x){ $g($f($x)) } }");
@@ -2045,34 +2045,34 @@ public static JFunction function(String name, String signature, Class clazz, Obj
20452045 }
20462046
20472047 public static <A ,B ,R > JFunction function (String name , FnVarArgs <R > func , String signature ) {
2048- return new JFunction (func .getJFunctionCallable (), signature );
2048+ return new JFunction (name , func .getJFunctionCallable (), signature );
20492049 }
20502050 public static <A ,R > JFunction function (String name , Fn0 <R > func , String signature ) {
2051- return new JFunction (func .getJFunctionCallable (), signature );
2051+ return new JFunction (name , func .getJFunctionCallable (), signature );
20522052 }
20532053 public static <A ,B ,R > JFunction function (String name , Fn1 <A ,R > func , String signature ) {
2054- return new JFunction (func .getJFunctionCallable (), signature );
2054+ return new JFunction (name , func .getJFunctionCallable (), signature );
20552055 }
20562056 public static <A ,B ,R > JFunction function (String name , Fn2 <A ,B ,R > func , String signature ) {
2057- return new JFunction (func .getJFunctionCallable (), signature );
2057+ return new JFunction (name , func .getJFunctionCallable (), signature );
20582058 }
20592059 public static <A ,B ,C ,R > JFunction function (String name , Fn3 <A ,B ,C ,R > func , String signature ) {
2060- return new JFunction (func .getJFunctionCallable (), signature );
2060+ return new JFunction (name , func .getJFunctionCallable (), signature );
20612061 }
20622062 public static <A ,B ,C ,D ,R > JFunction function (String name , Fn4 <A ,B ,C ,D ,R > func , String signature ) {
2063- return new JFunction (func .getJFunctionCallable (), signature );
2063+ return new JFunction (name , func .getJFunctionCallable (), signature );
20642064 }
20652065 public static <A ,B ,C ,D ,E ,R > JFunction function (String name , Fn5 <A ,B ,C ,D ,E ,R > func , String signature ) {
2066- return new JFunction (func .getJFunctionCallable (), signature );
2066+ return new JFunction (name , func .getJFunctionCallable (), signature );
20672067 }
20682068 public static <A ,B ,C ,D ,E ,F ,R > JFunction function (String name , Fn6 <A ,B ,C ,D ,E ,F ,R > func , String signature ) {
2069- return new JFunction (func .getJFunctionCallable (), signature );
2069+ return new JFunction (name , func .getJFunctionCallable (), signature );
20702070 }
20712071 public static <A ,B ,C ,D ,E ,F ,G ,R > JFunction function (String name , Fn7 <A ,B ,C ,D ,E ,F ,G ,R > func , String signature ) {
2072- return new JFunction (func .getJFunctionCallable (), signature );
2072+ return new JFunction (name , func .getJFunctionCallable (), signature );
20732073 }
20742074 public static <A ,B ,C ,D ,E ,F ,G ,H ,R > JFunction function (String name , Fn8 <A ,B ,C ,D ,E ,F ,G ,H ,R > func , String signature ) {
2075- return new JFunction (func .getJFunctionCallable (), signature );
2075+ return new JFunction (name , func .getJFunctionCallable (), signature );
20762076 }
20772077
20782078 /**
@@ -2226,6 +2226,14 @@ public JFunction(JFunctionCallable function, String signature) {
22262226 this .signature = new Signature (signature , function .getClass ().getName ());
22272227 }
22282228
2229+ public JFunction (String functionName , JFunctionCallable function , String signature ) {
2230+ this .function = function ;
2231+ this .functionName = functionName ;
2232+ if (signature !=null )
2233+ // use classname as default, gets overwritten once the function is registered
2234+ this .signature = new Signature (signature , functionName + " (" + function .getClass ().getName () + ")" );
2235+ }
2236+
22292237 public JFunction (String functionName , String signature , Class clz , Object instance , String implMethodName ) {
22302238 this .functionName = functionName ;
22312239 this .signature = new Signature (signature , functionName );
0 commit comments