Oh, one other question - does :refer-clojure in CLJS refer both macros and
functions in the same declaration? i.e. I could do something like:

(ns foo
  (:refer-clojure :only [defn reduce]))


On 10 June 2014 01:27, Colin Fleming <colin.mailingl...@gmail.com> wrote:

> Thanks David. I think I'll implement this the way it should work then, and
> users will see an unresolved symbol warning if they use the incorrect
> forms. As things get fancier I can provide some explanation and an
> intention to migrate the incorrect forms to the correct ones.
>
> Hopefully this should be done sometime this week. It's looking pretty nice
> :-)
>
>
> On 10 June 2014 00:21, David Nolen <dnolen.li...@gmail.com> wrote:
>
>> On Sun, Jun 8, 2014 at 5:55 AM, Colin Fleming
>> <colin.mailingl...@gmail.com> wrote:
>> >
>> > Hi all,
>> >
>> > I'm working on CLJS symbol resolution for Cursive. There are a lot of
>> corners where it's hard to figure out from the doc how they should work -
>> I've looked through the code but I'm not sure I've got it all right.
>> >
>> > I've seen several times in the group here that / should only be used
>> for CLJS namespaces, never for JS properties. So (Array/isArray ...) should
>> be (js/Array.isArray ...) instead. Is this correct? ClojureScript: Up and
>> running states that / can be used for JS module objects, which I take to
>> mean root-level objects - their example is (Raphael/color....) from the
>> Raphael JS library. Their discussion of the differences in this-binding is
>> confusing since it seems that / should be used for JS but only in the case
>> of top-level objects.
>>
>> This is correct. / in ClojureScript should only be used for
>> namespaces. Any place this isn't the case that isn't one of the
>> exceptional cases in ClojureScript should be considered an oversight.
>>
>> > confirm-ns in analyzer.clj contains a list of namespaces which should
>> not warn, i.e. which are implicitly required, as I understand it
>> (cljs.core, goog, Math, goog.string). CLJS itself contains examples like
>> (Math/floor...) - does this mean that JS module objects are considered
>> namespaces? Is this true of provide'd Google Closure namespaces (e.g.
>> goog.string, which is also used like this in the CLJS source)?
>>
>> It's probably worth making an exception for Math for code portability
>> reasons. The others are proper namespaces. ClojureScript doesn't know
>> anything about "JS Modules". If a JS library is not required as a
>> namespace then it should be accessed in the standard way, no /.
>>
>> > Using e.g. :include-macros, it's possible to have the same alias refer
>> both to a CLJS and CLJ namespace simultaneously. I'm assuming that in this
>> case, if a symbol name were to conflict, that the macro form would take
>> precedence in the head of a list (since macroexpansion happens before
>> evaluation) but the CLJS form would take precedence everywhere else. Is
>> this correct?
>>
>> That's correct and it's actually something we take advantage of to do
>> inlining arithmetic functions etc.
>>
>> > I'm assuming that my-namespace.cljs does not implicitly refer macros
>> from my-namespace.clj - is this correct?
>>
>> That is correct.
>>
>> David
>>
>> --
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "ClojureScript" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojurescript+unsubscr...@googlegroups.com.
>> To post to this group, send email to clojurescript@googlegroups.com.
>> Visit this group at http://groups.google.com/group/clojurescript.
>>
>
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to