From 91be1a2f7e6c456bde7fe7ef96fd894e36cdf022 Mon Sep 17 00:00:00 2001 From: eugene yokota Date: Mon, 6 Apr 2026 23:09:13 -0400 Subject: [PATCH] [2.x] fix: resolve virtual path in -Ypickle-write scalac option (#9011) (#9035) earlyOutput is a virtual file reference, so passing it directly via .toString produces a virtual path that scalac cannot resolve. Use fileConverter.value.toPath() to convert it to an actual filesystem path. Co-authored-by: corevibe555 <45244658+corevibe555@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 (1M context) --- main/src/main/scala/sbt/Defaults.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 05f5d1fd9..34e7c9692 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -1085,7 +1085,11 @@ object Defaults extends BuildCommon { ) if (shouldApplyFlags) Def.uncached( - Vector("-Ypickle-java", "-Ypickle-write", earlyOutput.value.toString) ++ old + Vector( + "-Ypickle-java", + "-Ypickle-write", + fileConverter.value.toPath(earlyOutput.value).toString + ) ++ old ) else Def.uncached(old) } else Def.uncached(old)