Could you compile both working and not working with -style PRETTY.

That would make it easier to map to Java.
On Oct 25, 2015 05:23, "Ignacio Baca Moreno-Torres" <[email protected]>
wrote:

> function ILe(a) {
>   var b;
>   b = Erb(PDl(a.a, 'REFXXX store'), 164);
>   Erb(PDl(Erb(b.De(), 82), 'REFXXX store.get()'), 82);
>   return Erb(PDl(undefined, 'REFXXX store.get().values()'), 6)
> }
>
> This was the actual b.De() function.
> u9c(701, 1, { 164: 1, 701: 1, 3: 1 }, Uh);
> _.De = function Vh() {
>     var a;
>     if (!this.b) {
>         if (!this.b) {
>             a = this.a.De();
>             this.c = a;
>             this.b = true;
>             return a
>         }
>     }
>     return this.c
> };
> _.Bd = function Wh() { return 'Suppliers.memoize(' + this.a + ')' };
> _.b = false;
> var ltb = epl(tbm, 'Suppliers/MemoizingSupplier', 701);
>
> And the highlighted this.a.De() call the Supplier.get(). (this return
> a,b,c; is pretty obscure!, equivalent to a;b;return c;)
> _.De = function RLe() {
>     var a, b, c;
>     return a = Erb(iEl(this.a, 'REF003 resources'), 38),
>       b = Erb(iEl(Erb(a.De(), 62), 'REF004 resources.get()'), 62),
>       c = Vu(new $u(b,b), new TLe),
>       Erb(iEl(c, 'REF001'), 82)
> }
>
>
> On Sunday, October 25, 2015 at 12:18:01 PM UTC+1, Ignacio Baca
> Moreno-Torres wrote:
>>
>> Sorry, this is pretty confusing, just comment that the lamba cases
>> described previously still (in HEAD) get solved when lamdas are changed to
>> anonymous classes.
>>
>> On Sunday, October 25, 2015 at 12:08:09 PM UTC+1, Ignacio Baca
>> Moreno-Torres wrote:
>>>
>>> Next, I show two methods, this.getResource and the 'this' constructor.
>>> getResource get wrong because the output never assigns the map variable.
>>> And the constructor is showed to see how this.store is assigned. This time,
>>> the anonymous class do not solves the problem.
>>>
>>>
>>> public Collection<ResourceDescriptor<?>> getResources() {
>>>     Supplier<Map<Class<?>, ResourceDescriptor<?>>> store = 
>>> requireNonNull(this.store, "REFXXX store");
>>>     Map<Class<?>, ResourceDescriptor<?>> map = requireNonNull(store.get(), 
>>> "REFXXX store.get()");
>>>     return requireNonNull(map.values(),"REFXXX store.get().values()");
>>>
>>> }
>>>
>>>
>>> function ILe(a) {
>>>   var b;
>>>   b = Erb(PDl(a.a, 'REFXXX store'), 164);
>>>   *Erb(PDl(Erb(b.De(), 82), 'REFXXX store.get()'), 82);*
>>>   return Erb(PDl(undefined, 'REFXXX store.get().values()'), 6)
>>> }
>>>
>>>
>>> And this is how this.store is initialized (also with lot of
>>> requireNotNull to easier matching between java and js)
>>>
>>> @Inject
>>> public ResourceRegistry(Provider<Set<ResourceDescriptor<?>>> resources) {
>>>     this.store = requireNonNull(Suppliers.memoize(new 
>>> Supplier<Map<Class<?>, ResourceDescriptor<?>>>() {
>>>         @Override public Map<Class<?>, ResourceDescriptor<?>> get() {
>>>             Provider<Set<ResourceDescriptor<?>>> ref003 = 
>>> requireNonNull(resources, "REF003 resources");
>>>             Set<ResourceDescriptor<?>> ref004 = 
>>> requireNonNull(ref003.get(), "REF004 resources.get()");
>>>             ImmutableMap<Class<?>, ResourceDescriptor<?>> ref002 = 
>>> from(ref004).uniqueIndex(
>>>                     new Function<ResourceDescriptor<?>, Class<?>>() {
>>>                         @Nullable @Override
>>>                         public Class<?> apply(@Nullable 
>>> ResourceDescriptor<?> resourceDescriptor) {
>>>                             return 
>>> requireNonNull(resourceDescriptor.getType(), "REF002");
>>>                         }
>>>                     });
>>>             return requireNonNull(ref002, "REF001");
>>>         }
>>>     }), "REF000");
>>> }
>>>
>>>
>>> o9c(2629, 1, Lwm, KLe);
>>> _.De = function LLe() {
>>>     var a, b, c;
>>>     return a = Erb(PDl(this.a, 'REF003 resources'), 38),
>>>     b = Erb(PDl(Erb(a.De(), 62), 'REF004 resources.get()'), 62),
>>>     c = Vu(new $u(b,b), new NLe),
>>>     Erb(PDl(c, 'REF001'), 82)
>>> };
>>> var s_b = Lol(dvm, 'ResourceRegistry/1', 2629);
>>>
>>> function MLe(a) {
>>>     return Erb(PDl(a.bw(), 'REF002'), 23)
>>> }
>>>
>>> function JLe(a) {
>>>     this.a = Erb(PDl(Th(new KLe(a)), 'REF000'), 164)
>>> }
>>>
>>> I think this is the highlighted b.De
>>>
>>> var ltb = Lol(Uam, 'Suppliers/MemoizingSupplier', 701);
>>> o9c(702, 1, {
>>>     164: 1,
>>>     702: 1,
>>>     3: 1
>>> }, Xh);
>>> _.zd = function Yh(a) {
>>>     var b;
>>>     if (Mrb(a, 702)) {
>>>         b = Erb(a, 702);
>>>         return Jf(this.a, b.a)
>>>     }
>>>     return false
>>> };
>>> _.De = function Zh() {
>>>     return this.a
>>> }
>>> ...
>>>
>>>
>>> On Sunday, October 25, 2015 at 10:43:58 AM UTC+1, Ignacio Baca
>>> Moreno-Torres wrote:
>>>>
>>>> Recompiled using HEAD dcea13b1d223513418c90c34324ac6929059de3c, with no
>>>> JsInterop and optimization 1.
>>>> function $Xj(a, b) {
>>>>     var c, d, e, f;
>>>>     JDl(b, 'response required');
>>>>     JDl(null .V0(), 'response.uuid required');
>>>>     a.g = null .V0();
>>>>     c = false;
>>>>     for (f = null .V0().V0(); f.Md(); ) {
>>>>         d = Irb(f.Nd());
>>>>         c = c | _Xj(a, d)
>>>>     }
>>>>     for (e = null .V0().V0(); e.Md(); ) {
>>>>         d = Frb(e.Nd(), 6163);
>>>>         aYj(a, d)
>>>>     }
>>>>     c && B8l(a.d, a.c)
>>>> }
>>>>
>>>> net.ltgt.gwt:gwt-maven-plugin configuration
>>>> [DEBUG] Configuring mojo
>>>> 'net.ltgt.gwt.maven:gwt-maven-plugin:1.0-rc-2:compile' with basic
>>>> configurator -->
>>>> [DEBUG] (f) compilerArgs = [-gen, ???/target/gwt/gen]
>>>> [DEBUG] (f) deploy = ???/target/gwt/deploy
>>>> [DEBUG] (f) draftCompile = false
>>>> [DEBUG] (f) extra = ???/target/gwt/extra
>>>> [DEBUG] (f) failOnError = true
>>>> [DEBUG] (f) forceCompilation = false
>>>> [DEBUG] (f) moduleName = com.app.DraftBundle
>>>> [DEBUG] (f) optimize = 1
>>>> [DEBUG] (f) project = MavenProject: ???/pom.xml
>>>> [DEBUG] (f) skipCompilation = false
>>>> [DEBUG] (f) sourceLevel = 1.8
>>>> [DEBUG] (f) staleMillis = 0
>>>> [DEBUG] (f) style = OBFUSCATED
>>>> [DEBUG] (f) webappDirectory = ???/target/app
>>>> [DEBUG] (f) workDir = ???/target/gwt/work
>>>>
>>>> more context (removed long packages_names)
>>>> // Java Code (this lambda) -----v
>>>> tracker.add(heads.subscribe(ClientTelemetryStore.this::processResponse
>>>> ));
>>>> // Javascript Output
>>>> o9c(2061, 1, {}, M5j);
>>>> _.$u = function L5j(a) { $Xj(this.a, a) };
>>>> var oQc = Fol(o1m,
>>>> 'ClientTelemetryStore/ClientTelemetryStore$__$Action1$__$instance$ClientTelemetryStore$processResponse__LTelemetrySubscription$SubscriptionResponse_2V$Type'
>>>> , 2061);
>>>>
>>>> And... trying to add this extra context, one more failure come up. This
>>>> one has appeared after updating to the HEAD dcea13b from 7129828 (sorry, I
>>>> said to roberto that I was using 94e4597, but I was really using
>>>> *7129828 *7 August 2015 at 13:08:36 GMT+2).
>>>>
>>>> The new nullified method; although this time is an undefined. So
>>>> repeating; this error came up just updating from 7129828 to dcea13b.
>>>> // Java Code                                             (this lambda)
>>>> -------V
>>>> this.store = Suppliers.memoize(() -> from(resources.get()).uniqueIndex(
>>>> ResourceDescriptor::getType));
>>>> // Javasript Output
>>>> o9c(1639, 1, pcm, mRe);
>>>> _.Xd = function lRe(a) { return undefined };
>>>> var x0b = Fol(Yum,
>>>> 'ResourceDescriptor/ResourceRegistry$__$Function$__$static$ResourceDescriptor$getType__LClass_2$Type'
>>>> , 1639);
>>>>
>>>> On Sunday, October 25, 2015 at 3:42:10 AM UTC+1, Roberto Lublinerman
>>>> wrote:
>>>>
>>>> The only thing I can think of is that when the class is created for the
>>>> lambda in gwtastbuilder, the super class or implemented interfaces are not
>>>> set up correctly.
>>>>
>>>> I'll check later to see if that is there case.
>>>> On Oct 24, 2015 19:07, "'Ray Cromwell' via GWT Contributors" <
>>>> [email protected]> wrote:
>>>>
>>>> Are you using @JsFunction/JsInterop? Unless the implementation has
>>>> changed recently, Lambda's are supported in GWT by essentially synthesizing
>>>> static inner classes, and so if static inner classes work, but lambda's
>>>> don't, it's really weird. The optimization stages no nothing of lambdas and
>>>> only see Java classes. The exception is @JsFunction.
>>>>
>>>>
>>>> On Sat, Oct 24, 2015 at 2:37 PM, Ignacio Baca Moreno-Torres <
>>>> [email protected]> wrote:
>>>>
>>>> This was from 94e45975a06ece1b8d65541aaabf833f9d8c7b07 (6 October 2015
>>>> at 04:29:19 GMT+2), I'll try tomorrow with HEAD, but looking the
>>>> commits looks improbable that the problem has been solved.
>>>>
>>>> On Sat, Oct 24, 2015 at 10:30 PM 'Roberto Lublinerman' via GWT
>>>> Contributors <[email protected]> wrote:
>>>>
>>>> Are you using a recent snapshot?
>>>> On Oct 24, 2015 04:40, "Ignacio Baca Moreno-Torres" <[email protected]>
>>>> wrote:
>>>>
>>>> There is a bug which optimizations nullify variables which might not be
>>>> null. I'm trying to reproduce the error outside our app but I can't, I'll
>>>> continue trying, but for now I going to describe the problem.
>>>>
>>>> return service.get().getBootstrap().bootstrap().doOnNext(data -> {
>>>>     Account account = data.getAccount();
>>>>     if (account == null) auth.get().resetSessionData(false);
>>>>     else auth.get().setSessionData(account, data.getKeychain());
>>>>     theme.get().setCustomization(data.getCustomization());
>>>>     analytics.get().init(data.getAnalyticsUserAccount() + ":" + 
>>>> data.getAnalyticsDomainName());
>>>>     OsmQueryResolver.configureServer(data.getReverseGeocodingUrl());
>>>>     final String user = account == null ? "anonymous" : account.getEmail();
>>>>     log.fine("Bootstrap data loaded successfully (user=" + user + ")");
>>>> });
>>>>
>>>> Produces the next js code.
>>>> function fie(a) {
>>>>     var b;
>>>>     null .b1();
>>>>     bdf(Tub(a.b.Ee(), 388), false);
>>>>     Ujf((b = Tub(a.k.Ee(), 937),
>>>>     null .b1(),
>>>>     b));
>>>>     Tub(a.a.Ee(), 6122).VI(null .b1() + ':' + null .b1());
>>>>     Ivg(null .b1());
>>>>     U_l(cie, 'Bootstrap data loaded successfully (user=anonymous)')
>>>> }
>>>> BUT! if compile without optimizations (ex. using draft compile) or if
>>>> anonymous class is used instead of a lambda, the output js is ok. Next
>>>> block contains my current working code.
>>>>
>>>> //noinspection Convert2Lambda GWT optimize incompatible
>>>> return service.get().getBootstrap().bootstrap().doOnNext(new 
>>>> Action1<EntryPointData>() {
>>>>     @Override public void call(EntryPointData data) {
>>>>
>>>>
>>>> The bootstrap method is a call of reactive restygwt service using this
>>>> proyect https://github.com/ibaca/restygwt-rxadapter. I.e. bootstrap
>>>> return an Observable which end up making a XMLHttpRequest (a lot of layer
>>>> in between), and data is a EntryPoint interface, and the implementation
>>>> received is an overlay.
>>>>
>>>> I know that with this info is almost impossible to discover the
>>>> problem, but I put here to see if someone else have similar problem, and
>>>> maybe some gwt compiler developer just seeing that may see where is the
>>>> problem (improbable). If a get reproduced in a sample project I write back
>>>> here.
>>>>
>>>> --
>>>> 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
>>>>
>>>> ...
>>>
>>> --
> 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/bd26339f-1852-44dc-8e30-58201f79b284%40googlegroups.com
> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/bd26339f-1852-44dc-8e30-58201f79b284%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/CAC7T7gm4BA9qR-rY30%3DrHsQ5zTdh7uAHExLA%3DNzSpojBbxdqtw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to