Although not idiomatic, case classes can indeed be constructed using new. Subsequently looking for the new keyword is not actually a giveaway that the anonymous class used in the example isn't a case class as claimed on page 480.
e.g., this works just fine:
object Main extends App {
val p = new Person("Jim", 45)
println(p)
}
case class Person(name: String, age: Int)
Although not idiomatic, case classes can indeed be constructed using
new
. Subsequently looking for thenew
keyword is not actually a giveaway that the anonymous class used in the example isn't a case class as claimed on page 480.e.g., this works just fine: