Skip to content

Commit f5b9aa7

Browse files
authored
bump scala3 version and revert scala3 work around (#66)
In #11 a workaround to issue scala/scala3#19436 was introduced. Meanwhile the issue was fixed and backported to scala 3.3.5 and 3.5.1. However we can't use 3.3.5 because we need to "match on higher kinded types" in the macro and that is only available since scala 3.4.x (SIP-53 I think). So I decide to bump to scala 3.6.2 and remove the workaround
1 parent f82b12a commit f5b9aa7

File tree

3 files changed

+3
-74
lines changed

3 files changed

+3
-74
lines changed

build.mill

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import de.tobiasroeser.mill.vcs.version.VcsVersion
88
import com.goyeau.mill.scalafix.ScalafixModule
99
import mill._, scalalib._, publish._
1010

11-
val scalaVersions = Seq("2.13.12", "3.4.2")
11+
val scalaVersions = Seq("2.13.12", "3.6.2")
1212

1313
trait Common extends CrossScalaModule with PublishModule with ScalafixModule{
1414
def scalaVersion = crossScalaVersion

scalasql/core/src/TypeMapper.scala

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -65,73 +65,4 @@ trait TypeMapper[T] { outer =>
6565

6666
object TypeMapper {
6767
def apply[T](implicit t: TypeMapper[T]): TypeMapper[T] = t
68-
69-
/**
70-
* These definitions are workarounds for a bug in the Scala 3 compiler
71-
* https://github.com/scala/scala3/issues/19436
72-
*
73-
* The `TableMacros` definition in Scala 3 could ideally just `import dialect.*` to get the
74-
* `TypeMapper` instances in scope, but it triggers a crash similar to the one in the bug report.
75-
*
76-
* Instead, the macro declares a local `given d: DialectTypeMappers = dialect` and relies on these
77-
* implicits to summon the necessary instances.
78-
*/
79-
implicit def stringFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[String] =
80-
d.StringType
81-
implicit def byteFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Byte] =
82-
d.ByteType
83-
implicit def shortFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Short] =
84-
d.ShortType
85-
implicit def intFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Int] =
86-
d.IntType
87-
implicit def longFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Long] =
88-
d.LongType
89-
implicit def floatFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Float] =
90-
d.FloatType
91-
implicit def doubleFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Double] =
92-
d.DoubleType
93-
implicit def bigDecimalFromDialectTypeMappers(
94-
implicit d: DialectTypeMappers
95-
): TypeMapper[scala.math.BigDecimal] = d.BigDecimalType
96-
implicit def booleanFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Boolean] =
97-
d.BooleanType
98-
implicit def uuidFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[UUID] =
99-
d.UuidType
100-
implicit def bytesFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[geny.Bytes] =
101-
d.BytesType
102-
implicit def utilDateFromDialectTypeMappers(
103-
implicit d: DialectTypeMappers
104-
): TypeMapper[java.util.Date] = d.UtilDateType
105-
implicit def localDateFromDialectTypeMappers(
106-
implicit d: DialectTypeMappers
107-
): TypeMapper[LocalDate] = d.LocalDateType
108-
implicit def localTimeFromDialectTypeMappers(
109-
implicit d: DialectTypeMappers
110-
): TypeMapper[LocalTime] = d.LocalTimeType
111-
112-
implicit def localDateTimeFromDialectTypeMappers(
113-
implicit d: DialectTypeMappers
114-
): TypeMapper[LocalDateTime] = d.LocalDateTimeType
115-
116-
implicit def zonedDateTimeFromDialectTypeMappers(
117-
implicit d: DialectTypeMappers
118-
): TypeMapper[ZonedDateTime] = d.ZonedDateTimeType
119-
implicit def instantFromDialectTypeMappers(implicit d: DialectTypeMappers): TypeMapper[Instant] =
120-
d.InstantType
121-
122-
implicit def offsetTimeFromDialectTypeMappers(
123-
implicit d: DialectTypeMappers
124-
): TypeMapper[OffsetTime] = d.OffsetTimeType
125-
126-
implicit def offsetDateTimeFromDialectTypeMappers(
127-
implicit d: DialectTypeMappers
128-
): TypeMapper[OffsetDateTime] = d.OffsetDateTimeType
129-
implicit def enumTypeFromDialectTypeMappers[T <: Enumeration#Value](
130-
implicit d: DialectTypeMappers,
131-
constructor: String => T
132-
): TypeMapper[T] = d.EnumType[T]
133-
implicit def optionTypeFromDialectTypeMappers[T](
134-
implicit d: DialectTypeMappers,
135-
inner: TypeMapper[T]
136-
): TypeMapper[Option[T]] = d.OptionType[T]
13768
}

scalasql/query/src-3/TableMacro.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ object TableMacros {
5555

5656
val queryables = '{ (dialect: DialectTypeMappers, n: Int) =>
5757
{
58-
given DialectTypeMappers = dialect
59-
lazy val _ = summon[DialectTypeMappers]
58+
import dialect.*
6059

6160
${
6261
Expr.ofList(constructorValueParams.map { param =>
@@ -128,8 +127,7 @@ object TableMacros {
128127
val vExpr0 = '{
129128
(tableRef: TableRef, dialect: DialectTypeMappers, queryable: Table.Metadata.QueryableProxy) =>
130129
{
131-
given DialectTypeMappers = dialect
132-
lazy val _ = summon[DialectTypeMappers]
130+
import dialect.*
133131

134132
${
135133
constructV[Column]((param, _) => { case (paramTpe, _, _) =>

0 commit comments

Comments
 (0)