- 
                Notifications
    
You must be signed in to change notification settings  - Fork 338
 
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Given:
abstract class Bird {
  abstract name: String
  function greet(bird: Bird): String = "Hello, \(bird.name)!"
}
class Pigeon extends Bird {
  // Here, I forgot to overried `name`
}
pigeon: Pigeon = new {}Leads to:
pkl failed with error Error: Command failed: /var/task/node_modules/@pkl-community/pkl-linux-x64/bin/pkl eval - --no-project --format json --allowed-modules pkl:,repl: --allowed-modules package: --cache-dir /tmp/pkl
An unexpected error has occurred. Would you mind filing a bug report?
Cmd+Double-click the link below to open an issue.
Please copy and paste the entire error output into the issue's description, provided you can share it.
https://github.com/apple/pkl/issues/newjava.lang.IllegalArgumentException%3A%20Cannot%20convert%20VM%20value%20with%20unexpected%20type%3A%20null
–– Pkl Error ––
Cannot convert VM value with unexpected type: null
394 | external function renderDocument(value: Any): String
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
at pkl.base#JsonRenderer.renderDocument (https://github.com/apple/pkl/blob/0.25.1/stdlib/base.pkl#L394)
106 | text = renderer.renderDocument(value)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
at pkl.base#Module.output.text (https://github.com/apple/pkl/blob/0.25.1/stdlib/base.pkl#L106)
Pkl 0.25.1 (Linux 5.15.0-1050-aws, native)
java.lang.IllegalArgumentException: Cannot convert VM value with unexpected type: null
	at org.pkl.core.runtime.VmValueConverter.convert(VmValueConverter.java:100)
	at org.pkl.core.stdlib.AbstractRenderer.doVisitProperty(AbstractRenderer.java:193)
	at org.pkl.core.stdlib.AbstractRenderer.lambda$visitTyped$0(AbstractRenderer.java:256)
	at org.pkl.core.runtime.VmObject.lambda$iterateAlreadyForcedMemberValues$1(VmObject.java:132)
	at org.pkl.core.runtime.VmObject.iterateMembers(VmObject.java:148)
	at org.pkl.core.runtime.VmObject.iterateMembers(VmObject.java:141)
	at org.pkl.core.runtime.VmObject.iterateAlreadyForcedMemberValues(VmObject.java:124)
	at org.pkl.core.runtime.VmObject.forceAndIterateMemberValues(VmObject.java:117)
	at org.pkl.core.stdlib.AbstractRenderer.visitTyped(AbstractRenderer.java:252)
	at org.pkl.core.runtime.VmTyped.accept(VmTyped.java:168)
	at org.pkl.core.runtime.VmValueVisitor.visit(VmValueVisitor.java:65)
	at org.pkl.core.stdlib.AbstractRenderer.visit(AbstractRenderer.java:126)
	at org.pkl.core.stdlib.base.JsonRendererNodes$JsonRenderer.visitProperty(JsonRendererNodes.java:230)
	at org.pkl.core.stdlib.AbstractRenderer.doVisitProperty(AbstractRenderer.java:195)
	at org.pkl.core.stdlib.AbstractRenderer.lambda$visitTyped$0(AbstractRenderer.java:256)
	at org.pkl.core.runtime.VmObject.lambda$iterateAlreadyForcedMemberValues$1(VmObject.java:132)
	at org.pkl.core.runtime.VmObject.iterateMembers(VmObject.java:148)
	at org.pkl.core.runtime.VmObject.iterateAlreadyForcedMemberValues(VmObject.java:124)
	at org.pkl.core.runtime.VmObject.forceAndIterateMemberValues(VmObject.java:117)
	at org.pkl.core.stdlib.AbstractRenderer.visitTyped(AbstractRenderer.java:252)
	at org.pkl.core.runtime.VmTyped.accept(VmTyped.java:168)
	at org.pkl.core.runtime.VmValueVisitor.visit(VmValueVisitor.java:65)
	at org.pkl.core.stdlib.AbstractRenderer.visit(AbstractRenderer.java:126)
	at org.pkl.core.stdlib.base.JsonRendererNodes$JsonRenderer.visitDocument(JsonRendererNodes.java:73)
	at org.pkl.core.stdlib.AbstractRenderer.renderDocument(AbstractRenderer.java:101)
	at org.pkl.core.stdlib.base.JsonRendererNodes$renderDocument.eval(JsonRendererNodes.java:37)
	at org.pkl.core.stdlib.base.JsonRendererNodesFactory$renderDocumentNodeGen.executeAndSpecialize(JsonRendererNodesFactory.java:65)
	at org.pkl.core.stdlib.base.JsonRendererNodesFactory$renderDocumentNodeGen.executeGeneric(JsonRendererNodesFactory.java:57)
	at org.pkl.core.ast.member.FunctionNode.execute(FunctionNode.java:119)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:709)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:632)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:565)
	at com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.invokeCallBoundary(SubstrateOptimizedCallTarget.java:115)
	at com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.doInvoke(SubstrateOptimizedCallTargetInstalledCode.java:194)
	at com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.doInvoke(SubstrateOptimizedCallTarget.java:97)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:495)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
	at org.pkl.core.ast.expression.member.InvokeMethodVirtualNode.evalCached(InvokeMethodVirtualNode.java:136)
	at org.pkl.core.ast.expression.member.InvokeMethodVirtualNodeGen.executeAndSpecialize(InvokeMethodVirtualNodeGen.java:214)
	at org.pkl.core.ast.expression.member.InvokeMethodVirtualNodeGen.executeGeneric(InvokeMethodVirtualNodeGen.java:131)
	at org.pkl.core.ast.PklRootNode.executeBody(PklRootNode.java:41)
	at org.pkl.core.ast.MemberNode.executeBody(MemberNode.java:71)
	at org.pkl.core.ast.member.TypeCheckedPropertyNode.evalTypedObjectCached(TypeCheckedPropertyNode.java:55)
	at org.pkl.core.ast.member.TypeCheckedPropertyNodeGen.executeAndSpecialize(TypeCheckedPropertyNodeGen.java:100)
	at org.pkl.core.ast.member.TypeCheckedPropertyNodeGen.execute(TypeCheckedPropertyNodeGen.java:61)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:709)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:632)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:565)
	at com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.invokeCallBoundary(SubstrateOptimizedCallTarget.java:115)
	at com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.doInvoke(SubstrateOptimizedCallTargetInstalledCode.java:194)
	at com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.doInvoke(SubstrateOptimizedCallTarget.java:97)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callIndirect(OptimizedCallTarget.java:477)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call(OptimizedCallTarget.java:458)
	at org.graalvm.truffle/com.oracle.truffle.api.nodes.IndirectCallNode$1.call(IndirectCallNode.java:91)
	at org.pkl.core.runtime.VmUtils.doReadMember(VmUtils.java:297)
	at org.pkl.core.runtime.VmUtils.readMemberOrNull(VmUtils.java:237)
	at org.pkl.core.runtime.VmUtils.readMemberOrNull(VmUtils.java:200)
	at org.pkl.core.runtime.VmUtils.readMember(VmUtils.java:180)
	at org.pkl.core.runtime.VmUtils.readTextProperty(VmUtils.java:170)
	at org.pkl.core.EvaluatorImpl.lambda$evaluateOutputText$3(EvaluatorImpl.java:137)
	at org.pkl.core.EvaluatorImpl.lambda$doEvaluate$13(EvaluatorImpl.java:352)
	at org.pkl.core.EvaluatorImpl.doEvaluate(EvaluatorImpl.java:300)
	at org.pkl.core.EvaluatorImpl.doEvaluate(EvaluatorImpl.java:348)
	at org.pkl.core.EvaluatorImpl.evaluateOutputText(EvaluatorImpl.java:133)
	at org.pkl.core.EvaluatorImpl.evaluateExpressionString(EvaluatorImpl.java:209)
	at org.pkl.cli.CliEvaluator.writeOutput(CliEvaluator.kt:179)
	at org.pkl.cli.CliEvaluator.doRun(CliEvaluator.kt:99)
	at org.pkl.commons.cli.CliCommand.run(CliCommand.kt:45)
	at org.pkl.cli.commands.EvalCommand.run(EvalCommand.kt:86)
	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:198)
	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:211)
	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:18)
	at com.github.ajalt.clikt.core.CliktCommand.parse(CliktCommand.kt:400)
	at com.github.ajalt.clikt.core.CliktCommand.parse$default(CliktCommand.kt:397)
	at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:415)
	at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:440)
	at org.pkl.cli.Main$main$1.invoke$lambda-0(Main.kt:45)
	at [email protected]/java.lang.Thread.run(Thread.java:829)
	at com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775)
	at com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203)
 and stderr:
 An unexpected error has occurred. Would you mind filing a bug report?
