I said that optimize=0 fix errors, but I just compiled the project a get
the same bootstrap+lamba error. But with draftCompile the result looks ok.
// 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);
On Monday, October 26, 2015 at 8:27:41 PM UTC+1, Ignacio Baca Moreno-Torres
wrote:
>
> Bootstrap using lambda (fail)
>
> // 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)');
> }
>
>
> ProcessResponse using anonymous class (success).
>
> // 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’);
>
>
> ProcessResponse using lambda (fail).
>
> // 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');
>
> 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 know that this was easier if we have a sample project, but I can't
> reproduce! :( You can try, the ResourceRegistry case is plain java + guava.
> But when you copy to a clean project, the bug disappear.
> this.store = Suppliers.memoize(() -> from(resources.get()).uniqueIndex(
> ResourceDescriptor::getType));
> Resource descriptor is an interface with only one implementation where
> type is a Class<?> type field, a getType return this field. Anyway, I'm
> still trying to reproduce in a small project.
>
> On Monday, October 26, 2015 at 5:26:33 PM UTC+1, Roberto Lublinerman wrote:
>
> Also could you try the equivalent lamda that is not a method reference, i.e
>
> (parameters) -> this.processResponse(params);
>
> I looked at the way we construct the innerclasses corresponding to lambdas
> and it looks ok.
>
> It would really help if you could narrow it down to a small reprocase that
> I can run.
>
> On Sun, Oct 25, 2015 at 5:23 AM, 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)
>
> ...
--
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/168ed0d1-7abe-4f9f-b5e2-e238dd72e329%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.