1

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 を除く) 存在型は引き続きサポートされますが、洗練された型として扱われます。

質問:私の例がうまくいかないのはなぜですか? それを機能させる方法はありますか?

4

0 に答える 0