Fork me on GitHub
#cljs-dev
<
2016-07-26
>
thheller15:07:42

@dnolen in the CLJS analyzer meta data the :arglists of a defn are quoted while they are not in clojure

thheller15:07:49

is this intended or just an oversight?

thheller15:07:04

{:protocol-inline nil,
 :meta
 {:file "clojure/string.cljs",
  :line 193,
  :column 16,
  :end-line 193,
  :end-column 22,
  :tag boolean,
  :arglists '([s]),
  :doc "True is s is nil, empty, or contains only whitespace."},
 :name clojure.string/blank?,
 :variadic false,
 :file "clojure/string.cljs",
 :end-column 22,
 :method-params ([s]),
 :protocol-impl nil,
 :arglists-meta (nil nil),
 :column 1,
 :line 193,
 :ret-tag boolean,
 :end-line 193,
 :max-fixed-arity 1,
 :tag boolean,
 :fn-var true,
 :arglists '([s]),
 :doc "True is s is nil, empty, or contains only whitespace."}

thheller15:07:32

{:arglists ([s]),
 :doc "True if s is nil, empty, or contains only whitespace.",
 :added "1.2",
 :line 287,
 :column 1,
 :file "clojure/string.clj",
 :name blank?,
 :ns #object[clojure.lang.Namespace 0x6e4f1a08 "clojure.string"]}

thheller15:07:34

for clojure

thheller15:07:58

:arglists '([s]) there are some instances where it isn't quoted too

thheller15:07:45

not that it matters, just stumbled upon while writing a tool experiment

thheller15:07:06

also :arglists is not a list? but a lazy-seq

dnolen15:07:13

@thheller: I’m not sure there’s a good reason for that, but I recall futzing with it at one point while doing something else

dnolen15:07:34

and it broke something else, so I tabled it

dnolen15:07:08

re: :arglists being quoted

dnolen15:07:56

:arglists not being list? doesn’t seem particularly important

thheller15:07:52

yeah it is not important, just wrapped it into a maybe-remove-quote fn and it's all good

thheller15:07:37

but if it broke when you tried to remove the quote it is not important at all 🙂

dnolen15:07:44

@thheller quoting :arglists may have something to do with the analysis cache

thheller15:07:20

don't think so

thheller15:07:29

things like :method-params are not quoted

thheller15:07:35

and contain basically the same stuff

dnolen15:07:54

hrm, yeah then dunno

thheller15:07:14

doesn't matter, just thought I'd ask if there is a reason for it

dnolen15:07:06

@thheller: another reason I’m looking forward to spec’ing out all this stuff once 1.9.0 lands

dnolen15:07:28

it would be nice to have a visible list of all the weird little things that have accumulated over the years in one place

thheller15:07:05

yeah spec is awesome for that, I have spec'd all my cljs macros and it is amazing. half the code and actual usable error messages