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 + ")");
});
//noinspection Convert2Lambda GWT optimize incompatible
return service.get().getBootstrap().bootstrap().doOnNext(new Action1<EntryPointData>() {
@Override public void call(EntryPointData data) {
//noinspection Convert2Lambda,Anonymous2MethodRef IGP-1732 gwt optimize incompatible
tracker.add(heads.subscribe(new Action1<SubscriptionResponse>() {
@Override public void call(SubscriptionResponse response) {
ClientTelemetryStore.this.processResponse(response);
}
}));
private void processResponse(SubscriptionResponse response) {
Objects.requireNonNull(response, "response required");
Objects.requireNonNull(response.getUuid(), "response.uuid required");
if (uuid == null) uuid = response.getUuid(); // first response
else assert uuid.equals(response.getUuid()) : "subscription uuid mismatch";
boolean newUnits = false;
for (UnitDescriptor xs : response.getUnits()) {
newUnits |= processUnitCreate(xs);
}
for (ProtoUnit xs : response.getData()) {
processUnitUpdate(xs);
}
// accumulate change updates per response
if (newUnits) tStoresChange.onNext(tStores);
}
function Hak(a, b) { var c, d, e, f; lWl(b, 'response required'); lWl(null ._0(), 'response.uuid required'); a.g = null ._0(); c = false; for (f = null ._0()._0(); f.Nd(); ) { d = Vub(f.Od()); c = c | Iak(a, d) } for (e = null ._0()._0(); e.Nd(); ) { d = Uub(e.Od(), 6163); Jak(a, d) } c && lrm(a.d, a.c)}To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/9dd3316c-68f5-4ed9-8d8c-c7a34f123109%40googlegroups.com.--
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-co...@googlegroups.com.
Anonymous classes works correctly in both cases.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAPVRV7eeyyU54B5UQJpk-DKyeTTHxaUrnmZrE-HM32eXP-u1Bg%40mail.gmail.com.
Are you using a recent snapshot?
--
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-co...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/89de2084-b91d-415e-8f68-2bdb3159f702%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAC7T7gn0j4oyMbkCkYGWHG2H4zgVwALGGZqQUTb%3DBjEZ4DbSiQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/CABVWDC7nOgq10%3D8ospVDQUgw22ACDXy%2B0L6g%2BY9meoA4wG9GVw%40mail.gmail.com.
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAPVRV7cPuCTyuDQxphqwfng9YFbfhA8waEW2ozskrXrjdhg0FA%40mail.gmail.com.
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)}[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// 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);// 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);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" <google-web-toolkit-contri...@googlegroups.com> 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 <ign...@bacamt.com> 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.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit-contributors+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/89de2084-b91d-415e-8f68-2bdb3159f702%40googlegroups.com.
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAC7T7gn0j4oyMbkCkYGWHG2H4zgVwALGGZqQUTb%3DBjEZ4DbSiQ%40mail.gmail.com.
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/CABVWDC7nOgq10%3D8ospVDQUgw22ACDXy%2B0L6g%2BY9meoA4wG9GVw%40mail.gmail.com.
--
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+unsubscribe@googlegroups.com.
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)
}@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");
}
...
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)
}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);_.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)
}Could you compile both working and not working with -style PRETTY.
That would make it easier to map to Java.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit-co...@googlegroups.com.
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 google-web-toolkit-co...@googlegroups.com.
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.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit-co...@googlegroups.com.
To view this discussion on the web visit
...--
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.
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.To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit-co...@googlegroups.com.
// java
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 + ")");
});
// javascript + pretty
function $lambda$5(this$static) {
var lastArg;
null .$_nullMethod();
$resetSessionData(castTo(this$static.auth.get_1(), 400), false);
$setCustomization((lastArg = castTo(this$static.theme.get_1(), 1067),
null .$_nullMethod(),
lastArg));
castTo(this$static.analytics.get_1(), 6137).init_2(null .$_nullMethod() + ':' + null .$_nullMethod());
configureServer(null .$_nullMethod());
$fine_0(log_3, 'Bootstrap data loaded successfully (user=anonymous)');
}// java
tracker.add(heads.subscribe(new Action1<SubscriptionResponse>() {
@Override public void call(SubscriptionResponse response) {
ClientTelemetryStore.this.processResponse(response);
}
}));
// Javascript
defineClass(2064, 1, {}, ClientTelemetryStore$1);
_.call_0 = function call_145(response) {
$call_3(this, castToAllowJso(response, 6180));
};
function $call_3(this$static, response) {
$processResponse(this$static.this$01, response);
}
function $processResponse(this$static, response) {
var newUnits, xs, xs$iterator, xs$iterator0;
requireNonNull_0(response, 'response required');
requireNonNull_0(response.uuid, 'response.uuid required’);// Java
tracker.add(heads.subscribe(response -> { ClientTelemetryStore.this.processResponse(response); }));
// Javascript
defineClass(2063, 1, {}, ClientTelemetryStore$lambda$3$Type);
_.call_0 = function call_153(arg0) {
$processResponse(this.$$outer_0, throwClassCastExceptionUnlessNull(arg0));
};
function $processResponse(this$static, response) {
var newUnits, xs, xs$iterator, xs$iterator0;
requireNonNull_0(response, 'response required');
requireNonNull_0(null .$_nullMethod(), 'response.uuid required');...
// bootstrap case, lambda, pretty, draftCompile
_.lambda$5 = function lambda$5(data_0){
$clinit_ApplicationBootstrapper();
var account, user;
{
account = getAccount__Lshared_user_Account___devirtual$(data_0);
if (isNull_2(account))
castTo(this.auth.get_1(), 242).resetSessionData(false);
else
castTo(this.auth.get_1(), 242).setSessionData(account,getKeychain__LKeychain___devirtual$(data_0));
castTo(this.theme.get_1(), 951).setCustomization(getCustomization__LCustomization___devirtual$(data_0));
castTo(this.analytics.get_1(),7570).init_13(
getAnalyticsUserAccount__Ljava_lang_String___devirtual$(data_0) + ':' +
getAnalyticsDomainName__Ljava_lang_String___devirtual$(data_0));
configureServer(getReverseGeocodingUrl__Ljava_lang_String___devirtual$(data_0));
user = isNull_2(account)?'anonymous':getEmail__Ljava_lang_String___devirtual$(account);
log_10.fine('Bootstrap data loaded successfully (user=' + user + ')');
}
};
defineClass(1672, 1, {1:1}, ApplicationBootstrapper$lambda$5$Type);
_.call_0 = function call_3(arg0){
this.$$outer_0.lambda$5(arg0);
};
var Lclient_ApplicationBootstrapper$lambda$5$Type_2_classLit = createForClass('client', 'ApplicationBootstrapper/lambda$5$Type', 1672, Ljava_lang_Object_2_classLit);...
--
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-co...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/168ed0d1-7abe-4f9f-b5e2-e238dd72e329%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAPVRV7fRHJTUR4zFswOC82S%3DmH-%3DGdD3fCdFXBFVbRzbgLYE6g%40mail.gmail.com.
I did not use pretty style because I thought that this flag produces different result, I tested now and looks like the output is the same, but, I'm pretty sure that some flags changes this issues, optimize is obvious that fixes the problem, but I think that namespace=package also changes the result.
I think that with this new info I can create a sample case. Looks like the overlay without constructor/factory calls is the key point. We have lot of that overlays because we are using restygwt that uses overlays as return type, but you only need to add this overlays as a generic parameter in a MethodCallback interface, so the contractor/factory is never used in the application.
Although we are NOT using JsInterop, this comment look the key, thanks, hope next post will be a sample project.
That said, if you are using JsInterop, and you have a type that is never new'ed in Java, the compiler infers that is not instantiable and assumes it is always null and optimizes accordingly. Types originating from JavaScript need to be marked as JsType so that the compiler is aware and does not assume they are null.