2024 Clojure 状态调查!中分享你的想法。

欢迎!请查看关于页面以获取更多关于这如何工作的小信息。

0
语法和读取器

在 REPL 中,我意外输入了

user=> 1. "\"\w+"
RuntimeException 不支持的转义字符: "\w" clojure.lang.Util.runtimeExce
ption (Util.java:156)

<core$PLUS clojure.core$PLUS@6b7dc78>

你可以看到令人困惑的结果(REPL 也保留在未关闭的字符串中)。查看 LispReader.java 之后,我觉得 DispatchReader 至少应该在调用 CtorReader 前检查空白字符(也许更好的是检查有效的符号字符)。

6 个回答

0

评论者:bronsa

不再可重现

0

评论者:alexmiller

对我来说至少部分可以重现。我在第一个例子中看到了同样的行为。第二个例子用一个符号 1. } 时工作,但在给定的情况下失败并引发合理的错误。

0

评论者:bronsa

嗯,对。
修复第一个错误的唯一方法是将 1. "\w+" 作为一个有效的正则表达式字面量,即在 1. 和下一个分派字符之间允许空格。
这是我们要的吗?

0

评论者:alexmiller

不知道

0

评论者:alexmiller

在描述中移除了第二个(不再存在)示例。

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