gwt /
gwt /
9da4d05b62d7d3cb48ccd03de7b4ad676e2318bd Makes SDM+perFileCompile correctly handle switching browsers.
Previously the MinimalRebuildCache stored some cache information on a
per-permutation basis using permutation ID. But since SDM always
compiled just 1 permutation (even when switching browsers) the compile
process always ended up (improperly) using the same cache info.
Got rid of the nested MinimalRebuildCache.PermutationRebuildCache class.
Switched to SDM managing a map of BindingPropertySet <->
MinimalRebuildCache pairs.
Previously the "unit cache miss" process was being reused to mark "known
modified types" in the MinimalRebuildCache, but this was insufficient
when switching between browsers since it would notice just the types
changed since the last compile as opposed to the types changed since the
last compile specifically for this set of binding properties. This was
corrected by changing to have each MinimalRebuildCache instance
internally track it's own view of disk type modification times and
generated type content hashes.
As a side effect this changed modified type detection from being a side
effect of CompilationStateBuilder.doBuildFrom() to a side effect of
Precompile.precompile(), which created a need to move a lot of test
assertions from modified/stale types from CompilationStateBuilderTest to
CompilerTest. The assertions are much more detailed.
Added a noop subclass of MinimalRebuildCache to save time in regular
monolithic compiles.
Change-Id: I73001450d96749380e553cd70579ee9828e9620d
Review-Link: https://gwt-review.googlesource.com/#/c/8983/
20 files changed