- 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