case class CompileProducts(readOnlyClassesDir: Path, newClassesDir: Path, resultForDependentCompilationsInSameRun: PreviousResult, resultForFutureCompilationRuns: PreviousResult, invalidatedCompileProducts: Set[File], generatedRelativeClassFilePaths: Map[String, File], definedMacroSymbols: Array[String]) extends Product with Serializable
Collects the products generated during the compilation of a project.
It has two previous results. The first is to be used by the projects that depend on this compilation and are being compiled during this run. This result is used because it contains class file locations referring to both classes directories and because these two classes directories will be in the dependency classpath of dependent compilations.
The latter previous result is used for future client compilations. Future
compilations will not see the readOnlyClassesDir
and newClassesDir
in
this abstraction, but instead see an aggregated read-only classes directory.
newClassesDir
will become this read-only classes directory by the time of
that compilation because all compilation products (class files, semanticdb
files, sjsir files, tasty files, nir files, etc) in the current
readOnlyClassesDir
that are not in newClassesDir
will be copied over.
Therefore,the result that is used for compilation will have all class file
references rebased to newClassesDir
.
We use different previous results because we want to remove the cost of
copying class files from readOnlyClassesDir
to newClassesDir
before
starting dependent compilations. This scheme allows us to be fast and
perform as much IO work in the background as possible.
- Alphabetic
- By Inheritance
- CompileProducts
- Serializable
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new CompileProducts(readOnlyClassesDir: Path, newClassesDir: Path, resultForDependentCompilationsInSameRun: PreviousResult, resultForFutureCompilationRuns: PreviousResult, invalidatedCompileProducts: Set[File], generatedRelativeClassFilePaths: Map[String, File], definedMacroSymbols: Array[String])
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- val definedMacroSymbols: Array[String]
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- val generatedRelativeClassFilePaths: Map[String, File]
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- val invalidatedCompileProducts: Set[File]
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- val newClassesDir: Path
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- val readOnlyClassesDir: Path
- val resultForDependentCompilationsInSameRun: PreviousResult
- val resultForFutureCompilationRuns: PreviousResult
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )