-
Notifications
You must be signed in to change notification settings - Fork 46
Open
Description
Given:
class Box[A]
trait T
class A extends T
class B extends T
val foo = Seq(new Box[A], new Box[B])Obtained:
val foo: Seq[Box[_1] forSome { type _1 >: B with A <: T }] = Seq(new Box[A], new Box[B])This will occur because Box is invariant.
Expected?:
val foo: Seq[Box[_ <: T]] = Seq(new Box[A], new Box[B])i.e. we perhaps should expect something like _ <: LeastCommonAncestor. If that is AnyRef, maybe we should only ascribe Box[_].
Reactions are currently unavailable