请在 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 处
[:libspec :spec :lib :sym] 规范 :cljs.core.specs.alpha/lib 处出现了 [:clj.set] - 失败:simple-symbol?
[:libspec :spec :lib :str] 规范 :cljs.core.specs.alpha/lib 处出现了 [:clj.set] - 失败:string?
[:flag] 处失败:#{:verbose :reload :reload-all}
cljs.user=>
0
参考:https://clojure.atlassian.net/browse/CLJS-2972(由 alex+import 报告)
...