Skip to content

Regression in 3.3.3 and 3.4.0 #20080

Closed
@lbialy

Description

@lbialy

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 🙏

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions