9
Предупреждения: Я кросс-постинг из #scalaотношение между внутренним путем в зависимости от типов в Scala
Книги Программирование на Scala утверждает, что путь-зависимых типы различаются в зависимости от конкретного экземпляра пути в вопросе , Если да, то я не понимаю, почему все следующие предикаты возвращает истину:
class Outer {
val in = new Inner
class Inner
}
val o1 = new Outer
val o2 = new Outer
o1.in.isInstanceOf[Outer#Inner] //makes perfect sense
o1.in.isInstanceOf[o1.Inner] //still makes sense, the path-dependent type is o1's own
o1.in.isInstanceOf[o2.Inner] //why is this true? PiS p.423 says the path-dependent types are different, they only share a common supertype Outer#Inner
Похож на ошибку, но это может быть результатом стирания. Соответствие, которое является предпочтительным по сравнению с isInstanceOf/asInstanceOf, работает, как ожидалось. –