If we recompile a source file that contains a macro definition then we always assume that it's api has changed.
The merge/groupBy functionality requires understanding of the concepts of internalizing/externalizing dependencies:
During an incremental compilation run, a ClassfileManager deletes class files and is notified of generated class files.
Information about compiler runs accumulated since
clean command has been run.
Represents all configuration options for the incremental compiler itself and not the underlying Java/Scala compiler.
ModifiedNames are determined by comparing name hashes in two versions of an API representation.
A class that computes hashes for each group of definitions grouped by a simple name.
An APIChange that carries information about modified names.
Provides mappings between source files, generated classes (products), and binaries.
Provides information about files as they were at a specific time.
(Since version 0.13.1) Replaced by TextAnalysisFormat. OK to remove in 0.14.