jam01/xtrasonnet

xtr.toString isn't recognized as function in xtr.map

Opened this issue · 0 comments

xtr.map([1, 2, 3], xtr.toString)

throws

sjsonnet.Error: Internal Error
	at [ApplyBuiltin2].((main):1:8)
Caused by: java.lang.NullPointerException
	at io.github.jam01.xtrasonnet.Xtr$.map(Xtr.scala:643)
	at io.github.jam01.xtrasonnet.Xtr$.$anonfun$functions$23(Xtr.scala:209)
	at sjsonnet.Std$$anon$5.evalRhs(Std.scala:1206)
	at sjsonnet.Evaluator.visitApplyBuiltin2(Evaluator.scala:235)
	at sjsonnet.Evaluator.visitExpr(Evaluator.scala:44)
	at sjsonnet.Evaluator$$anon$1.evalRhs(Evaluator.scala:485)
	at io.github.jam01.xtrasonnet.Transformer$$anon$2.evalRhs(Transformer.scala:237)
	at sjsonnet.Val$Func.apply(Val.scala:388)
	at sjsonnet.Materializer.apply0(Materializer.scala:61)
	at io.github.jam01.xtrasonnet.plugins.DefaultJSONPlugin.write(DefaultJSONPlugin.java:106)
	at io.github.jam01.xtrasonnet.DataFormatService.mandatoryWrite(DataFormatService.java:64)
	at io.github.jam01.xtrasonnet.Transformer.$anonfun$transform$2(Transformer.scala:244)
	at io.github.jam01.xtrasonnet.Transformer$.io$github$jam01$xtrasonnet$Transformer$$handleException(Transformer.scala:36)
	at io.github.jam01.xtrasonnet.Transformer.transform(Transformer.scala:244)
	at io.github.jam01.xtrasonnet.playground.App.handleRequest(App.java:94)
	at io.github.jam01.xtrasonnet.playground.App.handleRequest(App.java:41)
	at io.quarkus.amazon.lambda.runtime.AmazonLambdaRecorder$1.processRequest(AmazonLambdaRecorder.java:167)
	at io.quarkus.amazon.lambda.runtime.AbstractLambdaPollLoop$1.run(AbstractLambdaPollLoop.java:137)
	at java.base@17.0.6/java.lang.Thread.run(Thread.java:833)
	at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775)
	at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203)

The work around is

xtr.map([1, 2, 3], function(x) xtr.toString(x))