477823b093
Instead of constructing the magic intersection type, compare sets of upper bounds instead as javac does, modulo the substitution