Firstly, :import in ClojureScript only supports symbols as libspecs,
so you'd need to write

  (:import goog.ui.Button)

(foo Bar Quux) support could be added easily, but currently
ClojureScript's ns form doesn't support the equivalents for :require
and :use, to it makes sense to expect full names in :import too. This
wouldn't trigger this particular assertion error though.

Apart from that, I thought lein-cljsbuild's default ClojureScript
version does support :import, but in any case it is outdated, so you
may want to add an explicit dependency on 0.0-1586 to your project.clj
and see if that makes things work.

In case it doesn't, this particular assertions needs to have its
message adjusted, but it actually accepts :import too. So, if it
doesn't go away, you may want to make sure that there are no funky ns
forms in any dependencies you're pulling in and such.

In any event, please let as know how it goes!

Cheers,
Michał


On 18 April 2013 22:48, Răzvan Rotaru <razvan.rot...@gmail.com> wrote:
> Hmm, I'm stuck again. :)
>
> I don't know why, but it seems that building the project with lein-cljsbuild
> does not accept :import. Here's the code:
>
> (ns habarnam
>   (:use [domina :only [xpath]])
>   (:import [goog.ui [Button]])
>
>
> And here's the compilation error:
>
> Compiling ClojureScript.
> Compiling "res/bootstrap.js" from ["src/cljs"]...
> ←[31mCompiling "res/bootstrap.js" failed.←[0m
> ←[31mjava.lang.AssertionError: ←[39m←[31mAssert failed: Only :refer-clojure,
> :require, :require-macros, :use and :use-macros libspecs supported
> (#{:use-macros :require-macros :require :use} k)←[39m
> ←[32m          analyzer.clj:627 cljs.analyzer/eval381[fn]←[39m
> ←[35m         protocols.clj:143 clojure.core.protocols/fn←[39m
> ←[35m          protocols.clj:19 clojure.core.protocols/fn[fn]←[39m
> ←[35m          protocols.clj:31 clojure.core.protocols/seq-reduce←[39m
> ←[35m          protocols.clj:54 clojure.core.protocols/fn←[39m
> ←[35m          protocols.clj:13 clojure.core.protocols/fn[fn]←[39m
> ←[35m             core.clj:6177 clojure.core/reduce←[39m
> ←[32m          analyzer.clj:637 cljs.analyzer/eval381[fn]←[39m
> ←[36m          MultiFn.java:241 clojure.lang.MultiFn.invoke←[39m
> ←[32m          analyzer.clj:862 cljs.analyzer/analyze-seq←[39m
> ←[32m          analyzer.clj:917 cljs.analyzer/analyze←[39m
> ←[32m          analyzer.clj:909 cljs.analyzer/analyze←[39m
> ←[32m          compiler.clj:756 cljs.compiler/compile-file*←[39m
> ←[32m          compiler.clj:794 cljs.compiler/compile-file←[39m
> ←[32m          compiler.clj:855 cljs.compiler/compile-root←[39m
> ←[32m           closure.clj:365 cljs.closure/compile-dir←[39m
> ←[32m           closure.clj:397 cljs.closure/eval1496[fn]←[39m
> ←[32m           closure.clj:267 cljs.closure/eval1423[fn]←[39m
> ←[32m           closure.clj:411 cljs.closure/eval1483[fn]←[39m
> ←[32m           closure.clj:267 cljs.closure/eval1423[fn]←[39m
> ←[32m           compiler.clj:43 cljsbuild.compiler.SourcePaths/fn←[39m
> ←[35m             core.clj:2485 clojure.core/map[fn]←[39m
> ←[36m           LazySeq.java:42 clojure.lang.LazySeq.sval←[39m
> ←[36m           LazySeq.java:60 clojure.lang.LazySeq.seq←[39m
> ←[36m               RT.java:484 clojure.lang.RT.seq←[39m
> ←[35m              core.clj:133 clojure.core/seq←[39m
> ←[35m              core.clj:617 clojure.core/apply←[39m
> ←[35m             core.clj:2514 clojure.core/mapcat←[39m
> ←[36m           RestFn.java:423 clojure.lang.RestFn.invoke←[39m
> ←[32m           compiler.clj:43
> cljsbuild.compiler/cljsbuild.compiler.SourcePaths←[39m
> ←[32m           closure.clj:875 cljs.closure/build←[39m
> ←[32m           compiler.clj:57 cljsbuild.compiler/compile-cljs[fn]←[39m
> ←[32m           compiler.clj:56 cljsbuild.compiler/compile-cljs←[39m
> ←[32m          compiler.clj:140 cljsbuild.compiler/run-compiler←[39m
> ←[33m          NO_SOURCE_FILE:1 user/eval1979[fn]←[39m
> ←[36m           LazySeq.java:42 clojure.lang.LazySeq.sval←[39m
> ←[36m           LazySeq.java:60 clojure.lang.LazySeq.seq←[39m
> ←[36m               RT.java:484 clojure.lang.RT.seq←[39m
> ←[35m              core.clj:133 clojure.core/seq←[39m
> ←[35m             core.clj:2780 clojure.core/dorun←[39m
> ←[35m             core.clj:2796 clojure.core/doall←[39m
> ←[33m          NO_SOURCE_FILE:1 user/eval1979[fn]←[39m
> ←[33m          NO_SOURCE_FILE:1 user/eval1979←[39m
> ←[36m        Compiler.java:6619 clojure.lang.Compiler.eval←[39m
> ←[36m        Compiler.java:6609 clojure.lang.Compiler.eval←[39m
> ←[36m        Compiler.java:6582 clojure.lang.Compiler.eval←[39m
> ←[35m             core.clj:2852 clojure.core/eval←[39m
> ←[35m              main.clj:308 clojure.main/eval-opt←[39m
> ←[35m              main.clj:327 clojure.main/initialize←[39m
> ←[35m              main.clj:362 clojure.main/null-opt←[39m
> ←[35m              main.clj:440 clojure.main/main←[39m
> ←[36m           RestFn.java:421 clojure.lang.RestFn.invoke←[39m
> ←[36m              Var.java:419 clojure.lang.Var.invoke←[39m
> ←[36m              AFn.java:163 clojure.lang.AFn.applyToHelper←[39m
> ←[36m              Var.java:532 clojure.lang.Var.applyTo←[39m
> ←[36m              main.java:37 clojure.main.main←[39m
>
> Any ideas what could be wrong?
>
> Thanks,
> Razvan
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to