-
-
Notifications
You must be signed in to change notification settings - Fork 58
Open
Labels
bugSomething isn't workingSomething isn't workinggood first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is neededscala3
Description
Right now izumi-reflect correctly detects variance on Scala 3 for trait/class types:
trait X[+T]0 -> X[+0]
But not for opaque types, where type variables are assumed invariant:
object x {
opaque type X[+T] = Any
}0 -> x::X[0]
That's because we rely on Symbol#declaredTypes method to find out the variances of type parameters of a type. But an opaque type does not "declare" its parameters as members of its definition and therefore declaredTypes List is empty.
We need to find and test some other way to extract that data – perhaps using private compiler APIs if there's no way to extract that data using public API.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workinggood first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is neededscala3