-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable the weak_delegate SwiftLint rule #21068
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Yes, yes, yes.
For those cases where the "delegate" should be strongly referenced, we can use SwiftLint's swiftlint:disable special code comments to ignore the issue.
Agree. Looking into the future, we should call something a delegate
where it behaves as expectedly, especially in iOS ecosystem. This rule will ensure that.
I'm approving the change, the CI will do the rest.
As I understand the plan would be to merge it after dealing with all incorrectly non-weak delegates?
Yes. I have addressed all the violations. Once all the PRs (all referenced in #21050) are merged, I'll get this PR out of draft state. |
6b8e224
to
e662c7c
Compare
|
App Name | ![]() |
|
Configuration | Release-Alpha | |
Build Number | pr21068-e662c7c | |
Version | 22.8 | |
Bundle ID | com.jetpack.alpha | |
Commit | e662c7c | |
App Center Build | jetpack-installable-builds #5431 |
|
App Name | ![]() |
|
Configuration | Release-Alpha | |
Build Number | pr21068-e662c7c | |
Version | 22.8 | |
Bundle ID | org.wordpress.alpha | |
Commit | e662c7c | |
App Center Build | WPiOS - One-Offs #6404 |
Fixes #21050.
The
weak_delegate
SwiftLint rule reports issues on all strong references to types whose name has 'Delegate' in it. Enabling this SwiftLint rule will help us catching retain cycles.Majority of "delegate" types follow observer pattern, which should be declared as weak references. For those cases where the "delegate" should be strongly referenced, we can use SwiftLint's
swiftlint:disable
special code comments to ignore the issue.Regression Notes
Potential unintended areas of impact
None.
What I did to test those areas of impact (or what existing automated tests I relied on)
None.
What automated tests I added (or what prevented me from doing so)
None.
PR submission checklist:
RELEASE-NOTES.txt
if necessary.UI Changes testing checklist: N/A