[Breaking] Unlock Self for observable types #7448
Closed
+522
−2,043
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.
This PR does a number of things. The downside of these things is that
observe
will be less discoverable in our docs, but it does consolidate a lot of code, makes our API more type safe, and removes functionality that didn't really work:Self
for observable types. By moving object observation behind a private protocol, and collection observationcleaned up, key path filtering and Object/CollectionChanges have become more type safe. Previously, keyPath filtering
was called as:
Now the class can be dropped, as it is derived from the calling type:
Non-keyPath filtering has also been enhanced. Previously:
Now:
The above is all unlocked for collection observation as well.
RealmCollection
.