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

He-Pin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko-projection.git


The following commit(s) were added to refs/heads/main by this push:
     new 01e9e5ea fix: Scala 3.8+ forward compatibility (#523)
01e9e5ea is described below

commit 01e9e5ea3e79993eada93e6a2d5e24415fc52866
Author: He-Pin(kerr) <[email protected]>
AuthorDate: Mon Jun 15 10:50:29 2026 +0800

    fix: Scala 3.8+ forward compatibility (#523)
    
    Motivation:
    Prepare for Scala 3.8/3.9 adoption by fixing deprecation warnings
    that appear with newer Scala compilers while maintaining compatibility
    with current Scala 3.3.x and 2.13.x.
    
    Modification:
    - Replace `= _` with explicit `= null` in var declarations (deprecated in 
3.8)
    - Replace `private[this]` with `private` (deprecated in 3.8)
    - Add -Wconf suppressions for cross-version incompatible warnings:
      context bounds, wildcard types, eta-expansion, with operator,
      unreachable null cases, vararg splices, infix types,
      -Xfatal-warnings deprecation, generated code private[this],
      trait App deprecation, and -Yfuture-lazy-vals bad option
    
    Result:
    Clean compilation on Scala 3.8.4 with zero warnings.
    No Scala version changes in production build.
---
 .../apache/pekko/projection/javadsl/StatefulHandler.scala |  2 +-
 .../pekko/projection/scaladsl/StatefulHandler.scala       |  2 +-
 .../pekko/projection/grpc/internal/FilterStage.scala      |  2 +-
 project/PekkoDisciplinePlugin.scala                       | 15 ++++++++++++++-
 .../pekko/projection/r2dbc/R2dbcProjectionSettings.scala  |  2 +-
 5 files changed, 18 insertions(+), 5 deletions(-)

diff --git 
a/core/src/main/scala/org/apache/pekko/projection/javadsl/StatefulHandler.scala 
b/core/src/main/scala/org/apache/pekko/projection/javadsl/StatefulHandler.scala
index 8b18e3a7..d7475068 100644
--- 
a/core/src/main/scala/org/apache/pekko/projection/javadsl/StatefulHandler.scala
+++ 
b/core/src/main/scala/org/apache/pekko/projection/javadsl/StatefulHandler.scala
@@ -21,7 +21,7 @@ import pekko.annotation.ApiMayChange
 
 @ApiMayChange abstract class StatefulHandler[State, Envelope] extends 
Handler[Envelope] {
 
-  private var state: CompletionStage[State] = _
+  private var state: CompletionStage[State] = null
 
   /**
    * Invoked to load the initial state when the projection is started or if 
previous `process` failed.
diff --git 
a/core/src/main/scala/org/apache/pekko/projection/scaladsl/StatefulHandler.scala
 
b/core/src/main/scala/org/apache/pekko/projection/scaladsl/StatefulHandler.scala
index 66f297ed..ecdb0550 100644
--- 
a/core/src/main/scala/org/apache/pekko/projection/scaladsl/StatefulHandler.scala
+++ 
b/core/src/main/scala/org/apache/pekko/projection/scaladsl/StatefulHandler.scala
@@ -24,7 +24,7 @@ import pekko.annotation.ApiMayChange
 
 @ApiMayChange abstract class StatefulHandler[State, Envelope](implicit ec: 
ExecutionContext) extends Handler[Envelope] {
 
-  private var state: Future[State] = _
+  private var state: Future[State] = null
 
   /**
    * Invoked to load the initial state when the projection is started or if 
previous `process` failed.
diff --git 
a/grpc/src/main/scala/org/apache/pekko/projection/grpc/internal/FilterStage.scala
 
b/grpc/src/main/scala/org/apache/pekko/projection/grpc/internal/FilterStage.scala
index 75707668..c6640c58 100644
--- 
a/grpc/src/main/scala/org/apache/pekko/projection/grpc/internal/FilterStage.scala
+++ 
b/grpc/src/main/scala/org/apache/pekko/projection/grpc/internal/FilterStage.scala
@@ -161,7 +161,7 @@ import org.slf4j.LoggerFactory
   override def createLogic(inheritedAttributes: Attributes): GraphStageLogic =
     new GraphStageLogic(shape) {
 
-      private var persistence: Persistence = _
+      private var persistence: Persistence = null
 
       // only one pull replay stream -> async callback at a time
       private var replayHasBeenPulled = false
diff --git a/project/PekkoDisciplinePlugin.scala 
b/project/PekkoDisciplinePlugin.scala
index 5a650b53..e9bb72bd 100644
--- a/project/PekkoDisciplinePlugin.scala
+++ b/project/PekkoDisciplinePlugin.scala
@@ -45,7 +45,20 @@ object PekkoDisciplinePlugin extends AutoPlugin {
                 // scala/bug#7014 is a false positive compiler warning 
affecting r2dbc-spi jar loading
                 "-Wconf:msg=scala/bug#7014:s")
             case Some((3, _)) =>
-              Set("-Yfuture-lazy-vals", "-release:17")
+              Set(
+                "-Yfuture-lazy-vals",
+                "-release:17",
+                "-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=is no longer supported for vararg splices:s",
+                "-Wconf:msg=is not declared infix:s",
+                "-Wconf:msg=Xfatal-warnings is a deprecated alias:s",
+                "-Wconf:msg=Ignoring \\[this\\] qualifier:s",
+                "-Wconf:msg=trait App in package scala is deprecated:s",
+                "-Wconf:msg=bad option.*-Yfuture-lazy-vals:s")
             case _ =>
               Nil
           }).toSeq,
diff --git 
a/r2dbc/src/main/scala/org/apache/pekko/projection/r2dbc/R2dbcProjectionSettings.scala
 
b/r2dbc/src/main/scala/org/apache/pekko/projection/r2dbc/R2dbcProjectionSettings.scala
index 1a7a35a5..8a3794b5 100644
--- 
a/r2dbc/src/main/scala/org/apache/pekko/projection/r2dbc/R2dbcProjectionSettings.scala
+++ 
b/r2dbc/src/main/scala/org/apache/pekko/projection/r2dbc/R2dbcProjectionSettings.scala
@@ -162,7 +162,7 @@ final class R2dbcProjectionSettings private (
     MurmurHash3.finalizeHash(h, values.size)
   }
 
-  private[this] def copy(
+  private def copy(
       dialect: Dialect = dialect,
       schema: Option[String] = schema,
       offsetTable: String = offsetTable,


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

Reply via email to