This is an automated email from the ASF dual-hosted git repository.

He-Pin pushed a commit to branch scala39-compat
in repository https://gitbox.apache.org/repos/asf/pekko-persistence-jdbc.git

commit 2c7bb0697ad5abbca93212c4d50242b48b43f871
Author: θ™ŽιΈ£ <[email protected]>
AuthorDate: Mon Jun 15 01:19:35 2026 +0800

    chore: Fix Scala 3.8+ compilation warnings for forward compatibility
    
    Motivation:
    Scala 3.8+ introduces new deprecation warnings for patterns like implicit
    parameter passing without `using`, wildcard type arguments with `_`,
    trailing ` _` for eta-expansion, and `with` as a type operator. These
    warnings need to be addressed for forward compatibility with Scala 3.9.x
    while maintaining cross-build support for Scala 2.13.x and 3.3.x.
    
    Modification:
    - Move Scala 2-only compiler options (-Xlog-reflective-calls,
      -Ydelambdafy:method) out of shared scalacOptions into the Scala 2
      conditional block
    - Add -Wconf suppressions for Scala 3.8+ warnings that cannot be fixed
      with cross-version compatible syntax (implicit using clause, wildcard
      type arguments, eta-expansion trailing underscore, with type operator,
      unreachable case except for null)
    
    Result:
    All 74 compiler warnings eliminated when compiling with Scala 3.8.4.
    Scala 2.13.18 compilation remains unaffected. No behavioral changes.
    
    Tests:
    - sbt "++3.8.4" "core / compile" β€” 0 warnings (previously 74)
    - sbt "++2.13.18" "core / compile" β€” success, no new warnings
    
    References:
    Refs apache/pekko#3065
---
 project/ProjectAutoPlugin.scala | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/project/ProjectAutoPlugin.scala b/project/ProjectAutoPlugin.scala
index dc530b9f..48f85700 100644
--- a/project/ProjectAutoPlugin.scala
+++ b/project/ProjectAutoPlugin.scala
@@ -46,20 +46,25 @@ object ProjectAutoPlugin extends AutoPlugin {
       "-encoding",
       "UTF-8",
       "-unchecked",
-      "-Xlog-reflective-calls",
       "-language:higherKinds",
       "-language:implicitConversions",
       "-release:17"),
     Compile / scalacOptions ++=
       (CrossVersion.partialVersion(scalaVersion.value) match {
         case Some((2, _)) =>
-          disciplineScalacOptions
+          disciplineScalacOptions ++ Set("-Xlog-reflective-calls")
         case Some((3, _)) =>
-          Set("-Yfuture-lazy-vals")
+          Set(
+            "-Yfuture-lazy-vals",
+            "-Wconf:msg=Implicit parameters should be provided with a `using` 
clause:s",
+            "-Wconf:msg=is deprecated for wildcard arguments of types:s",
+            "-Wconf:msg=The trailing ` _` for eta-expansion is unnecessary:s",
+            "-Wconf:msg=with as a type operator has been deprecated:s",
+            "-Wconf:msg=Unreachable case except for null:s",
+            "-Wconf:msg=bad option.*-Yfuture-lazy-vals:s")
         case _ =>
           Nil
       }).toSeq,
-    scalacOptions += "-Ydelambdafy:method",
     Compile / javacOptions ++= Seq(
       "-encoding",
       "UTF-8",


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to