Scala 3のドキュメントに記載されているように、ワイルドカードで表現できない存在型は一般的に削除されます。ここに私のコードがあります
スカラ2
trait Test[A]
val t: T forSome { type T <: Test[Int] } = null //fine
スカラ3
ワイルドカードを使用して Scala 3 で書き直そうとしています:
trait Test[A]
val t: _ <: Test[Int] = null //error: Unbound wildcard type
ドキュメントはまさにそれを言っています
ワイルドカードのみを使用して表現できる (forSome を除く) 存在型は引き続きサポートされますが、洗練された型として扱われます。
質問:私の例がうまくいかないのはなぜですか? それを機能させる方法はありますか?