Skip to content

Commit 764c3b0

Browse files
committed
Make NamedTuple covariant in its value type
1 parent 4480e9c commit 764c3b0

File tree

2 files changed

+2
-4
lines changed

2 files changed

+2
-4
lines changed

library/src/scala/NamedTuple.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import compiletime.ops.boolean.*
66
object NamedTuple:
77

88
opaque type AnyNamedTuple = Any
9-
opaque type NamedTuple[N <: Tuple, V <: Tuple] >: V <: AnyNamedTuple = V
9+
opaque type NamedTuple[N <: Tuple, +V <: Tuple] >: V <: AnyNamedTuple = V
1010

1111
def apply[N <: Tuple, V <: Tuple](x: V) = x
1212

tests/neg/named-tuples.check

+1-3
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,7 @@
9090
47 | val p5 = person.zip(first = 11, age = 33) // error
9191
| ^^^^^^^^^^^^^^^^^^^^
9292
| Found: (first : Int, age : Int)
93-
| Required: NamedTuple.NamedTuple[(("name" : String), ("age" : String)), V2]
94-
|
95-
| where: V2 is a type variable with constraint <: Tuple
93+
| Required: NamedTuple.NamedTuple[(("name" : String), ("age" : String)), Tuple]
9694
|
9795
| longer explanation available when compiling with `-explain`
9896
-- Warning: tests/neg/named-tuples.scala:24:29 -------------------------------------------------------------------------

0 commit comments

Comments
 (0)