sbt.inc

Analysis

trait Analysis extends AnyRef

The merge/groupBy functionality requires understanding of the concepts of internalizing/externalizing dependencies:

Say we have source files X, Y. And say we have some analysis A_X containing X as a source, and likewise for A_Y and Y. If X depends on Y then A_X contains an external dependency X -> Y.

However if we merge A_X and A_Y into a combined analysis A_XY, then A_XY contains X and Y as sources, and therefore X -> Y must be converted to an internal dependency in A_XY. We refer to this as "internalizing" the dependency.

The reverse transformation must occur if we group an analysis A_XY into A_X and A_Y, so that the dependency X->Y crosses the boundary. We refer to this as "externalizing" the dependency.

These transformations are complicated by the fact that internal dependencies are expressed as source file -> source file, but external dependencies are expressed as source file -> fully-qualified class name.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Analysis
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def ++(other: Analysis): Analysis

    Concatenates Analysis objects naively, i.

    Concatenates Analysis objects naively, i.e., doesn't internalize external deps on added files. See Analysis.merge.

  2. abstract def --(sources: Iterable[File]): Analysis

    Drops all analysis information for sources naively, i.

    Drops all analysis information for sources naively, i.e., doesn't externalize internal deps on removed files.

  3. abstract def addBinaryDep(src: File, dep: File, className: String, stamp: Stamp): Analysis

  4. abstract def addExternalDep(src: File, dep: String, api: Source, inherited: Boolean): Analysis

  5. abstract def addProduct(src: File, product: File, stamp: Stamp, name: String): Analysis

  6. abstract def addSource(src: File, api: Source, stamp: Stamp, directInternal: Iterable[File], inheritedInternal: Iterable[File], info: SourceInfo): Analysis

  7. abstract val apis: APIs

  8. abstract val compilations: Compilations

    Information about compiler runs accumulated since clean command has been run.

  9. abstract def copy(stamps: Stamps = stamps, apis: APIs = apis, relations: Relations = relations, infos: SourceInfos = infos, compilations: Compilations = compilations): Analysis

  10. abstract def groupBy[K](discriminator: (File) ⇒ K): Map[K, Analysis]

    Partitions this Analysis using the discriminator function.

    Partitions this Analysis using the discriminator function. Externalizes internal deps that cross partitions.

  11. abstract val infos: SourceInfos

  12. abstract val relations: Relations

    Mappings between sources, classes, and binaries.

  13. abstract val stamps: Stamps

Concrete Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  17. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  18. lazy val toString: String

    Definition Classes
    Analysis → AnyRef → Any
  19. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped