realm / realm/SwiftLint

Warn implicit self for weak self captures, after self is unwrapped

Open
#5,331 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

discussion rule-request
Dominant language
Swift
Stars
19.7k
Forks
2.3k
Avg merge
1d 1h
Merged PRs (30d)
11

Description

New Issue Checklist
New rule request

Implicit self is now permitted for weak self captures, after self is unwrapped. For example:

class ViewController {
  let button: Button

  func setup() {
      button.tapHandler = { [weak self] in
          guard let self else { return }
          dismiss() // refers to `self.dismiss()`
      }
  }

  func dismiss() { ... }
}

Is it possible to have a rule that warns if an implicit self is used?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points. Start by reviewing SwiftLint’s existing rule implementations and test layout, then trace how closure captures and implicit self references are analyzed. Done means the rule detects implicit self after weak self is unwrapped and has coverage for the example behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.