ok, taking a look

On Tue, Jun 9, 2015 at 11:38 AM, 'Roberto Lublinerman' via GWT Contributors
<[email protected]> wrote:

> I tweaked the code a bit and now it should never output duplicated class
> literals. @Ray, Could you review the patch?
>
> On Tue, Jun 9, 2015 at 10:31 AM, 'Ray Cromwell' via GWT Contributors <
> [email protected]> wrote:
>
>> 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 <[email protected]> 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 <
>>> [email protected]> 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 <
>>>> [email protected]> 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 <[email protected]> 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 <
>>>>>> [email protected]> 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 <[email protected]
>>>>>>> > 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 <[email protected]>
>>>>>>>> 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
>>>>>>>>> [email protected].
>>>>>>>>> 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
>>>>>>> [email protected].
>>>>>>> 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
>>>>>> [email protected].
>>>>>> 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
>>>>> [email protected].
>>>>> 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
>>>> [email protected].
>>>> 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 [email protected]
>>> .
>>> 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 [email protected].
>> 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
>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAPVRV7ePAvWoXju-%3DOpm9F9%2B-yGWFRm9B_zMcHLzrjeES%3D0xFQ%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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAC7T7gkMW6J-j20-bAE8s_OSH2wDvPa%3D_iLnbLtMEUjc%2BThgtw%40mail.gmail.com
> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAC7T7gkMW6J-j20-bAE8s_OSH2wDvPa%3D_iLnbLtMEUjc%2BThgtw%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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAPVRV7deXmPm-D%2BamLqHukd%2BA7GOy2Ok-Fe-auG468EhgPeX6A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to