2024年Clojure状态调查中分享您的想法!

欢迎!请查看关于页面以获取更多有关本站如何运行的信息。

+1
Clojure

问题
我试图在GraalVM中使用{{clojure.stracktrace/print-stack-trace}},但由于需要反射来查找{{getMessage}}方法,因此不起作用。

建议的解决方案
可以通过添加类型提示来解决这个问题。

关于
`(set! warn-on-reflection true)`
:

反射警告,/tmp/stacktrace.clj:24:18 - 无法解析字段getCause。反射警告,/tmp/stacktrace.clj:32:15 - 无法解析字段getClassName。反射警告,/tmp/stacktrace.clj:33:9 - 无法解析字段getMethodName。反射警告,/tmp/stacktrace.clj:38:26 - 无法解析字段getFileName。反射警告,/tmp/stacktrace.clj:38:47 - 无法解析字段getLineNumber。反射警告,/tmp/stacktrace.clj:45:42 - 无法解析字段getMessage。反射警告,/tmp/stacktrace.clj:24:18 - 无法解析字段getCause。

补丁 CLJ-2502-2.patch删除了不需要的空白更改,并将{{root-cause}}的类型提示向上移动。

审核人: Alex Miller

6 答案

0

评论由:borkdude发表

我愿意在核实此问题后自行实施修复。

0

评论由:alexmiller发表

勇于尝试!在补丁中,请随意将.warn-on-reflect设置放在代码的顶部。

0

评论由:borkdude发表

我已使用GraalVM测试过,现在工作了。

0

评论由:alexmiller发表

其中似乎有些多余的缩进更改 - 如果你能将它们最小化,那将很有帮助。对于根本原因,我宁愿在参数中尽可能高地提示类型(即type hint)。你能更新这些吗?

0

评论由:borkdude发表

已完成。

0
参考: https://clojure.atlassian.net/browse/CLJ-2502(由borkdude报告)
...