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 提出

似乎有一些多余的缩进更改,如果您能尽量减少这些,将有所帮助。对于根本原因,我更希望类型提示尽可能高(在参数中)。能否更新这些?

0

评论由:borkdude 提出

完成。

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