Rule Request: Don't add ACL modifiers when they're already the default
New Rule Request
Avoid redundant access-level modifiers such as internal on top-level declarations.
-
Why should this rule be added? Share links to existing discussion about what the community thinks about this.
See header.
-
Provide several examples of what would and wouldn't trigger violations.
Triggering:
internal struct S { internal let a = 1 }public extension E { public func f() {} }Not triggering:
public struct S { internal let a = 1 } -
Should the rule be configurable, if so what parameters should be configurable?
Nothing to configure.
-
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.
Opt-in. It will conflict with the
explicit_aclrule which is also opt-in.
It probably makes sense to implement this as a required option for explicit_acl that accepts values like always (default; current behavior) & only_when_necessary (implements your proposed rule). Maybe other useful values could be added later, but I haven't yet thought of any others.
In general, I think it makes sense to have a configurable rule option instead of 2 separate rules with opposite functionality.