Tuesday, September 1, 2015

Re: Why code ends up in Left over Soyc report? How to analyze?


"One" more thing (sorry for asking so much):
I noticed that my login component is contained in the left-over fragment instead of being exclusive to it's own splitpoint.
The Soyc report shows that it's because it's referenced by the Account component that is loaded in another splitpoint. The Account will try to retrieve the login name from the Login component in case it's now filled in yet.
Anyway: The Account will ask the LoginFacade singleton for the login name that will return null in case the LoginController isn't loaded, which is loaded in a split point. 

Why is the Account pushing the Login component in the left over? as the login component is isolated through a split point, and it's like it just "ignores" when looking at the soyc as it goes from the LoginFacade straight in the LoginController.
Note: the LoginController is the interface and the LoginControllerDefault is the implementation that is created through runAsync.

The static code analyzer sees a reference Account -> LoginFacade -> LoginController. Because code splitting analysis will happen at the end after all optimizations have been done it could actually also be Account -> LoginFacade -> LoginControllerDefault (optimizer has replaced the interface with its only implementation found on class path). Also methods have already be inlined and all that fun stuff.

As your if-statement can not be evaluated to either true or false at compile time / static code analysis, the code splitter analyzer will see a code path which requires the Login component and thus the code is pushed to left-over fragment.

-- J.

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment