Closed
Description
Compiler version
Based on a regression found in community build: https://github.com/VirtusLab/community-build3/actions/runs/7427557714/job/20237028592
Appears since 3.4.0-RC1-bin-20240104-2746ee8-NIGHTLY
Minimized code
given ipEncoder[IP <: IpAddress]: Encoder[IP] = Encoder[String].contramap(_.toString)
class Encoder[A] {
final def contramap[B](f: B => A): Encoder[B] = new Encoder[B]
}
object Encoder {
final def apply[A](implicit instance: Encoder[A]): Encoder[A] = instance
implicit final val encodeString: Encoder[String] = new Encoder[String]
}
trait Json
trait IpAddress
Output
[error] ./regression.scala:2:64
[error] No given instance of type Encoder[String] was found for parameter instance of method apply in object Encoder.
[error] I found:
[error]
[error] ipEncoder[IP]
[error]
[error] But given instance ipEncoder does not match type Encoder[String].
[error] given ipEncoder[IP <: IpAddress]: Encoder[IP] = Encoder[String].contramap(_.toString)
[error] ^
Expectation
No error, like in 3.3.1
(and pre 3.4.0-RC1-bin-20240104-2746ee8-NIGHTLY nightlies)