-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Regression in scalablytyped/converter with unexpected CyclicError #25700
Copy link
Copy link
Open
Labels
itype:bugregressionThis worked in a previous version but doesn't anymoreThis worked in a previous version but doesn't anymorestat:needs triageEvery issue needs to have an "area" and "itype" labelEvery issue needs to have an "area" and "itype" label
Description
Based on the OpenCB failure in scalablytyped/converter - build logs
Compiler version
Fails in 3.8.4-RC1
Last good release: 3.8.4-RC1-bin-20260320-715b38a-NIGHTLY
First bad release: 3.8.4-RC1-bin-20260321-c486a97-NIGHTLY
Bisect points to e81f069 / #25566
Minimized code
sealed trait Updater
final class Initializer extends Updater
final class Mutator extends Updater
final class IArray[+A]
val Empty = new IArray[Nothing]
def partitionCollect2[A, A1, A2](
as: IArray[A],
t1: PartialFunction[A, A1],
t2: PartialFunction[A, A2],
): (IArray[A1], IArray[A2], IArray[A]) =
???
def test(updaters: IArray[Updater]) =
val (mutators: IArray[Mutator], initializers: IArray[Initializer], Empty) =
partitionCollect2(
updaters,
{ case x: Mutator => x },
{ case x: Initializer => x },
)Output
> scala compile repo/test.scala -S 3.8.4-RC1 -explain-cyclic
Compiling project (Scala 3.8.4-RC1, JVM (21))
[error] ./repo/test.scala:16:70
[error] Recursive value $2$ needs type
[error]
[error] The error occurred while trying to compute the signature of method test
[error] which required to type the right hand side of method test since no explicit type was given
[error] which required to compute the signature of value $2$
[error] which required to type the right hand side of value $2$ since no explicit type was given
[error] which required to compute the signature of value Empty
[error] which required to type the right hand side of value Empty since no explicit type was given
[error] which required to compute the signature of value $2$
[error]
[error] Run with both -explain-cyclic and -Ydebug-cyclic to see full stack trace.
[error] val (mutators: IArray[Mutator], initializers: IArray[Initializer], Empty) =
[error] ^
Error compiling project (Scala 3.8.4-RC1, JVM (21))
Compilation failedExpectation
Source code does not suggest a cyclic dependency might be possible. It should compile like it did in 3.8.3
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
itype:bugregressionThis worked in a previous version but doesn't anymoreThis worked in a previous version but doesn't anymorestat:needs triageEvery issue needs to have an "area" and "itype" labelEvery issue needs to have an "area" and "itype" label