@@ -386,15 +386,14 @@ object Build {
386
386
val scala3Compiler = (`scala3-compiler` / Compile / packageBin).value
387
387
388
388
val libraryJars = Array (scala3Library) ++ externalLibraryDeps
389
- val compilerJars = Array (tastyCore, scala3Interfaces, scala3Compiler) ++ (externalCompilerDeps -- externalLibraryDeps)
389
+ val compilerJars = Seq (tastyCore, scala3Interfaces, scala3Compiler) ++ (externalCompilerDeps -- externalLibraryDeps)
390
390
391
- // should be replaced by sbt.Defaults.makeScalaInstance when released
392
- // See https://github.com/sbt/sbt/pull/6480
393
- Bootstrap .makeScalaInstance(
394
- state.value,
391
+ Defaults .makeScalaInstance(
395
392
scalaVersion.value,
396
393
libraryJars = libraryJars,
397
- compilerJars = compilerJars,
394
+ allCompilerJars = compilerJars,
395
+ allDocJars = Seq .empty,
396
+ state.value,
398
397
scalaInstanceTopLoader.value
399
398
)
400
399
},
@@ -404,16 +403,22 @@ object Build {
404
403
// in the `scalaInstance` of the `doc` task which allows us to run
405
404
// `scala3-library-bootstrapped/doc` for example.
406
405
doc / scalaInstance := {
407
- val externalCompilerDeps = (`scala3-compiler` / Compile / externalDependencyClasspath).value.map(_.data).toSet
408
- val externalScaladocDeps = (LocalProject (" scaladoc" ) / Compile / externalDependencyClasspath).value.map(_.data).toSet
406
+ val externalDeps = (LocalProject (" scaladoc" ) / Compile / externalDependencyClasspath).value.map(_.data)
409
407
val scalaDoc = (LocalProject (" scaladoc" ) / Compile / packageBin).value
410
- val docJars = Array (scalaDoc) ++ (externalScaladocDeps -- externalCompilerDeps)
411
-
412
- Bootstrap .makeDocScalaInstance(
408
+ val docJars = Array (scalaDoc) ++ externalDeps
409
+
410
+ val base = scalaInstance.value
411
+ val docScalaInstance = Defaults .makeScalaInstance(
412
+ version = base.version,
413
+ libraryJars = base.libraryJars,
414
+ allCompilerJars = base.compilerJars,
415
+ allDocJars = docJars,
413
416
state.value,
414
- scalaInstance.value,
415
- docJars
417
+ scalaInstanceTopLoader.value
416
418
)
419
+ // assert that sbt reuses the same compiler class loader
420
+ assert(docScalaInstance.loaderCompilerOnly == base.loaderCompilerOnly)
421
+ docScalaInstance
417
422
},
418
423
Compile / doc / scalacOptions ++= scalacOptionsDocSettings
419
424
)
0 commit comments