a978c6be35
The problem may happen in case of multi-module projects: If a Java class was effectively unused in one module (A), but it's used in kt-files from the dependent module (B) then we wouldn't track the changes of the class while compiling A and don't recompile its usages in B. It happens because now we track only Java classes that were resolved by out frontend instead of all classes in the module that would be more correct but it might be rather slow. The idea is that whenever we see change in an untracked Java file we start tracking the classes in it and for the first time we mark all its content as changed.