You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Aljoscha Krettek (JIRA)" <ji...@apache.org> on 2018/07/11 08:55:00 UTC

[jira] [Created] (FLINK-9798) Drop canEqual() from TypeInformation, TypeSerializer, etc.

Aljoscha Krettek created FLINK-9798:
---------------------------------------

             Summary: Drop canEqual() from TypeInformation, TypeSerializer, etc.
                 Key: FLINK-9798
                 URL: https://issues.apache.org/jira/browse/FLINK-9798
             Project: Flink
          Issue Type: Improvement
          Components: Core, Type Serialization System
            Reporter: Aljoscha Krettek
            Assignee: Aljoscha Krettek
             Fix For: 1.6.0


See discussion from https://lists.apache.org/thread.html/7cc6cfd66e96e8d33c768629b55481b6c951c68128f10256abb328fe@%3Cdev.flink.apache.org%3E

{quote}
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
{quote}





--
This message was sent by Atlassian JIRA
(v7.6.3#76005)