> > Both these downsides can be addressed: For example we might treat a class > with a constant field or a class for a source-only annotation as a > dependency of every source file, so that when one of these things change, > we would recompile everything. > > > We can fine-tune this: for constants we only need to recompile classes > where the constant appears in the class’s constant pool, and probably only > if the class has code. >
This is a lovely idea. I'm a bit worried about this contant-inlining limitation because of those legacy codebases obsessed on turning every literal into a constant. This trick can potentially mitigate it nicely. -- Szczepan Faber Principal engineer@gradle; Founder@mockito