-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Description
This compiles in 9 seconds, with case 12
uncommented it goes to 21 seconds and so on. Adding : Any
ascriptions on every tuple brings things back to normal.
object Test {
def main(args: Array[String]): Unit = {
val s = 1
val t: Any = 23 match {
case 0 => (s)
case 1 => (s, s)
case 2 => (s, s, s)
case 3 => (s, s, s, s)
case 4 => (s, s, s, s, s)
case 5 => (s, s, s, s, s, s)
case 6 => (s, s, s, s, s, s, s)
case 7 => (s, s, s, s, s, s, s, s)
case 8 => (s, s, s, s, s, s, s, s, s)
case 9 => (s, s, s, s, s, s, s, s, s, s)
case 10 => (s, s, s, s, s, s, s, s, s, s, s)
case 11 => (s, s, s, s, s, s, s, s, s, s, s, s) // 9s
// case 12 => (s, s, s, s, s, s, s, s, s, s, s, s, s) // 21s
// case 13 => (s, s, s, s, s, s, s, s, s, s, s, s, s, s) // 67s
// case 14 => (s, s, s, s, s, s, s, s, s, s, s, s, s, s, s)
// case 15 => (s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s)
// case 16 => (s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s)
// case 17 => (s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s)
// case 18 => (s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s)
// case 19 => (s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s)
// case 20 => (s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s)
// case 21 => (s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s)
// case 22 => (s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s)
}
}
}
It looks like most of the time is spent in isSubType
, probably when computing the least upper bound?