From d7994ed2ed5629e83732a67df05eb9e04e6c877e Mon Sep 17 00:00:00 2001 From: Hamza Remmal Date: Tue, 7 Oct 2025 20:42:14 +0200 Subject: [PATCH 1/2] fix: alias `scalac` for `scala3-bootrapped-new` was malconfigured --- project/Build.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Build.scala b/project/Build.scala index 9c4fbafbb330..e2c7a0968fdb 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -1522,7 +1522,7 @@ object Build { val wrappedArgs = if (printTasty) args else insertClasspathInArgs(args, extraClasspath.mkString(File.pathSeparator)) val fullArgs = main :: (defaultOutputDirectory ::: wrappedArgs).map("\""+ _ + "\"").map(_.replace("\\", "\\\\")) - (Compile / runMain).toTask(fullArgs.mkString(" ", " ", "")) + (`scala3-compiler-bootstrapped-new` / Compile / runMain).toTask(fullArgs.mkString(" ", " ", "")) }.evaluated, testCompilation := Def.inputTaskDyn { val args = spaceDelimited("").parsed From e7c79dc3b79ace53737588b35a2205a9cd31fed5 Mon Sep 17 00:00:00 2001 From: Hamza Remmal Date: Tue, 7 Oct 2025 20:43:47 +0200 Subject: [PATCH 2/2] fix: add `scala.runtime.AbstractFunction1` to parent of some module classes Logic in Scala 2 from https://github.com/scala/scala/blob/6ecf74bfb4e914391fda1df5288ebaad6e4699b8/src/compiler/scala/tools/nsc/typechecker/Unapplies.scala#L122 --- library/src/scala/UninitializedFieldError.scala | 3 +++ library/src/scala/collection/StringOps.scala | 3 +++ library/src/scala/reflect/package.scala | 3 +++ project/MiMaFilters.scala | 11 ----------- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/library/src/scala/UninitializedFieldError.scala b/library/src/scala/UninitializedFieldError.scala index 77476a69b8af..8accced02391 100644 --- a/library/src/scala/UninitializedFieldError.scala +++ b/library/src/scala/UninitializedFieldError.scala @@ -23,3 +23,6 @@ import scala.language.`2.13` final case class UninitializedFieldError(msg: String) extends RuntimeException(msg) { def this(obj: Any) = this("" + obj) } + +object UninitializedFieldError extends scala.runtime.AbstractFunction1[String, UninitializedFieldError]: + override def toString: String = "UninitializedFieldError" diff --git a/library/src/scala/collection/StringOps.scala b/library/src/scala/collection/StringOps.scala index 17800cb1d98b..651de6d2b0e6 100644 --- a/library/src/scala/collection/StringOps.scala +++ b/library/src/scala/collection/StringOps.scala @@ -1651,3 +1651,6 @@ final case class StringView(s: String) extends AbstractIndexedSeqView[Char] { def apply(n: Int) = s.charAt(n) override def toString: String = s"StringView($s)" } + +object StringView extends scala.runtime.AbstractFunction1[String, StringView]: + override def toString: String = "StringView" diff --git a/library/src/scala/reflect/package.scala b/library/src/scala/reflect/package.scala index b342fc352122..5607e883795f 100644 --- a/library/src/scala/reflect/package.scala +++ b/library/src/scala/reflect/package.scala @@ -76,3 +76,6 @@ package object reflect { /** An exception that indicates an error during Scala reflection */ case class ScalaReflectionException(msg: String) extends Exception(msg) + +object ScalaReflectionException extends scala.runtime.AbstractFunction1[String, ScalaReflectionException]: + override def toString: String = "ScalaReflectionException" diff --git a/project/MiMaFilters.scala b/project/MiMaFilters.scala index e2ca983081d2..23c3ab95fec3 100644 --- a/project/MiMaFilters.scala +++ b/project/MiMaFilters.scala @@ -548,17 +548,6 @@ object MiMaFilters { ProblemFilters.exclude[DirectMissingMethodProblem]("scala.runtime.Tuple3Zipped.coll2$extension"), ProblemFilters.exclude[DirectMissingMethodProblem]("scala.runtime.Tuple3Zipped.coll3$extension"), - // singleton case classes modules inherit AbstractFunction1?? - ProblemFilters.exclude[MissingTypesProblem]("scala.ScalaReflectionException$"), - ProblemFilters.exclude[DirectMissingMethodProblem]("scala.ScalaReflectionException.compose"), - ProblemFilters.exclude[DirectMissingMethodProblem]("scala.ScalaReflectionException.andThen"), - ProblemFilters.exclude[MissingTypesProblem]("scala.UninitializedFieldError$"), - ProblemFilters.exclude[DirectMissingMethodProblem]("scala.UninitializedFieldError.compose"), - ProblemFilters.exclude[DirectMissingMethodProblem]("scala.UninitializedFieldError.andThen"), - ProblemFilters.exclude[MissingTypesProblem]("scala.collection.StringView$"), - ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.StringView.compose"), - ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.StringView.andThen"), - // TO INVESTIGATE: This constructor changed, but it is private... why complaining? ProblemFilters.exclude[IncompatibleMethTypeProblem]("scala.collection.immutable.LazyList.this"), // This one should be fine, public class inside private object