diff --git a/build.mill b/build.mill index e360e3c..47c8048 100644 --- a/build.mill +++ b/build.mill @@ -8,7 +8,7 @@ import de.tobiasroeser.mill.vcs.version.VcsVersion import com.goyeau.mill.scalafix.ScalafixModule import mill._, scalalib._, publish._ -val scalaVersions = Seq("2.13.12", "3.4.2") +val scalaVersions = Seq("2.13.12", "3.6.2") trait Common extends CrossScalaModule with PublishModule with ScalafixModule{ def scalaVersion = crossScalaVersion diff --git a/scalasql/core/src/TypeMapper.scala b/scalasql/core/src/TypeMapper.scala index 6cd2a65..2250097 100644 --- a/scalasql/core/src/TypeMapper.scala +++ b/scalasql/core/src/TypeMapper.scala @@ -65,73 +65,4 @@ trait TypeMapper[T] { outer => object TypeMapper { def apply[T](implicit t: TypeMapper[T]): TypeMapper[T] = t - - /** - * These definitions are workarounds for a bug in the Scala 3 compiler - * https://github.com/scala/scala3/issues/19436 - * - * The `TableMacros` definition in Scala 3 could ideally just `import dialect.*` to get the - * `TypeMapper` instances in scope, but it triggers a crash similar to the one in the bug report. - * - * Instead, the macro declares a local `given d: DialectTypeMappers = dialect` and relies on these - * implicits to summon the necessary instances. - */ - implicit def stringFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[String] = - d.StringType - implicit def byteFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Byte] = - d.ByteType - implicit def shortFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Short] = - d.ShortType - implicit def intFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Int] = - d.IntType - implicit def longFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Long] = - d.LongType - implicit def floatFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Float] = - d.FloatType - implicit def doubleFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Double] = - d.DoubleType - implicit def bigDecimalFromDialectTypeMappers( - implicit d: DialectTypeMappers - ): TypeMapper[scala.math.BigDecimal] = d.BigDecimalType - implicit def booleanFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Boolean] = - d.BooleanType - implicit def uuidFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[UUID] = - d.UuidType - implicit def bytesFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[geny.Bytes] = - d.BytesType - implicit def utilDateFromDialectTypeMappers( - implicit d: DialectTypeMappers - ): TypeMapper[java.util.Date] = d.UtilDateType - implicit def localDateFromDialectTypeMappers( - implicit d: DialectTypeMappers - ): TypeMapper[LocalDate] = d.LocalDateType - implicit def localTimeFromDialectTypeMappers( - implicit d: DialectTypeMappers - ): TypeMapper[LocalTime] = d.LocalTimeType - - implicit def localDateTimeFromDialectTypeMappers( - implicit d: DialectTypeMappers - ): TypeMapper[LocalDateTime] = d.LocalDateTimeType - - implicit def zonedDateTimeFromDialectTypeMappers( - implicit d: DialectTypeMappers - ): TypeMapper[ZonedDateTime] = d.ZonedDateTimeType - implicit def instantFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Instant] = - d.InstantType - - implicit def offsetTimeFromDialectTypeMappers( - implicit d: DialectTypeMappers - ): TypeMapper[OffsetTime] = d.OffsetTimeType - - implicit def offsetDateTimeFromDialectTypeMappers( - implicit d: DialectTypeMappers - ): TypeMapper[OffsetDateTime] = d.OffsetDateTimeType - implicit def enumTypeFromDialectTypeMappers[T <: Enumeration#Value]( - implicit d: DialectTypeMappers, - constructor: String => T - ): TypeMapper[T] = d.EnumType[T] - implicit def optionTypeFromDialectTypeMappers[T]( - implicit d: DialectTypeMappers, - inner: TypeMapper[T] - ): TypeMapper[Option[T]] = d.OptionType[T] } diff --git a/scalasql/query/src-3/TableMacro.scala b/scalasql/query/src-3/TableMacro.scala index fb3feaf..8149475 100644 --- a/scalasql/query/src-3/TableMacro.scala +++ b/scalasql/query/src-3/TableMacro.scala @@ -55,8 +55,7 @@ object TableMacros { val queryables = '{ (dialect: DialectTypeMappers, n: Int) => { - given DialectTypeMappers = dialect - lazy val _ = summon[DialectTypeMappers] + import dialect.* ${ Expr.ofList(constructorValueParams.map { param => @@ -128,8 +127,7 @@ object TableMacros { val vExpr0 = '{ (tableRef: TableRef, dialect: DialectTypeMappers, queryable: Table.Metadata.QueryableProxy) => { - given DialectTypeMappers = dialect - lazy val _ = summon[DialectTypeMappers] + import dialect.* ${ constructV[Column]((param, _) => { case (paramTpe, _, _) =>