Created
August 16, 2013 19:57
-
-
Save edbond/6253042 to your computer and use it in GitHub Desktop.
clojurescript macros error
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns platezhki.core | |
(:require [goog.events :as ev] | |
[goog.dom :as dom]) | |
(:use-macros [platezhki.macros :only (inside)])) | |
;; Electricity | |
(defn log [& args] | |
(.log js/console args)) | |
(inside ".electro" (log "OK") | |
#_(ev/listen ($ ".previous") | |
ev/EventType$KEYDOWN | |
#(log "KEY PRESS!" %))) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Compiling "public/main.js" from ["src-cljs"]... | |
Compiling "public/main.js" failed. | |
clojure.lang.ExceptionInfo: failed compiling file:src-cljs/platezhki/core.cljs | |
core.clj:4327 clojure.core/ex-info | |
compiler.clj:891 cljs.compiler/compile-file | |
compiler.clj:953 cljs.compiler/compile-root | |
closure.clj:398 cljs.closure/compile-dir | |
closure.clj:430 cljs.closure/eval1956[fn] | |
closure.clj:299 cljs.closure/eval1883[fn] | |
closure.clj:444 cljs.closure/eval1943[fn] | |
closure.clj:299 cljs.closure/eval1883[fn] | |
compiler.clj:43 cljsbuild.compiler.SourcePaths/fn | |
core.clj:2485 clojure.core/map[fn] | |
LazySeq.java:42 clojure.lang.LazySeq.sval | |
LazySeq.java:60 clojure.lang.LazySeq.seq | |
RT.java:484 clojure.lang.RT.seq | |
core.clj:133 clojure.core/seq | |
core.clj:617 clojure.core/apply | |
core.clj:2514 clojure.core/mapcat | |
RestFn.java:423 clojure.lang.RestFn.invoke | |
compiler.clj:43 cljsbuild.compiler/cljsbuild.compiler.SourcePaths | |
closure.clj:955 cljs.closure/build | |
compiler.clj:57 cljsbuild.compiler/compile-cljs[fn] | |
compiler.clj:56 cljsbuild.compiler/compile-cljs | |
compiler.clj:140 cljsbuild.compiler/run-compiler | |
NO_SOURCE_FILE:1 user/eval2273[fn] | |
LazySeq.java:42 clojure.lang.LazySeq.sval | |
LazySeq.java:60 clojure.lang.LazySeq.seq | |
RT.java:484 clojure.lang.RT.seq | |
core.clj:133 clojure.core/seq | |
core.clj:2780 clojure.core/dorun | |
core.clj:2796 clojure.core/doall | |
NO_SOURCE_FILE:1 user/eval2273 | |
Compiler.java:6619 clojure.lang.Compiler.eval | |
Compiler.java:6609 clojure.lang.Compiler.eval | |
Compiler.java:6582 clojure.lang.Compiler.eval | |
core.clj:2852 clojure.core/eval | |
main.clj:308 clojure.main/eval-opt | |
main.clj:327 clojure.main/initialize | |
main.clj:362 clojure.main/null-opt | |
main.clj:440 clojure.main/main | |
RestFn.java:421 clojure.lang.RestFn.invoke | |
Var.java:419 clojure.lang.Var.invoke | |
AFn.java:163 clojure.lang.AFn.applyToHelper | |
Var.java:532 clojure.lang.Var.applyTo | |
main.java:37 clojure.main.main | |
Caused by: clojure.lang.ExceptionInfo: Assert failed: Invalid local name: platezhki.macros/inside-sel | |
(not (or (namespace name) (.contains (str name) "."))) at line 10 src-cljs/platezhki/core.cljs | |
core.clj:4327 clojure.core/ex-info | |
analyzer.clj:128 cljs.analyzer/error | |
analyzer.clj:933 cljs.analyzer/analyze-seq | |
analyzer.clj:989 cljs.analyzer/analyze | |
analyzer.clj:937 cljs.analyzer/analyze-seq | |
analyzer.clj:989 cljs.analyzer/analyze | |
analyzer.clj:937 cljs.analyzer/analyze-seq | |
analyzer.clj:989 cljs.analyzer/analyze | |
analyzer.clj:980 cljs.analyzer/analyze | |
compiler.clj:822 cljs.compiler/compile-file* | |
compiler.clj:888 cljs.compiler/compile-file | |
Caused by: java.lang.AssertionError: Assert failed: Invalid local name: platezhki.macros/inside-sel | |
(not (or (namespace name) (.contains (str name) "."))) | |
analyzer.clj:492 cljs.analyzer/analyze-let[fn] | |
analyzer.clj:486 cljs.analyzer/analyze-let | |
analyzer.clj:528 cljs.analyzer/eval338[fn] | |
MultiFn.java:241 clojure.lang.MultiFn.invoke | |
analyzer.clj:935 cljs.analyzer/analyze-seq |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns platezhki.macros | |
(:require [goog.dom :as dom])) | |
(def ^:dynamic inside-sel nil) | |
(defn $ [sel] | |
(dom/query | |
(if inside-sel | |
(str inside-sel " " sel) | |
sel))) | |
(defmacro inside | |
[sel & body] | |
`(let [inside-sel (dom/query sel)] | |
~@body)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
got it thanks to the comment in http://clojuredocs.org/clojure_core/clojure.core/defmacro#comment_134, needed to append #