The context is during the compiler optimization loop, so this affects types
that are actually reachable from your application.  As the compile proceeds,
this list shrinks down as we do more and more optimization & elimintation.

What this patch does is effectively rewrite certain cast operations from an
abstract type to a concrete type, if we have determined that there's only
one possible concrete subclass.  For example, if CFoo is the only type in
your program that implements the IFoo interface, then:

(IFoo) someValue

is equivalent to writing:

(CFoo) someValue

It's more useful to express this in terms of the more derived type, because
you 'gain' local information by reason of global information.

On Mon, Mar 1, 2010 at 5:47 PM, Bart Guijt <bgu...@gmail.com> wrote:

> Scott/Ray,
>
> I like what you guys are squeezing out of the compiler!
>
> Just glancing over the sources doesn't give me a clear answer: This
> particular patch, is it *only* checking for types which are actually used in
> GWT client code? (e.g., what types are put in JTypeOracle?)
>
> Bart
>
> > Revision: 7636
> > Author: sco...@google.com
> > Date: Mon Mar  1 09:59:34 2010
> > Log: Better cast optimization where only one concrete type exists.
> > http://gwt-code-reviews.appspot.com/154807/show
> >
> > Review by: cromwellian
> >
> > http://code.google.com/p/google-web-toolkit/source/detail?r=7636
> >
> > Modified:
> > /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/TypeTightener.java
>
> --
> http://groups.google.com/group/Google-Web-Toolkit-Contributors
>

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to