mirror of https://github.com/sbt/sbt.git
Document ExtractAPI's handling of private members.
Mention that private members are being extracted and included in the api structures but ignored in many other parts of incremental compiler. I've made a mistake of assuming that private members are ignored at api extraction time. This manifested itself as bug #2324.
This commit is contained in:
parent
ae2ddab009
commit
81c0d3daa9
|
|
@ -10,7 +10,7 @@ import scala.collection.mutable.{ HashMap, HashSet, ListBuffer }
|
|||
import xsbti.api.{ ClassLike, DefinitionType, PathComponent, SimpleType }
|
||||
|
||||
/**
|
||||
* Extracts API representation out of Symbols and Types.
|
||||
* Extracts full (including private members) API representation out of Symbols and Types.
|
||||
*
|
||||
* Each compilation unit should be processed by a fresh instance of this class.
|
||||
*
|
||||
|
|
@ -18,6 +18,12 @@ import xsbti.api.{ ClassLike, DefinitionType, PathComponent, SimpleType }
|
|||
* it has a call to `addInheritedDependencies` method defined in CallbackGlobal. In the future
|
||||
* we should refactor this code so inherited dependencies are just accumulated in a buffer and
|
||||
* exposed to a client that can pass them to an instance of CallbackGlobal it holds.
|
||||
*
|
||||
* NOTE: This class extract *full* API representation. In most of other places in the incremental compiler,
|
||||
* only non-private (accessible from other compilation units) members are relevant. Other parts of the
|
||||
* incremental compiler filter out private definitions before processing API structures. Check SameAPI for
|
||||
* an example.
|
||||
*
|
||||
*/
|
||||
class ExtractAPI[GlobalType <: CallbackGlobal](val global: GlobalType,
|
||||
// Tracks the source file associated with the CompilationUnit currently being processed by the API phase.
|
||||
|
|
|
|||
Loading…
Reference in New Issue