forked from sbt/sbt
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The `binaryClassName` relation maintains mapping between source and binary class names. This mapping is needed to map binary dependencies back to source dependencies in case of separate compilation (where we see dependencies on class files). You can see that mapping being used in `binaryDependency` method implementation of Analysis callback. Previously, we would map class file to a source file it was produced from and then assume that dependency is on any (all) of classes declared in that class. Introduction of `binaryClassName` lets us map dependency back to source class name directly and remove that imprecision of dependency tracking. We maintain mapping between source and binary class names just for non-local classes. Check this sbt#1104 (comment) for the discussion of local and non-local classes. We also rework tracking of products in Analysis by introducing explicitly the concept of local and non-local products corresponding to local and non-local classes. This helps us to clarify for which classes we track source and binary class names.
- Loading branch information
1 parent
87fd296
commit b32166b
Showing
6 changed files
with
121 additions
and
70 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.