+1 from me as well.

I checked a few serializer classes. The `equals` method on serializers
contains the logic of `canEqual` method whose existence seems redundant.

On Wed, May 16, 2018 at 1:49 AM, Tzu-Li (Gordon) Tai <tzuli...@apache.org>
wrote:

> +1.
>
> Looking at the implementations of the `canEqual` method in several
> serializers, it seems like all that is done is a check whether the object
> is of the same serializer class.
> We’ll have to be careful and double check all `equals` method on
> serializers that may have relied on the `canEqual` method to perform the
> preliminary type check.
> Otherwise, this sounds good.
>
> On 16 May 2018 at 4:35:47 PM, Stephan Ewen (se...@apache.org) wrote:
>
> Hi all!
>
> As part of an attempt to simplify some code in the TypeInfo and
> TypeSerializer area, I would like to drop the "canEqual" methods for the
> following reason:
>
> "canEqual()" is necessary to make proper equality checks across
> hierarchies
> of types. This is for example useful in a collection API, stating for
> example whether a List can be equal to a Collection if they have the same
> contents. We don't have that here.
>
> A certain type information (and serializer) is equal to another one if
> they
> describe the same type, strictly. There is no necessity for cross
> hierarchy
> checks.
>
> This has also let to the situation that most type infos and serializers
> implement just a dummy/default version of "canEqual". Many "equals()"
> methods do not even call the other object's "canEqual", etc.
>
> As a first step, we could simply deprecate the method and implement an
> empty default, and remove all calls to that method.
>
> Best,
> Stephan
>

Reply via email to