Closed
Description
Compiler version
3.3.3 and 3.4.0
Minimized code
trait Zippable[-A, -B]:
type Out
def zip(left: A, right: B): Out
object Zippable extends ZippableLowPrio:
given append[A <: Tuple, B]: (Zippable[A, B] { type Out = Tuple.Append[A, B] }) =
(left, right) => left :* right
trait ZippableLowPrio:
given pair[A, B]: (Zippable[A, B] { type Out = (A, B) }) =
(left, right) => (left, right)
@main def main =
println("ok")
Output
λ scala-cli -S 3.3.1 main.scala
Compiling project (Scala 3.3.1, JVM (17))
Compiled project (Scala 3.3.1, JVM (17))
ok
λ scala-cli -S 3.3.3 main.scala
Compiling project (Scala 3.3.3, JVM (17))
[error] ./main.scala:7:22
[error] value :* is not a member of A
[error] (left, right) => left :* right
[error] ^^^^^^^
[error] ./main.scala:11:22
[error] Found: (A, B)
[error] Required: Zippable.this.Out
[error] (left, right) => (left, right)
[error] ^^^^^^^^^^^^^
Error compiling project (Scala 3.3.3, JVM (17))
Compilation failed
λ scala-cli -S 3.4.0 main.scala
Compiling project (Scala 3.4.0, JVM (17))
[error] ./main.scala:7:22
[error] value :* is not a member of A
[error] (left, right) => left :* right
[error] ^^^^^^^
Error compiling project (Scala 3.4.0, JVM (17))
Compilation failed
Expectation
No regressions 🙏