-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Based on the OpenCB failure in nebula-contrib/testcontainers-nebula - build logs
Depending on how we construct map invocation the code might fail to compile. In case of Scala 3.7.4/3.8.0-RC3 the first 2 cases compiled, the last one did not.
In current nightlies all 3 fail to compile
I'm not exactly sure if the code should fail to compile, I suspect the new behaviour might be correct, but I would need a confirmation
Compiler version
Last good release: 3.8.0-RC1-bin-20251103-714f3b6-NIGHTLY
First bad release: 3.8.0-RC1-bin-20251104-b83b3d9-NIGHTLY
Bisect points to one of:
f3aea49
5b03dca
Both are commits from #24231
Not present in 3.8.0-RCs, merged after 3.8.0 cutoff, but before change of build developed version
Minimized code
// originally defines in Java as
// public class GenericContainer<SELF extends GenericContainer<SELF>>
trait GenericContainer[SELF <: GenericContainer[SELF]]
private lazy val graphds: List[GenericContainer[?]] = ???
private def await[S <: GenericContainer[S]](container: GenericContainer[S]): Int = ???
def Test =
val works1 = graphds.map(gd => await(gd))
val works2 = graphds.map(await(_))
val failsIn3_7 = graphds.map(await)
Output
Compiling project (Scala 3.8.0-RC2, JVM (21))
[error] ./test.scala:11:27
[error] Type argument Any does not conform to upper bound GenericContainer[Any]
[error] val fails = graphds.map(await)
[error] ^
Error compiling project (Scala 3.8.0-RC2, JVM (21))
Compiling project (Scala 3.8.1-RC1-bin-20251207-68396ca-NIGHTLY, JVM (21))
[error] ./test.scala:10:34
[error] Type argument Any does not conform to upper bound GenericContainer[Any]
[error] val works1 = graphds.map(gd => await(gd))
[error] ^
[error] ./test.scala:11:28
[error] Type argument Any does not conform to upper bound GenericContainer[Any]
[error] val works2 = graphds.map(await(_))
[error] ^
[error] ./test.scala:12:32
[error] Type argument Any does not conform to upper bound GenericContainer[Any]
[error] val failsIn3_7 = graphds.map(await)
[error] ^
Error compiling project (Scala 3.8.1-RC1-bin-20251207-68396ca-NIGHTLY, JVM (21))
Expectation
To confirm if new behaviour is a regression or expected behaviour