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.