Thank you very much for the quick response. I agree, a simple warning should be sufficient.
Cheers. Andrey 2014-12-28 23:25 GMT+01:00 David Nolen <[email protected]>: > Known issue: http://dev.clojure.org/jira/browse/CLJS-891 > > The problem is fundamental to Google Closure's approach to namespaces, > you'll encounter this even when you write Closure compatible > JavaScript. > > A simple solution is just a compiler warning about such cases. I would > entertain a patch that does minimal munging in this cases - we would > still want to emit some kind of notice that a clash was detected and > that the namespace or definition name was modified to avoid. > > David > > On Sun, Dec 28, 2014 at 5:15 PM, Andrey Antukh <[email protected]> wrote: > > Hi! > > > > I'm having a strange behavior, and I do not know if it is expected or > not. > > > > I'll try to explain the case. I have two files: > > > > foobar/views/contact.cljs > > > > (ns foobar.views.contact) > > > > (defn contact-component > > [state owner] > > ...) > > > > foobar/views.cljs > > > > (ns foobar.views > > (:require [foobar.views.contact :refer [contact-component]])) > > > > (defn contact > > [state, owner] > > ...) > > > > This generates that js: > > > > goog.provide("foobar.views.contact"); > > // ... > > foobar.views.contact.contact_component = function > contact_component(state, > > owner) { > > // ... > > } > > > > goog.provide("foobar.views"); > > // ... > > goog.require("foobar.views.contact"); > > // ... > > > > foobar.views.contact = function contact(state, owner) { > > console.log("test", foobar.views.contact.contact_component); > > // ... > > om.core.build.call(null, foobar.views.contact.contact_component, > state)], > > null); > > // obviously here foobar.views.contact.contact_component is null or > > undefined > > // because foobar.views.contact is overwriten by this function. > > // ... > > } > > > > This makes impossible have a function name in one namespace that matches > > with nested namespace name. > > I don't know if this common use case or not (maybe I'm doing it > wrong...). > > > > I'm using clojurescript 2511 (with :whitespace optimization) > > > > Cheers. > > Andrey > > > > -- > > Andrey Antukh - Андрей Антух - <[email protected]> / > > <[email protected]> > > http://www.niwi.be > > https://github.com/niwibe > > > > -- > > 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 [email protected]. > > To post to this group, send email to [email protected]. > > 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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/clojurescript. > -- Andrey Antukh - Андрей Антух - <[email protected]> / <[email protected] > http://www.niwi.be <http://www.niwi.be/page/about/> https://github.com/niwibe -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/clojurescript.
