I have simple type hierarchy in Scala:
trait A {
    trait A1
}
object B extends A {
    case object B1 extends A1
}
object C extends A {
    case object C1 extends A1
}
And, I'm gonna use these types like that:
def get(): Any = C.C1
get() match {
    case _: B.A1 => println("B")
    case _: C.A1 => println("C")
    case _: A#A1 => println("Any")
}
Surprisingly, I'm getting B printed (I've expected C).
Why compiler treats C.C1 as instance of B.A1?