Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import com.typesafe.tools.mima.core.*

val scala3Version = "3.3.8"
val scala3Version = "3.9.0-RC3"

ThisBuild / organization := "org.typelevel"
ThisBuild / tlBaseVersion := "3.6"
Expand Down Expand Up @@ -110,7 +110,9 @@ lazy val typeable = crossProject(JSPlatform, JVMPlatform, NativePlatform)
mimaBinaryIssueFilters ++= Seq(
// Ops was replaced by extension methods in https://github.com/typelevel/shapeless-3/pull/1
ProblemFilters.exclude[DirectMissingMethodProblem]("shapeless3.typeable.syntax#typeable.Ops"),
ProblemFilters.exclude[MissingClassProblem]("shapeless3.typeable.syntax$typeable$Ops")
ProblemFilters.exclude[MissingClassProblem]("shapeless3.typeable.syntax$typeable$Ops"),
// Changed on upgrade to Scala 3.9
ProblemFilters.exclude[DirectMissingMethodProblem]("shapeless3.typeable.Typeable.<clinit>")
)
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -424,7 +424,7 @@ class DerivationTests:
assert(v5.show == "Order(item: String, quantity: Int)")

val v6 = ShowType[Order[Option]]
assert(v6.show == "Order(item: None | Some(value: String), quantity: None | Some(value: Int))")
assert(v6.show == "Order(item: Some(value: String) | None, quantity: Some(value: Int) | None)")

@Test
def read(): Unit =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,11 +81,10 @@ object K21
): R =
inst.erasedFold2f(x, y)(g.asInstanceOf)(f.asInstanceOf).asInstanceOf

type IdRef[T <: AnyRef] = T
type HeadRef[T] <: AnyRef = T match
case IdRef[h] *: _ => h
case AnyRef *: _ => Tuple.Head[T] & AnyRef

object K1Ref extends Kind[AnyRef, Tuple, IdRef, HeadRef, Kinds.Tail]:
object K1Ref extends Kind[AnyRef, Tuple, Id, HeadRef, Kinds.Tail]:
extension [F[_ <: AnyRef], T <: AnyRef](inst: ProductInstances[F, T])
inline def foldLeft2[Acc](x: T, y: T)(i: Acc)(f: [t <: AnyRef] => (Acc, F[t], t, t) => CompleteOr[Acc]): Acc =
inst.erasedFoldLeft2(x, y)(i)(f.asInstanceOf).asInstanceOf
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

package shapeless3.typeable

import scala.compiletime.uninitialized

class TypeableTests:
import TypeableTests.*
import org.junit.Assert.*
Expand Down Expand Up @@ -389,7 +391,7 @@ class TypeableTests:
trait Tc[A]
case class Gen2[A: Tc](i: Int)
case class Gen3[A](i: Int):
var a: A = _
var a: A = uninitialized
abstract class Abs[A](a: A):
val x: A = a
case class Gen4[A](i: Int)(a: A) extends Abs[A](a)
Expand Down Expand Up @@ -493,7 +495,7 @@ class TypeableTests:
val bi: Bar[Int] = Bar(23)
assertEquals("Typeable[Bar[Int]]", typeableString(bi))

val i1: A with B = new C
val i1: A & B = new C
assertEquals("Typeable[A & B]", typeableString(i1))
assertEquals("Typeable[A]", typeableString(new A {}))
assertEquals("Typeable[A]", Typeable[A].toString)
Expand Down Expand Up @@ -593,7 +595,7 @@ class TypeableTests:
object X:
case class A()
case class B(a: A):
private[this] val aa = a
private val aa = a
object Test:
Typeable[X.B]

Expand Down
Loading