diff --git a/.scalafix.conf b/.scalafix.conf index b090394..d2276c7 100644 --- a/.scalafix.conf +++ b/.scalafix.conf @@ -8,6 +8,7 @@ rules = [ OrganizeImports ProcedureSyntax RemoveUnused + RedundantSyntax ] Disable { @@ -20,6 +21,8 @@ Disable { OrganizeImports { # Allign with IntelliJ IDEA so that they don't fight each other groupedImports = Merge + targetDialect = Scala3 + removeUnused = true } RemoveUnused { diff --git a/.scalafmt.conf b/.scalafmt.conf index e05fbac..7eb727a 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -11,7 +11,7 @@ includeCurlyBraceInSelectChains = false danglingParentheses.preset = true optIn.annotationNewlines = true newlines.alwaysBeforeMultilineDef = false -runner.dialect = scala213 +runner.dialect = scala3 rewrite.rules = [RedundantBraces] rewrite.redundantBraces.generalExpressions = false diff --git a/benchmarks/src/main/scala/zio/query/BenchmarkUtil.scala b/benchmarks/src/main/scala/zio/query/BenchmarkUtil.scala index c0fdbaa..f2daf66 100644 --- a/benchmarks/src/main/scala/zio/query/BenchmarkUtil.scala +++ b/benchmarks/src/main/scala/zio/query/BenchmarkUtil.scala @@ -1,6 +1,6 @@ package zio.query -import zio._ +import zio.* object BenchmarkUtil extends Runtime[Any] { self => val environment = Runtime.default.environment diff --git a/benchmarks/src/main/scala/zio/query/CollectAllBenchmark.scala b/benchmarks/src/main/scala/zio/query/CollectAllBenchmark.scala index 1407ebb..9c25a0c 100644 --- a/benchmarks/src/main/scala/zio/query/CollectAllBenchmark.scala +++ b/benchmarks/src/main/scala/zio/query/CollectAllBenchmark.scala @@ -1,7 +1,7 @@ package zio.query -import org.openjdk.jmh.annotations.{Scope => JScope, _} -import zio.query.BenchmarkUtil._ +import org.openjdk.jmh.annotations.{Scope as JScope, *} +import zio.query.BenchmarkUtil.* import java.util.concurrent.TimeUnit diff --git a/benchmarks/src/main/scala/zio/query/DataSourceBenchmark.scala b/benchmarks/src/main/scala/zio/query/DataSourceBenchmark.scala index e790265..bd0f52b 100644 --- a/benchmarks/src/main/scala/zio/query/DataSourceBenchmark.scala +++ b/benchmarks/src/main/scala/zio/query/DataSourceBenchmark.scala @@ -1,11 +1,11 @@ package zio.query import cats.effect.IO -import cats.effect.unsafe.implicits._ -import cats.syntax.all._ -import fetch.{Fetch, fetchM} -import org.openjdk.jmh.annotations.{Scope => JScope, _} -import zio.query.BenchmarkUtil._ +import cats.effect.unsafe.implicits.* +import cats.syntax.all.* +import fetch.Fetch +import org.openjdk.jmh.annotations.{Scope as JScope, *} +import zio.query.BenchmarkUtil.* import zio.{Chunk, ZIO} import java.util.concurrent.TimeUnit @@ -36,7 +36,7 @@ class DataSourceBenchmark { @Benchmark def zquerySumDuplicatedBenchmark(): Long = { - import ZQueryImpl._ + import ZQueryImpl.* val reqs = (0 until count).toList.map(i => ZQuery.fromRequest(Req(1))(ds)) val query = ZQuery.collectAllBatched(reqs).map(_.sum.toLong) @@ -45,7 +45,7 @@ class DataSourceBenchmark { @Benchmark def zquerySumUniqueBenchmark(): Long = { - import ZQueryImpl._ + import ZQueryImpl.* val reqs = (0 until count).toList.map(i => ZQuery.fromRequest(Req(i))(ds)) val query = ZQuery.collectAllBatched(reqs).map(_.sum.toLong) @@ -54,7 +54,7 @@ class DataSourceBenchmark { @Benchmark def fetchSumDuplicatedBenchmark(): Long = { - import FetchImpl._ + import FetchImpl.* import fetch.fetchM type FIO[A] = Fetch[IO, A] @@ -65,8 +65,8 @@ class DataSourceBenchmark { @Benchmark def fetchSumUniqueBenchmark(): Long = { + import FetchImpl.* import fetch.fetchM - import FetchImpl._ type FIO[A] = Fetch[IO, A] val reqs = (0 until count).toList.map(i => fetchPlusOne(i)) @@ -81,8 +81,8 @@ class DataSourceBenchmark { object FetchImpl { import cats.data.NonEmptyList - import cats.effect._ - import fetch._ + import cats.effect.* + import fetch.* object PlusOne extends Data[Int, Int] { def name = "PlusOne" diff --git a/benchmarks/src/main/scala/zio/query/FromRequestBenchmark.scala b/benchmarks/src/main/scala/zio/query/FromRequestBenchmark.scala index ad992b0..b86e94b 100644 --- a/benchmarks/src/main/scala/zio/query/FromRequestBenchmark.scala +++ b/benchmarks/src/main/scala/zio/query/FromRequestBenchmark.scala @@ -1,7 +1,7 @@ package zio.query -import org.openjdk.jmh.annotations.{Scope => JScope, _} -import zio.query.BenchmarkUtil._ +import org.openjdk.jmh.annotations.{Scope as JScope, *} +import zio.query.BenchmarkUtil.* import zio.{Chunk, ZIO} import java.util.concurrent.TimeUnit diff --git a/benchmarks/src/main/scala/zio/query/ZQueryBenchmark.scala b/benchmarks/src/main/scala/zio/query/ZQueryBenchmark.scala index 15f8a88..7af87ae 100644 --- a/benchmarks/src/main/scala/zio/query/ZQueryBenchmark.scala +++ b/benchmarks/src/main/scala/zio/query/ZQueryBenchmark.scala @@ -1,8 +1,8 @@ package zio.query -import org.openjdk.jmh.annotations.{Scope => JScope, _} +import org.openjdk.jmh.annotations.{Scope as JScope, *} +import zio.query.BenchmarkUtil.* import zio.{Chunk, ZIO} -import zio.query.BenchmarkUtil._ import java.util.concurrent.TimeUnit diff --git a/build.sbt b/build.sbt index b17a4ee..9c4904f 100644 --- a/build.sbt +++ b/build.sbt @@ -28,7 +28,8 @@ inThisBuild( url("https://github.com/kyri-petrou") ) ), - versionScheme := Some("early-semver") + versionScheme := Some("early-semver"), + scalacOptions ++= (if (scalaBinaryVersion.value == "3") Seq() else Seq("-Xsource:3")) ) ) @@ -69,6 +70,7 @@ lazy val zioQuery = crossProject(JSPlatform, JVMPlatform, NativePlatform) Seq() else { Seq( + "-Xsource:3", "-opt:l:method", "-opt:l:inline", "-opt-inline-from:scala.**", @@ -118,6 +120,7 @@ lazy val docs = project moduleName := "zio-query-docs", scalacOptions -= "-Yno-imports", scalacOptions -= "-Xfatal-warnings", + scalacOptions += "-Wconf:msg=.*:silent", projectName := (ThisBuild / name).value, mainModuleName := (zioQueryJVM / moduleName).value, crossScalaVersions := Seq(scalaV), diff --git a/project/build.properties b/project/build.properties index 53bb739..360c594 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version = 1.10.11 +sbt.version = 1.11.0 diff --git a/project/plugins.sbt b/project/plugins.sbt index 37adc49..a93e67f 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,6 +7,8 @@ addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.3.1") addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.4") addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.13.1") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.7") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.18.2") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.18.2" +addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.14.3") +addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.6.1") resolvers ++= Resolver.sonatypeOssRepos("public") diff --git a/zio-query/shared/src/main/scala/zio/query/Cache.scala b/zio-query/shared/src/main/scala/zio/query/Cache.scala index b1dc027..0172f78 100644 --- a/zio-query/shared/src/main/scala/zio/query/Cache.scala +++ b/zio-query/shared/src/main/scala/zio/query/Cache.scala @@ -16,7 +16,7 @@ package zio.query -import zio._ +import zio.* import zio.stacktracer.TracingImplicits.disableAutoTrace import java.util.concurrent.ConcurrentHashMap diff --git a/zio-query/shared/src/main/scala/zio/query/CompletedRequestMap.scala b/zio-query/shared/src/main/scala/zio/query/CompletedRequestMap.scala index cda401b..359e5c9 100644 --- a/zio-query/shared/src/main/scala/zio/query/CompletedRequestMap.scala +++ b/zio-query/shared/src/main/scala/zio/query/CompletedRequestMap.scala @@ -19,7 +19,7 @@ package zio.query import zio.stacktracer.TracingImplicits.disableAutoTrace import zio.{Cause, Chunk, Exit} -import scala.collection.compat._ +import scala.collection.compat.* import scala.collection.{immutable, mutable} /** @@ -255,7 +255,7 @@ object CompletedRequestMap { final private[query] class Mutable private ( override protected val map: mutable.HashMap[Any, Exit[Any, Any]] ) extends CompletedRequestMap { self => - import UtilsVersionSpecific._ + import UtilsVersionSpecific.* def addAll(that: CompletedRequestMap): Unit = if (!that.isEmpty) self.map.addAll(that.map) diff --git a/zio-query/shared/src/main/scala/zio/query/QueryAspect.scala b/zio-query/shared/src/main/scala/zio/query/QueryAspect.scala index d69c909..c6df085 100644 --- a/zio-query/shared/src/main/scala/zio/query/QueryAspect.scala +++ b/zio-query/shared/src/main/scala/zio/query/QueryAspect.scala @@ -16,7 +16,7 @@ package zio.query -import zio._ +import zio.* /** * A `QueryAspect` is an aspect that can be weaved into queries. You can think diff --git a/zio-query/shared/src/main/scala/zio/query/ZQuery.scala b/zio-query/shared/src/main/scala/zio/query/ZQuery.scala index 1333a74..d9afe11 100644 --- a/zio-query/shared/src/main/scala/zio/query/ZQuery.scala +++ b/zio-query/shared/src/main/scala/zio/query/ZQuery.scala @@ -16,14 +16,14 @@ package zio.query -import zio._ +import zio.* import zio.query.ZQuery.disabledCache -import zio.query.internal._ +import zio.query.internal.* import zio.stacktracer.TracingImplicits.disableAutoTrace import java.util.concurrent.atomic.AtomicBoolean import scala.annotation.switch -import scala.collection.compat.{BuildFrom => _, _} +import scala.collection.compat.{BuildFrom as _, *} import scala.collection.mutable.ArrayBuilder import scala.reflect.ClassTag @@ -1936,7 +1936,9 @@ object ZQuery { val arr = Array.ofDim[Result[R, E, B]](n) ZIO - .whileLoop(i < n)(f(as(i)).step) { v => arr(i) = v; i += 1 } + .whileLoop(i < n)(f(as(i)).step) { v => + arr(i) = v; i += 1 + } .as(collectResults(arr, mode, mapOut)) } } @@ -1952,7 +1954,11 @@ object ZQuery { case n => val out = Array.ofDim[A](n) var i = 0 - ZIO.whileLoop(i < n)(in(i)) { v => out(i) = v; i += 1 }.as(out) + ZIO + .whileLoop(i < n)(in(i)) { v => + out(i) = v; i += 1 + } + .as(out) } private def collectResults[R, E, A, B, F[_]]( diff --git a/zio-query/shared/src/main/scala/zio/query/internal/BlockedRequests.scala b/zio-query/shared/src/main/scala/zio/query/internal/BlockedRequests.scala index c1dac96..f3755a3 100644 --- a/zio-query/shared/src/main/scala/zio/query/internal/BlockedRequests.scala +++ b/zio-query/shared/src/main/scala/zio/query/internal/BlockedRequests.scala @@ -16,13 +16,13 @@ package zio.query.internal -import zio.query._ -import zio.query.internal.BlockedRequests._ +import zio.query.* +import zio.query.internal.BlockedRequests.* import zio.stacktracer.TracingImplicits.disableAutoTrace import zio.{Chunk, Exit, Trace, UIO, Unsafe, ZEnvironment, ZIO} import scala.annotation.tailrec -import scala.collection.compat._ +import scala.collection.compat.* import scala.collection.mutable import scala.collection.mutable.ListBuffer diff --git a/zio-query/shared/src/main/scala/zio/query/internal/Continue.scala b/zio-query/shared/src/main/scala/zio/query/internal/Continue.scala index 625d809..2ee9eba 100644 --- a/zio-query/shared/src/main/scala/zio/query/internal/Continue.scala +++ b/zio-query/shared/src/main/scala/zio/query/internal/Continue.scala @@ -16,9 +16,9 @@ package zio.query.internal -import zio._ -import zio.query._ -import zio.query.internal.Continue._ +import zio.* +import zio.query.* +import zio.query.internal.Continue.* import zio.stacktracer.TracingImplicits.disableAutoTrace /** diff --git a/zio-query/shared/src/main/scala/zio/query/internal/QueryScope.scala b/zio-query/shared/src/main/scala/zio/query/internal/QueryScope.scala index 074c513..fd153de 100644 --- a/zio-query/shared/src/main/scala/zio/query/internal/QueryScope.scala +++ b/zio-query/shared/src/main/scala/zio/query/internal/QueryScope.scala @@ -1,6 +1,6 @@ package zio.query.internal -import zio._ +import zio.* import zio.stacktracer.TracingImplicits.disableAutoTrace import java.util.concurrent.atomic.AtomicReference diff --git a/zio-query/shared/src/main/scala/zio/query/internal/Result.scala b/zio-query/shared/src/main/scala/zio/query/internal/Result.scala index 4d00a8a..434a48d 100644 --- a/zio-query/shared/src/main/scala/zio/query/internal/Result.scala +++ b/zio-query/shared/src/main/scala/zio/query/internal/Result.scala @@ -16,8 +16,8 @@ package zio.query.internal -import zio._ -import zio.query.internal.Result._ +import zio.* +import zio.query.internal.Result.* import zio.query.{DataSourceAspect, Described} import zio.stacktracer.TracingImplicits.disableAutoTrace diff --git a/zio-query/shared/src/test/scala/zio/query/ZIOBaseSpec.scala b/zio-query/shared/src/test/scala/zio/query/ZIOBaseSpec.scala index a1b2e3a..0ef49e7 100644 --- a/zio-query/shared/src/test/scala/zio/query/ZIOBaseSpec.scala +++ b/zio-query/shared/src/test/scala/zio/query/ZIOBaseSpec.scala @@ -1,7 +1,7 @@ package zio.query -import zio._ -import zio.test._ +import zio.* +import zio.test.* trait ZIOBaseSpec extends ZIOSpecDefault { override def aspects: Chunk[TestAspectPoly] = diff --git a/zio-query/shared/src/test/scala/zio/query/ZQuerySpec.scala b/zio-query/shared/src/test/scala/zio/query/ZQuerySpec.scala index 55789f2..d14785d 100644 --- a/zio-query/shared/src/test/scala/zio/query/ZQuerySpec.scala +++ b/zio-query/shared/src/test/scala/zio/query/ZQuerySpec.scala @@ -1,11 +1,11 @@ package zio.query -import zio._ -import zio.query.QueryAspect._ +import zio.* +import zio.query.QueryAspect.* import zio.query.internal.QueryScope -import zio.test.Assertion._ +import zio.test.Assertion.* import zio.test.TestAspect.{after, nonFlaky, silent} -import zio.test.{TestClock, TestConsole, TestEnvironment, _} +import zio.test.{TestClock, TestConsole, TestEnvironment, *} object ZQuerySpec extends ZIOBaseSpec { @@ -305,10 +305,10 @@ object ZQuerySpec extends ZIOBaseSpec { } ) @@ nonFlaky, test("service methods works with multiple services") { - def getFoo: ZQuery[Int with String, Nothing, Unit] = + def getFoo: ZQuery[Int & String, Nothing, Unit] = ZQuery.serviceWithQuery[Int](_ => ZQuery.service[String].as(())) - def getBar: ZQuery[Int with String, Nothing, Unit] = + def getBar: ZQuery[Int & String, Nothing, Unit] = ZQuery.serviceWithZIO[String](_ => ZIO.service[String].unit) assertCompletes