Fix -[RLMSwiftCollectionBase isEqual:]
#7229
Open
+40
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There is a bug in Realm where
-[RLMSwiftCollectionBase isEqual:]does not correctly test for twoList<>s equality.Simple example:
Why is this a problem?
-[RLMSwiftCollectionBase isEqual:]is currently implemented in a way that it can only ever returnYESfor unmanaged list objects (see line 89).This change was introduced by #6845, which attempted to add support for comparing unmanaged
Lists andRLMArrays. However, it seems like this PR in fact changed the behaviour so that instead of also being able to compare unmanaged lists, you can now only compare unmanaged lists.Note: The PR mentioned above also added
-[RLMArray isEqual:], with a pretty much identical implementation (only returnYESfor unmanaged objects).However, since
RLMArrayseems to be used exclusively for unmanaged arrays, I left that method unchanged. (RLMManagedArrayseems to have a correctisEqual:implementation.)