realm / realm/SwiftLint

Rule Request: Inverting redundant_optional_initialization

Open
#2,785 4 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Proposal: add an "inverted" configuration option to the existing redundant_optional_initialization rule, so that initializing variables with nil is required rather than disallowed.

Also, I have found that variables declared as Optional<Type> rather than Type? are not implicitly initialized to nil. The rule as currently implemented assumes that they are, so I intend to fix that while I'm at it.

New Issue Checklist
New rule request

Please describe the rule idea, format
this issue's title as Rule Request: [Rule Name] and describe:

  1. Why should this rule be added? Share links to existing discussion about what
    the community thinks about this.

Inspired by this discussion in the Swift forums: https://forums.swift.org/t/prepitch-optional-variables-should-require-explicit-initialization-to-nil/26077

  1. Provide several examples of what would and wouldn't trigger violations.

The reverse of the examples for the existing rule.

  1. Should the rule be configurable, if so what parameters should be configurable?

Setting inverted: true would treat the absence, rather than presence, of = nil as a violation.

  1. Should the rule be opt-in or enabled by default? Why?

The inverted configuration should default to false to preserve existing behavior.

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

Start with the existing redundant_optional_initialization rule and its current examples and configuration. Check how Optional declarations are handled, then define the inverted setting so omission or presence of = nil is diagnosed as intended while preserving the default behavior; verify both cases with the rule's tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
tooling
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 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.