Lookup

sbt.internal.inc.Lookup
trait Lookup extends ExternalLookup

A trait that encapsulates looking up elements on a classpath and looking up an external (for another subproject) Analysis instance.

Attributes

Graph
Supertypes
trait Lookup
class Object
trait Matchable
class Any

Members list

Value members

Abstract methods

def analyses: Vector[CompileAnalysis]
def changedClasspathHash: Option[Vector[FileHash]]

Returns the current classpath if the classpath has changed from the last compilation.

Returns the current classpath if the classpath has changed from the last compilation.

Attributes

def lookupAnalysis(binaryClassName: String): Option[CompileAnalysis]

Return an Analysis instance that has the given binary class name registered as a product.

Return an Analysis instance that has the given binary class name registered as a product.

Attributes

def lookupOnClasspath(binaryClassName: String): Option[VirtualFileRef]

Lookup an element on the classpath corresponding to a given binary class name. If found class file is stored in a jar file, the jar file is returned.

Lookup an element on the classpath corresponding to a given binary class name. If found class file is stored in a jar file, the jar file is returned.

Attributes

Concrete methods

override def lookupAnalyzedClass(binaryClassName: String, file: Option[VirtualFileRef]): Option[AnalyzedClass]

Find the external AnalyzedClass (from another analysis) given a class name and, if available, the jar file (or class file) the class comes from.

Find the external AnalyzedClass (from another analysis) given a class name and, if available, the jar file (or class file) the class comes from.

Attributes

Returns

The AnalyzedClass associated with the given class name, if one is found. None => Found class somewhere outside of project. No analysis possible. Some(analyzed) if analyzed.provenance.isEmpty => Couldn't find it. Some(analyzed) => good

Definition Classes

Inherited methods

def changedBinaries(previousAnalysis: CompileAnalysis): Option[Set[VirtualFileRef]]

Used to provide information from external tools into sbt (e.g. IDEs)

Used to provide information from external tools into sbt (e.g. IDEs)

Attributes

Returns

None if is unable to determine what was changed, changes otherwise

Inherited from:
ExternalLookup
def changedSources(previousAnalysis: CompileAnalysis): Option[Changes[VirtualFileRef]]

Used to provide information from external tools into sbt (e.g. IDEs)

Used to provide information from external tools into sbt (e.g. IDEs)

Attributes

Returns

None if is unable to determine what was changed, changes otherwise

Inherited from:
ExternalLookup
override def getChangedBinaries(previousAnalysis: CompileAnalysis): Optional[Set[VirtualFileRef]]

Attributes

Definition Classes
ExternalLookup -> Lookup
Inherited from:
ExternalLookup
override def getChangedSources(previousAnalysis: CompileAnalysis): Optional[Changes[VirtualFileRef]]

Attributes

Definition Classes
ExternalLookup -> Lookup
Inherited from:
ExternalLookup
override def getRemovedProducts(previousAnalysis: CompileAnalysis): Optional[Set[VirtualFileRef]]

Attributes

Definition Classes
ExternalLookup -> Lookup
Inherited from:
ExternalLookup
def hashClasspath(x$0: Array[VirtualFile]): Optional[Array[FileHash]]

Attributes

Inherited from:
Lookup
def removedProducts(previousAnalysis: CompileAnalysis): Option[Set[VirtualFileRef]]

Used to provide information from external tools into sbt (e.g. IDEs)

Used to provide information from external tools into sbt (e.g. IDEs)

Attributes

Returns

None if is unable to determine what was changed, changes otherwise

Inherited from:
ExternalLookup
def shouldDoEarlyOutput(analysis: CompileAnalysis): Boolean

Used to override whether we should proceed with making an early output.

Used to override whether we should proceed with making an early output.

By default we do not make an early output in the presence of any macros because macro expansion (in a downstream subproject) requires the macro implementation to be present in bytecode form, rather than just just a pickle-containing JAR.

If you're careful micromanaging the separation of macro implementations (e.g. def impl(c: Context) = ...) from macro definitions (e.g. def foo: Unit = macro Foo.impl) you can safely override this.

Attributes

Inherited from:
ExternalLookup
override def shouldDoIncrementalCompilation(changedClasses: Set[String], previousAnalysis: CompileAnalysis): Boolean

Attributes

Definition Classes
ExternalLookup -> Lookup
Inherited from:
ExternalLookup
def shouldDoIncrementalCompilation(changedClasses: Set[String], analysis: CompileAnalysis): Boolean

Used to provide information from external tools into sbt (e.g. IDEs)

Used to provide information from external tools into sbt (e.g. IDEs)

Attributes

Returns

API changes

Inherited from:
ExternalLookup