Существующие типы на основе подстановочных знаков в Scala3

Как отмечалось в документации Scala 3, экзистенциальные типы, которые не могут быть выражены с помощью подстановочных знаков, обычно отбрасываются. Вот мой код в

Scala 2

      trait Test[A]

val t: T forSome { type T <: Test[Int] } = null //fine

Демо

Scala 3

Попытка переписать его на Scala 3 с использованием подстановочного знака:

      trait Test[A]

val t: _ <: Test[Int]  = null //error: Unbound wildcard type

Демо

Документы точно говорят, что

Существующие типы, которые могут быть выражены с использованием только подстановочных знаков (но не forSome), по-прежнему поддерживаются, но рассматриваются как уточненные типы.

ВОПРОС: Почему мой пример не работает. Есть ли способ заставить его работать?

0 ответов

Другие вопросы по тегам