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

欢迎!请参阅 关于 页面以了解更多关于该网站如何运作的信息。

0
ClojureScript

我有一些在 JVM Clojure 中运行良好的 .cljc 文件,但在 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 提出)
...