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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to