SwiftLint
SwiftLint copied to clipboard
missing_docs warns about actors not documenting public protocol properties
New Issue Checklist
- [x] Updated SwiftLint to the latest version
- [x] I searched for existing GitHub issues
Describe the bug
If you use the "actor" keyword, it implicitly conforms to the "Actor" protocol, but SwiftLint still warns about not documenting public properties from the Actor protocol. For example, if you provide a public "unownedExecutor", it warns about it not documenting it. But if you explicitly conform to "Actor" then it doesn't warn.
It seems like SwiftLint should treat actors as if they explicitly specified they conform to the "Actor" protocol.
Generates warnings
/// Documentation for MyActor.
public final actor MyActor {
public nonisolated var unownedExecutor: UnownedSerialExecutor { ... } // Warns here
}
No warnings
/// Documentation for MyActor.
public final actor MyActor: Actor {
public nonisolated var unownedExecutor: UnownedSerialExecutor { ... }
}
Complete output when running SwiftLint, including the stack trace and command used
$ swiftlint lint
Environment
- SwiftLint version (run
swiftlint version
to be sure)? 0.53.0 - Installation method used (Homebrew, CocoaPods, building from source, etc)? homebrew
- Paste your configuration file:
opt_in_rules:
- missing_docs
-
Are you using nested configurations? No
-
Which Xcode version are you using (check
xcodebuild -version
)? Invoking SwiftLint directly. -
Do you have a sample that shows the issue? Pasted above.
The reason you don't get a warning in the second case (explicitly conforming to Actor
) might be the option excludes_inherited_types
which is true
by default.
However, I agree that the rule could know about the protocol methods an actor
type comes with by default so it doesn't trigger on them.
Hi, Can I work on this?🙂
Hi, Can I work on this?🙂
Sure. Please go ahead.
I tried to fix this. But as I saw some merged pull requests that rewriting to use Swift Syntax, would I better to change whole file to Swift Syntax use?
I tried to fix this. But as I saw some merged pull requests that rewriting to use Swift Syntax, would I better to change whole file to Swift Syntax use?
There is a rewrite in #5048 already, but we haven't found the time to review it. It would indeed make sense to wait for it, before this change gets added.
There is a rewrite in #5048 already, but we haven't found the time to review it. It would indeed make sense to wait for it, before this change gets added.
OK 👍🏻 I got it.
@marunomi: The PR that rewrites this rule with SwiftSyntax just got merged. It ought to be a bit easier now to implement your enhancement. So please go ahead by rebasing your PR or start over with a new one if you like.