SwiftLint icon indicating copy to clipboard operation
SwiftLint copied to clipboard

[Rule Request] Superfluous Swift Version Check Rule

Open marcelofabri opened this issue 2 years ago • 0 comments

New Issue Checklist

New rule request

Similar to deployment_target, we could have a rule to catch code that is always executed given the current Swift version.

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

It's common to add #if swift(>=X.Y) checks during migration periods, but after a certain point, codebases drop old Swift versions, but these checks are rarely cleaned.

This rule would help with that.

  1. Provide several examples of what would and wouldn't trigger violations.
// triggers if our minimum supported version is 5.3
#if swift(>=4.2)
// do something
#endif 

// don't trigger if our current version is 5.3
#if swift(>=5.7)
// do something
#endif 
  1. Should the rule be configurable, if so what parameters should be configurable?

The min Swift version should be configurable (and the default value would be the current Swift version)

  1. Should the rule be opt-in or enabled by default? Why? See README.md for guidelines on when to mark a rule as opt-in.

Probably opt-in since people need to set the min Swift version properly for it to be useful.

marcelofabri avatar Jul 26 '22 08:07 marcelofabri