Cmd+Double-click the link below to open an issue.
Please copy and paste the entire error output into the issue's description, provided you can share it.
https://github.com/apple/pkl/issues/newjava.lang.IllegalArgumentException%3A%20Cannot%20convert%20VM%20value%20with%20unexpected%20type%3A%20null
–– Pkl Error ––
Cannot convert VM value with unexpected type: null
394 | external function renderDocument(value: Any): String
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
at pkl.base#JsonRenderer.renderDocument (https://github.com/apple/pkl/blob/0.25.1/stdlib/base.pkl#L394)
106 | text = renderer.renderDocument(value)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
at pkl.base#Module.output.text (https://github.com/apple/pkl/blob/0.25.1/stdlib/base.pkl#L106)
Pkl 0.25.1 (Linux 5.15.0-1050-aws, native)
java.lang.IllegalArgumentException: Cannot convert VM value with unexpected type: null
	at org.pkl.core.runtime.VmValueConverter.convert(VmValueConverter.java:100)
	at org.pkl.core.stdlib.AbstractRenderer.doVisitProperty(AbstractRenderer.java:193)
	at org.pkl.core.stdlib.AbstractRenderer.lambda$visitTyped$0(AbstractRenderer.java:256)
	at org.pkl.core.runtime.VmObject.lambda$iterateAlreadyForcedMemberValues$1(VmObject.java:132)
	at org.pkl.core.runtime.VmObject.iterateMembers(VmObject.java:148)
	at org.pkl.core.runtime.VmObject.iterateMembers(VmObject.java:141)
	at org.pkl.core.runtime.VmObject.iterateAlreadyForcedMemberValues(VmObject.java:124)
	at org.pkl.core.runtime.VmObject.forceAndIterateMemberValues(VmObject.java:117)
	at org.pkl.core.stdlib.AbstractRenderer.visitTyped(AbstractRenderer.java:252)
	at org.pkl.core.runtime.VmTyped.accept(VmTyped.java:168)
	at org.pkl.core.runtime.VmValueVisitor.visit(VmValueVisitor.java:65)
	at org.pkl.core.stdlib.AbstractRenderer.visit(AbstractRenderer.java:126)
	at org.pkl.core.stdlib.base.JsonRendererNodes$JsonRenderer.visitProperty(JsonRendererNodes.java:230)
	at org.pkl.core.stdlib.AbstractRenderer.doVisitProperty(AbstractRenderer.java:195)
	at org.pkl.core.stdlib.AbstractRenderer.lambda$visitTyped$0(AbstractRenderer.java:256)
	at org.pkl.core.runtime.VmObject.lambda$iterateAlreadyForcedMemberValues$1(VmObject.java:132)
	at org.pkl.core.runtime.VmObject.iterateMembers(VmObject.java:148)
	at org.pkl.core.runtime.VmObject.iterateAlreadyForcedMemberValues(VmObject.java:124)
	at org.pkl.core.runtime.VmObject.forceAndIterateMemberValues(VmObject.java:117)
	at org.pkl.core.stdlib.AbstractRenderer.visitTyped(AbstractRenderer.java:252)
	at org.pkl.core.runtime.VmTyped.accept(VmTyped.java:168)
	at org.pkl.core.runtime.VmValueVisitor.visit(VmValueVisitor.java:65)
	at org.pkl.core.stdlib.AbstractRenderer.visit(AbstractRenderer.java:126)
	at org.pkl.core.stdlib.base.JsonRendererNodes$JsonRenderer.visitDocument(JsonRendererNodes.java:73)
	at org.pkl.core.stdlib.AbstractRenderer.renderDocument(AbstractRenderer.java:101)
	at org.pkl.core.stdlib.base.JsonRendererNodes$renderDocument.eval(JsonRendererNodes.java:37)
	at org.pkl.core.stdlib.base.JsonRendererNodesFactory$renderDocumentNodeGen.executeAndSpecialize(JsonRendererNodesFactory.java:65)
	at org.pkl.core.stdlib.base.JsonRendererNodesFactory$renderDocumentNodeGen.executeGeneric(JsonRendererNodesFactory.java:57)
	at org.pkl.core.ast.member.FunctionNode.execute(FunctionNode.java:119)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:709)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:632)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:565)
	at com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.invokeCallBoundary(SubstrateOptimizedCallTarget.java:115)
	at com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.doInvoke(SubstrateOptimizedCallTargetInstalledCode.java:194)
	at com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.doInvoke(SubstrateOptimizedCallTarget.java:97)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:495)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:68)
	at org.pkl.core.ast.expression.member.InvokeMethodVirtualNode.evalCached(InvokeMethodVirtualNode.java:136)
	at org.pkl.core.ast.expression.member.InvokeMethodVirtualNodeGen.executeAndSpecialize(InvokeMethodVirtualNodeGen.java:214)
	at org.pkl.core.ast.expression.member.InvokeMethodVirtualNodeGen.executeGeneric(InvokeMethodVirtualNodeGen.java:131)
	at org.pkl.core.ast.PklRootNode.executeBody(PklRootNode.java:41)
	at org.pkl.core.ast.MemberNode.executeBody(MemberNode.java:71)
	at org.pkl.core.ast.member.TypeCheckedPropertyNode.evalTypedObjectCached(TypeCheckedPropertyNode.java:55)
	at org.pkl.core.ast.member.TypeCheckedPropertyNodeGen.executeAndSpecialize(TypeCheckedPropertyNodeGen.java:100)
	at org.pkl.core.ast.member.TypeCheckedPropertyNodeGen.execute(TypeCheckedPropertyNodeGen.java:61)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:709)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:632)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:565)
	at com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.invokeCallBoundary(SubstrateOptimizedCallTarget.java:115)
	at com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.doInvoke(SubstrateOptimizedCallTargetInstalledCode.java:194)
	at com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.doInvoke(SubstrateOptimizedCallTarget.java:97)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callIndirect(OptimizedCallTarget.java:477)
	at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call(OptimizedCallTarget.java:458)
	at org.graalvm.truffle/com.oracle.truffle.api.nodes.IndirectCallNode$1.call(IndirectCallNode.java:91)
	at org.pkl.core.runtime.VmUtils.doReadMember(VmUtils.java:297)
	at org.pkl.core.runtime.VmUtils.readMemberOrNull(VmUtils.java:237)
	at org.pkl.core.runtime.VmUtils.readMemberOrNull(VmUtils.java:200)
	at org.pkl.core.runtime.VmUtils.readMember(VmUtils.java:180)
	at org.pkl.core.runtime.VmUtils.readTextProperty(VmUtils.java:170)
	at org.pkl.core.EvaluatorImpl.lambda$evaluateOutputText$3(EvaluatorImpl.java:137)
	at org.pkl.core.EvaluatorImpl.lambda$doEvaluate$13(EvaluatorImpl.java:352)
	at org.pkl.core.EvaluatorImpl.doEvaluate(EvaluatorImpl.java:300)
	at org.pkl.core.EvaluatorImpl.doEvaluate(EvaluatorImpl.java:348)
	at org.pkl.core.EvaluatorImpl.evaluateOutputText(EvaluatorImpl.java:133)
	at org.pkl.core.EvaluatorImpl.evaluateExpressionString(EvaluatorImpl.java:209)
	at org.pkl.cli.CliEvaluator.writeOutput(CliEvaluator.kt:179)
	at org.pkl.cli.CliEvaluator.doRun(CliEvaluator.kt:99)
	at org.pkl.commons.cli.CliCommand.run(CliCommand.kt:45)
	at org.pkl.cli.commands.EvalCommand.run(EvalCommand.kt:86)
	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:198)
	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:211)
	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:18)
	at com.github.ajalt.clikt.core.CliktCommand.parse(CliktCommand.kt:400)
	at com.github.ajalt.clikt.core.CliktCommand.parse$default(CliktCommand.kt:397)
	at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:415)
	at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:440)
	at org.pkl.cli.Main$main$1.invoke$lambda-0(Main.kt:45)
	at [email protected]/java.lang.Thread.run(Thread.java:829)
	at com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775)
	at com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203)
See also: https://pkl-playground.vercel.app/?share=bad-tone-whispered
I've the same issue locally with the latest 0.29.1 version:
 Pkl 0.29.1 (macOS 26.0, native)
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working