final case class CompileBundle(project: Project, clientClassesDir: AbsolutePath, dependenciesData: CompileDependenciesData, javaSources: List[AbsolutePath], scalaSources: List[AbsolutePath], uniqueInputs: UniqueCompileInputs, cancelCompilation: Promise[Unit], reporter: ObservedReporter, logger: ObservedLogger[Logger], mirror: Observable[Either[ReporterAction, LoggerAction]], lastSuccessful: LastSuccessfulResult, latestResult: Result, tracer: BraveTracer) extends Product with Serializable

Define a bundle of high-level information about a project that is going to be compiled. It packs several derived data from the project and makes it available both to the implementation of compile in bloop.engine.tasks.CompileTask and the logic that runs the compile graph. The latter needs information about Java and Scala sources to appropriately (and efficiently) do build pipelining in mixed Java and Scala setups when enabled.

A CompileBundle has the same hashCode() and equals() than Project for performance reasons. CompileBundle is a class that is heavily used in the guts of the compilation logic (namely CompileGraph and bloop.engine.tasks.CompileTask). Because these classes depend on a fast hashCode() to cache dags and other instances that contain bundles, our implementation of hashCode() is as fast as the hash code of a project, which is cached. Using project's hash code does not pose any problem given that the rest of the members of a bundle are derived from a project.

project

The project to compile.

clientClassesDir

The external client-owned classes directory.

dependenciesData

An entity that abstract over all the data of dependent projects, which is required to create a full classpath.

javaSources

A list of Java sources in the project.

scalaSources

A list of Scala sources in the project.

cancelCompilation

A promise that can be completed to cancel the compilation.

reporter

A reporter instance that will register every reporter action produced by the compilation started by this compile bundle.

logger

A logger instance that will register every logger action produced by the compilation started by this compile bundle.

mirror

An observable that contains all reporter and logger actions.

lastSuccessful

An instance of the last successful result. CompileGraph will replace the default empty result with the most recent successful result that needs to be used for the compilation.

latestResult

The latest result registered by the client. Required because the reporting of diagnostics might be stateful (BSP diagnostics reporting is, for example) and some of the state is contain in this result.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CompileBundle
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new CompileBundle(project: Project, clientClassesDir: AbsolutePath, dependenciesData: CompileDependenciesData, javaSources: List[AbsolutePath], scalaSources: List[AbsolutePath], uniqueInputs: UniqueCompileInputs, cancelCompilation: Promise[Unit], reporter: ObservedReporter, logger: ObservedLogger[Logger], mirror: Observable[Either[ReporterAction, LoggerAction]], lastSuccessful: LastSuccessfulResult, latestResult: Result, tracer: BraveTracer)

    project

    The project to compile.

    clientClassesDir

    The external client-owned classes directory.

    dependenciesData

    An entity that abstract over all the data of dependent projects, which is required to create a full classpath.

    javaSources

    A list of Java sources in the project.

    scalaSources

    A list of Scala sources in the project.

    cancelCompilation

    A promise that can be completed to cancel the compilation.

    reporter

    A reporter instance that will register every reporter action produced by the compilation started by this compile bundle.

    logger

    A logger instance that will register every logger action produced by the compilation started by this compile bundle.

    mirror

    An observable that contains all reporter and logger actions.

    lastSuccessful

    An instance of the last successful result. CompileGraph will replace the default empty result with the most recent successful result that needs to be used for the compilation.

    latestResult

    The latest result registered by the client. Required because the reporting of diagnostics might be stateful (BSP diagnostics reporting is, for example) and some of the state is contain in this result.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. val cancelCompilation: Promise[Unit]
  6. val clientClassesDir: AbsolutePath
  7. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  8. val dependenciesData: CompileDependenciesData
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(other: Any): Boolean
    Definition Classes
    CompileBundle → Equals → AnyRef → Any
  11. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. val hashCode: Int
    Definition Classes
    CompileBundle → AnyRef → Any
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. val isJavaOnly: Boolean
  16. val javaSources: List[AbsolutePath]
  17. val lastSuccessful: LastSuccessfulResult
  18. val latestResult: Result
  19. val logger: ObservedLogger[Logger]
  20. val mirror: Observable[Either[ReporterAction, LoggerAction]]
  21. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  22. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  23. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  24. val out: CompileOutPaths
  25. def prepareSourcesAndInstance: Either[ResultBundle, CompileSourcesAndInstance]
  26. val project: Project
  27. val reporter: ObservedReporter
  28. val scalaSources: List[AbsolutePath]
  29. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  30. val tracer: BraveTracer
  31. val uniqueInputs: UniqueCompileInputs
  32. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped