2024 年 Clojure 调查问卷! 中分享您的想法。

欢迎!请参阅 关于 页面以了解有关此如何工作的更多信息。

0
ClojureScript

我有 .cljc 文件在 JVM Clojure 中运行良好,但在 ClojureScript 中却出现了这个错误

----  Could not Analyze  src/cljc/zm/ops1OP.cljc   line:1  column:1  ----            

  Don't know how to create ISeq from: clojure.lang.Keyword                           

  1  (ns zm.ops1OP
     ^--- Don't know how to create ISeq from: clojure.lang.Keyword                   
  2    "1OP operations"
  3    #?(:cljs (:require-macros (link: zm.util :refer [v4-5)]))                           
  4    (:require (link: zm.memory :refer :all)

----  Analysis Error : Please see src/cljc/zm/ops1OP.cljc  ---- 

问题是 :refer :all,错误消息在事后看来是有道理的,但 CLJS 在指出这个错误方面可以做得更好。

2 答案

0
_由:mfikes_发表的评论

以下是如果首先加载核心规范然后使用 CLJS-2913 的工作时当前的样子


cljs.user=> (require '[cljs.core.specs.alpha])
nil
cljs.user=> (require '[clojure.set :refer :all])
在 (<cljs repl>:1:1) 处展开 cljs.core/require 时发生语法错误。
:all - 失败:coll? 在 [:libspec :spec :lib+opts :options :refer] 规范 :cljs.core.specs.alpha/refer
[clojure.set :refer :all] - 失败:simple-symbol? 在 [:libspec :spec :lib :sym] 规范 :cljs.core.specs.alpha/lib
[clojure.set :refer :all] - 失败:string? 在 [:libspec :spec :lib :str] 规范 :cljs.core.specs.alpha/lib
(quote [clojure.set :refer :all]) - 失败:#{:verbose :reload :reload-all} 在 [:flag]
cljs.user=>
0
参考:https://clojure.atlassian.net/browse/CLJS-2972(由 alex+import 报告)
...