diff --git a/build.sbt b/build.sbt index e0d2b670..1d115498 100644 --- a/build.sbt +++ b/build.sbt @@ -83,6 +83,12 @@ val commonSettings = List( } .toList .flatten, + // Scala Native's nscplugin for 3.3.8 cannot handle VarHandle-based lazy vals (scala-native/scala-native#4957) + scalacOptions ++= { + if (scalaBinaryVersion.value == "3" && !crossProjectPlatform.?.value.contains(NativePlatform)) + List("-Yfuture-lazy-vals") + else Nil + }, scalacOptions ++= PartialFunction .condOpt(CrossVersion.partialVersion(scalaVersion.value)) { case Some((2, n)) if n >= 13 => @@ -205,7 +211,9 @@ lazy val csv = crossProject(JVMPlatform, JSPlatform, NativePlatform) description := "Streaming CSV manipulation library", mimaBinaryIssueFilters ++= List( // Static forwarder, only relevant for Java - ProblemFilters.exclude[DirectMissingMethodProblem]("fs2.data.csv.RowEncoderF.fromNonEmptyMapCsvRowEncoder") + ProblemFilters.exclude[DirectMissingMethodProblem]("fs2.data.csv.RowEncoderF.fromNonEmptyMapCsvRowEncoder"), + // Static initializer forwarder, not callable. Scala 3 only, due to future lazy val encoding + ProblemFilters.exclude[DirectMissingMethodProblem]("fs2.data.csv.CellDecoder.") ) ) .jsSettings( @@ -316,7 +324,11 @@ lazy val json = crossProject(JVMPlatform, JSPlatform, NativePlatform) ProblemFilters.exclude[MissingClassProblem]("fs2.data.json.jsonpath.internals.TaggedJson$StartArrayElement$"), ProblemFilters.exclude[MissingClassProblem]("fs2.data.json.jsonpath.internals.TaggedJson$StartObjectValue"), ProblemFilters.exclude[MissingClassProblem]("fs2.data.json.jsonpath.internals.TaggedJson$StartObjectValue$"), - ProblemFilters.exclude[DirectMissingMethodProblem]("fs2.data.json.jsonpath.package.untag") + ProblemFilters.exclude[DirectMissingMethodProblem]("fs2.data.json.jsonpath.package.untag"), + // Static initializer forwarders, not callable. Scala 3 only, due to future lazy val encoding + ProblemFilters.exclude[DirectMissingMethodProblem]("fs2.data.json.Selector."), + ProblemFilters.exclude[DirectMissingMethodProblem]("fs2.data.json.NamePredicate."), + ProblemFilters.exclude[DirectMissingMethodProblem]("fs2.data.json.IndexPredicate.") ) ) .nativeSettings(