I don't think it's an issue that blocks since people are most likely to use
SDM in uncompiled mode, and the 'error' can always be suppressed and turned
into a warning. At best, it might inhibit a const optimization in Closure
where it sees the same variable declared/assigned twice I think.


On Tue, Jun 9, 2015 at 10:27 AM, 'Roberto Lublinerman' via GWT Contributors
<google-web-toolkit-contributors@googlegroups.com> wrote:

> SDM expects that classes/interfaces get generated as a whole either all of
> it or none. As you know, class literals are not really part of the class
> but they are field in a separate synthetic class). Even SDM (with all
> optimizations off, no pruning at UnifyAST) if a reference to the class
> literal is not seen when generating the JS for the class then its class
> literal field wont be part of the JS for the class.
>
> For SDM it could only happen for interfaces (and maybe primitive types)
> because GwtAstBuilder will synthezise a getClass for each class containing
> reference to its class literals.
>
> The problem is further obscured because we (re)generate an epilogue each
> time and it contains all the class literals that are referenced from the
> code that is being recompiled whose classes where not part of the current
> compile. This serves a purpose in NON SDM where if only the class literal
> for a class is referenced, the class can be pruned.
>
> The only glitch remaining is that in SDM there might be duplicated class
> literals (but it should not affect the correctness). Is this an issue for
> Closure?
>
> On Tue, Jun 9, 2015 at 9:48 AM, 'Ray Cromwell' via GWT Contributors <
> google-web-toolkit-contributors@googlegroups.com> wrote:
>
>> Chris,
>>   My change actually fixed a bug which may have obscured a problem. There
>> were duplicate class literals being generated. So you'd get
>> InterfaceFoo.class twice in the output, and it may be in SDM you'd be
>> covered, but in regular compiled mode you'd get the duplicates which were
>> causing closure compiler issues.
>>
>>  Roberto,  Maybe this is an issue with
>> ControlFlowRecorder/RapidTypeAnalyzer and interface literals?
>>
>>
>> On Tue, Jun 9, 2015 at 9:43 AM, 'Chris DiGiano' via GWT Contributors <
>> google-web-toolkit-contributors@googlegroups.com> wrote:
>>
>>> @Ray, rolling back your change indeed fixed the problem (
>>> https://gwt-review.googlesource.com/#/c/12311/). How do you recommend
>>> we proceed? Anything I can do to help?
>>>
>>> @Roberto, thanks for your suggestion, but I had already tried restarting
>>> the code server and clearing the cache. This did not fix things.
>>>
>>> Chris
>>>
>>> On Mon, Jun 8, 2015 at 6:55 PM 'Roberto Lublinerman' via GWT
>>> Contributors <google-web-toolkit-contributors@googlegroups.com> wrote:
>>>
>>>> This might be due to the way we handle class literals. Class literals
>>>> for interfaces if not referenced during the initial compile might cause
>>>> that error. The error should go aways if you restart SDM.
>>>>
>>>> The offending sequence is
>>>>
>>>> 0) Suppose initially you have (interface A, class B and class C) and
>>>> start SDM.
>>>> 1) Now edit class B to add a reference to A.class and recompile with
>>>> SDM (do not touch A at this time nor anything that makes it recompile) .
>>>> This should work fine because the literals that are referenced but whose
>>>> classes where not part of this compile will be generated in the epilogue.
>>>> 2) Now edit class C in any way that does not make B or A recompile.
>>>> Here you will have an error like the one you described.
>>>>
>>>> If you restart SDM at this point it should work.
>>>>
>>>> I'll get a fix for this tomorrow.
>>>>
>>>>
>>>>
>>>>
>>>> On Mon, Jun 8, 2015 at 3:23 PM, 'Ray Cromwell' via GWT Contributors <
>>>> google-web-toolkit-contributors@googlegroups.com> wrote:
>>>>
>>>>> Ooops, wrong pointer (for external users) This one
>>>>> https://gwt-review.googlesource.com/#/c/12311/
>>>>>
>>>>>
>>>>> On Mon, Jun 8, 2015 at 3:14 PM, Ray Cromwell <cromwell...@google.com>
>>>>> wrote:
>>>>>
>>>>>> Try rolling back this CL and see if it fixes it (
>>>>>> https://critique.corp.google.com/#review/92873682/depot/google3/third_party/java_src/gwt/svn/trunk/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
>>>>>> )
>>>>>>
>>>>>>
>>>>>> On Mon, Jun 8, 2015 at 3:04 PM, Chris DiGiano <d...@google.com>
>>>>>> wrote:
>>>>>>
>>>>>>> I'm having trouble referencing a JsType interface when running under
>>>>>>> superdevmode. I'm trying to pass the JsType as a class reference to a
>>>>>>> method that uses the class to coerce the results into the expected type:
>>>>>>>
>>>>>>>     myelement.getCustomStampedElement("dialog",
>>>>>>> PolymerDialog.class).open();
>>>>>>>
>>>>>>> Unfortunately, in superdevmode (and only in SDM) I get this error:
>>>>>>>
>>>>>>>     Uncaught ReferenceError:
>>>>>>> Lcom_google_ccc_groups_rosters_frontend_polymer_jstype_PolymerDialog_2_classLit_0_g$
>>>>>>> is not defined
>>>>>>>
>>>>>>> PolymerDialog is declared like this:
>>>>>>>
>>>>>>> @JsType
>>>>>>> public interface PolymerDialog {
>>>>>>>   void open();
>>>>>>> }
>>>>>>>
>>>>>>> and getCustomStampedElement is defined like this:
>>>>>>>
>>>>>>>     /**
>>>>>>>      * Returns the element specified in this custom element's
>>>>>>> template that matches the given id
>>>>>>>      * with the result coerced to a non-vanilla element type.
>>>>>>> Equivalent to Polymer's $ function.
>>>>>>>      *
>>>>>>>      * @see
>>>>>>>      *     <a href="
>>>>>>> https://www.polymer-project.org/1.0/docs/devguide/local-dom.html#node-finding
>>>>>>> ">
>>>>>>>      *     Polymer automatic node finding</a>
>>>>>>>      */
>>>>>>>     <T> T getCustomStampedElement(String id, Class<T> type);
>>>>>>>
>>>>>>> It appears that the PolymerDialog JsType is being left out of the
>>>>>>> list of class literals available in superdevmode. Is this a bug? Any 
>>>>>>> ideas
>>>>>>> for workarounds?
>>>>>>>
>>>>>>> Chris DiGiano
>>>>>>>
>>>>>>>  --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "GWT Contributors" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to
>>>>>>> google-web-toolkit-contributors+unsubscr...@googlegroups.com.
>>>>>>> To view this discussion on the web visit
>>>>>>> https://groups.google.com/d/msgid/google-web-toolkit-contributors/9826758e-1b0f-4797-8902-738a1fade037%40googlegroups.com
>>>>>>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/9826758e-1b0f-4797-8902-738a1fade037%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>>
>>>>>  --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "GWT Contributors" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to
>>>>> google-web-toolkit-contributors+unsubscr...@googlegroups.com.
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAPVRV7fZhv0AkiPYqfM2WWaW8zFvdgk-BYEucwRP8k4ewXEp6w%40mail.gmail.com
>>>>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAPVRV7fZhv0AkiPYqfM2WWaW8zFvdgk-BYEucwRP8k4ewXEp6w%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "GWT Contributors" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to
>>>> google-web-toolkit-contributors+unsubscr...@googlegroups.com.
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAC7T7gk_U85%2B6z1QK9XpAKEXbBJgviBfZ1j0kgE8_pYZsV6Y3g%40mail.gmail.com
>>>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAC7T7gk_U85%2B6z1QK9XpAKEXbBJgviBfZ1j0kgE8_pYZsV6Y3g%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "GWT Contributors" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to google-web-toolkit-contributors+unsubscr...@googlegroups.com
>>> .
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAHbZCdNJ6mBv%2BRwso0z_OSNF7531b9rSOgLE3zJ%3DvB7FxkFD0A%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAHbZCdNJ6mBv%2BRwso0z_OSNF7531b9rSOgLE3zJ%3DvB7FxkFD0A%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "GWT Contributors" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAPVRV7cU1HQb6Ns2U967CxuomGHvxxGt6YtmJxaOea6n8X_poQ%40mail.gmail.com
>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAPVRV7cU1HQb6Ns2U967CxuomGHvxxGt6YtmJxaOea6n8X_poQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "GWT Contributors" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAC7T7gmQh2YnD7nUcJ8UtEn7eAaWik1Ya%2BmwDEQNz-De%2Bm4UVQ%40mail.gmail.com
> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAC7T7gmQh2YnD7nUcJ8UtEn7eAaWik1Ya%2BmwDEQNz-De%2Bm4UVQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAPVRV7ePAvWoXju-%3DOpm9F9%2B-yGWFRm9B_zMcHLzrjeES%3D0xFQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to