@hachikuji I think I see what you're saying... It seems like the `SerializerImpl` was intended to be a mixin that would either satisfy the `ExtendedSerializer` or the `Serializer`'s abstract members, based on which one it gets mixed with in the implementation.
Apparently, this works fine under 2.11, but I guess in 2.12, they require you to explicitly override the abstract member in the _implementation_ and explicitly invoke the mixin method, even through they have the same method. I suppose this is intended to prevent pulling in a trait that unintentionally implements another interface you happen to inherit. This is what the error message said to do, and this is what I did initially, but your comment made me think harder about what's actually going on. If the two interfaces the mixin was satisfying were unrelated, the above would be the only way to solve it. But in this case, `ExtendedSerializer.serialize` actually comes from `Serializer.serialize`, so we can make the mixin implement the `Serializer` interface, and there is no longer any ambiguity at the implementation level. This is what I've done in the recent commit. [ Full content available at: https://github.com/apache/kafka/pull/5674 ] This message was relayed via gitbox.apache.org for [email protected]
