I'll check the bytecode. Even if such types don't presently show up before erasure, there are multiple possible encodings of the "X#Y.type" in class X { object Y } (see recent scala-internals discussion) and the most straightforward one would be TypeRef(X, Y, Nil), at which point you'd need this check.