Actually after initial cache filling all these units are used. I see preparing new TypeData only for changed units, when I modify them and hit Refresh in DevMode browser.
I've added lazy TypeData into CompiledClass and filling TypeData information instead of cache. I'm not sure however if adding TypeData into CompiledClass is perfect, it seems that we add information from one layer into other layer. http://gwt-code-reviews.appspot.com/1420809/diff/1/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java File dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java (right): http://gwt-code-reviews.appspot.com/1420809/diff/1/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java#newcode249 dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java:249: new ReferenceMap(AbstractReferenceMap.HARD, AbstractReferenceMap.SOFT); On 2011/04/26 15:30:36, scottb wrote:
Needs to be synchronized?
This code was removed. http://gwt-code-reviews.appspot.com/1420809/diff/1/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java#newcode467 dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java:467: Map<String, Object> values = Maps.newHashMap(annotData.getValues());
What's the motivation here?
This methods updates this annotation values map, so makes shared cached state invalid. So, we want to update copy instead. http://gwt-code-reviews.appspot.com/1420809/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors