abstract sealed trait C case object C1 extends C case object C2 extends C case object C3 extends C case object C4 extends C case object C5 extends C case object C6 extends C case object C7 extends C case object C8 extends C case object C9 extends C case object C10 extends C case object C11 extends C case object C12 extends C case object C13 extends C case object C14 extends C case object C15 extends C case object C16 extends C case object C17 extends C case object C18 extends C case object C19 extends C case object C20 extends C case object C21 extends C case object C22 extends C case object C23 extends C case object C24 extends C case object C25 extends C case object C26 extends C case object C27 extends C case object C28 extends C case object C29 extends C case object C30 extends C object Test { def test(c: C): Int = c match { case C1 => 1 case C2 => 2 case C3 => 3 case C4 => 4 case C5 => 5 case C6 => 6 case C7 => 7 case C8 => 8 case C9 => 9 case C10 => 10 case C11 => 11 case C12 => 12 case C13 => 13 case C14 => 14 case C15 => 15 case C16 => 16 case C17 => 17 case C18 => 18 case C19 => 19 case C20 => 20 case C21 => 21 case C22 => 22 case C23 => 23 case C24 => 24 case C25 => 25 case C26 => 26 case C27 => 27 case C28 => 28 case C29 => 29 case C30 => 30 } }