diff --git a/http/src/main/mima-filters/2.0.x.backwards.excludes/scala3-future-lazy-vals-clinit.excludes b/http/src/main/mima-filters/2.0.x.backwards.excludes/scala3-future-lazy-vals-clinit.excludes new file mode 100644 index 0000000000..005b8a4303 --- /dev/null +++ b/http/src/main/mima-filters/2.0.x.backwards.excludes/scala3-future-lazy-vals-clinit.excludes @@ -0,0 +1,24 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Scala 3's -Yfuture-lazy-vals flag changes the bytecode generated for object +# lazy vals, removing the synthetic methods present in the 1.0.0 +# baseline. These are compiler-internal initialization methods and are not +# part of the public API, so the change is binary compatible in practice. +ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.server.Directives.") +ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.server.PathMatchers.") +ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.server.directives.PathDirectives.") diff --git a/project/Common.scala b/project/Common.scala index ce72704388..8558bc9fa2 100644 --- a/project/Common.scala +++ b/project/Common.scala @@ -34,7 +34,9 @@ object Common extends AutoPlugin { // In all other cases, the warning is non-actionable: you get spurious warnings that need to be suppressed // verbosely. So, opt out of those in general. "-Wconf:cat=other-match-analysis&msg=match may not be exhaustive:s")).value, - scalacOptions ++= onlyOnScala3(Seq("-Wconf:cat=deprecation:s")).value, + scalacOptions ++= onlyOnScala3(Seq( + "-Wconf:cat=deprecation:s", + "-Yfuture-lazy-vals")).value, javacOptions ++= Seq("-encoding", "UTF-8", "--release", javacTarget), mimaReportSignatureProblems := true,