Old style tuple accessors on normal case classes in Scala 3

I believe that note is in contrast to Scala 3’s 0-based integer indexing. For example:

scala> val t = ("Hello", 42, true)
val t: (String, Int, Boolean) = (Hello,42,true)

scala> t(0)
val res0: String = Hello

scala> t(1)
val res1: Int = 42

scala> t(2)
val res2: Boolean = true

scala> t(3)
-- Error: ----------------------------------------------------------------------
1 |t(3)
  | ^
  | Match type reduction failed since selector  EmptyTuple.type
  | matches none of the cases
  |
  |     case x *: xs => (0 : Int) match {
  |   case (0 : Int) => x
  |   case scala.compiletime.ops.int.S[n1] => scala.Tuple.Elem[xs, n1]
  | }
1 error found
2 Likes