Suppress KVO warning when the property has an explicit setter #30098
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.
In #28135, we added a new warning when a non-
@objc dynamic
property is passed to the KVOobserve
method, because passing such a property can lead to unexpected behaviour or runtime trap.However, the user might have an
@objc
property (without thedynamic
modifier) and perform the updates manually, by callingwillChangeValue
anddidChangeValue
:This is okay to do, so suppress the warning if we have an explicit setter on the
@objc
property. We could go further and check for those specific calls, but it's probably safe to assume that those calls are being made if there's an explicit setter.Resolves SR-12286
Resolves rdar://problem/59702530
Resolves FB7595420