diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index a2500b3b1..adcfffca3 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -2064,6 +2064,13 @@ object Defaults extends BuildCommon { if (ScalaArtifacts.isScala3(sv)) Opts.doc.externalAPIScala3(xapisFiles) else Opts.doc.externalAPI(xapisFiles) val options = sOpts ++ externalApiOpts + def convertVfRef(value: String): String = + if !value.contains("$") then value + else converter.toPath(VirtualFileRef.of(value)).toString + val resolvedOptions = options.map { x => + if !x.contains("$") then x + else x.split(":").map(_.split(",").map(convertVfRef).mkString(",")).mkString(":") + } val scalac = cs.scalac match case ac: AnalyzingCompiler => ac.onArgs(Compiler.exported(s, "scaladoc")) val docSrcFiles = if ScalaArtifacts.isScala3(sv) then tFiles else srcs @@ -2077,7 +2084,7 @@ object Defaults extends BuildCommon { cp.map(converter.toPath).map(new sbt.internal.inc.PlainVirtualFile(_)), converter, out.toPath(), - options, + resolvedOptions, maxErrors.value, s.log, ) diff --git a/sbt-app/src/sbt-test/project/semanticdb-doc/build.sbt b/sbt-app/src/sbt-test/project/semanticdb-doc/build.sbt new file mode 100644 index 000000000..961d33382 --- /dev/null +++ b/sbt-app/src/sbt-test/project/semanticdb-doc/build.sbt @@ -0,0 +1,2 @@ +semanticdbEnabled := true +scalaVersion := "2.12.21" diff --git a/sbt-app/src/sbt-test/project/semanticdb-doc/src/main/scala/A.scala b/sbt-app/src/sbt-test/project/semanticdb-doc/src/main/scala/A.scala new file mode 100644 index 000000000..69c493db2 --- /dev/null +++ b/sbt-app/src/sbt-test/project/semanticdb-doc/src/main/scala/A.scala @@ -0,0 +1 @@ +object A diff --git a/sbt-app/src/sbt-test/project/semanticdb-doc/test b/sbt-app/src/sbt-test/project/semanticdb-doc/test new file mode 100644 index 000000000..8a87cbfc1 --- /dev/null +++ b/sbt-app/src/sbt-test/project/semanticdb-doc/test @@ -0,0 +1,2 @@ +# scaladoc should succeed when semanticdbEnabled is true +> doc