Hide ambiguous implicit buildableSeq#788
Conversation
5d96905 to
72f1556
Compare
| } | ||
|
|
||
| implicit def buildableSeq[T]: Buildable[T, Seq[T]] = | ||
| private[scalacheck] implicit def buildableSeq[T]: Buildable[T, Seq[T]] = |
There was a problem hiding this comment.
This is a no-go as far as binary compatibility is concerned. Instead, I propose:
- make the definition non-implicit
- slap a
@deprecatedon it
There was a problem hiding this comment.
It's an internal definition, so it needs to exist as an implicit.
There was a problem hiding this comment.
I don't think there's any reason to add @deprecated since nobody likely uses it, and it isn't visible, but I'll do so just to be thorough.
There was a problem hiding this comment.
Making it package-private is technically binary compatible, it's just not source compatible. It's an obscure method in an internal object, so I don't think there will be anyone who will even notice the source-breaking change.
There was a problem hiding this comment.
It's apparently not binary compatible in this instance, since you had to define a MiMa exception. But your argument that it this definition is not likely to be used publicly is persuasive 👍
There was a problem hiding this comment.
It actually it is binary compatible. Mima is just being thorough. The emitted byte code is just not binary compatible for Java callers. ScalaCheck doesn't have any of those. And if we did, they still likely weren't using it for this implicit.
Fixes #721.