-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
redundant_discardable_let
rule causes a compilation error for things that are wrapped in a result-builder annotation
#3855
Comments
Thanks for the report. It should be possible to check to see if we're in a result builder. |
@jpsim you're welcome! Do you think it would be a good idea to temporarily suppress the autofix-support for this rule and/or temporarily change it from being an opt-out rule to being an opt-in rule, just until this bug is fixed? Perhaps such temporary changes would cause more problems than they're worth though. What are your thoughts :)? |
That's my thoughts on this. I suggest you disable the rule with |
@jpsim Thanks. I've already opted to disable the rule by adding it to my disabled rules list in my config file, as in my projects, whenever I have a |
Did anyone make any progress in detecting a builder context? I'm having this problem as well, and we are separately having this problem in Muter. |
Just hit this problem myself. Any updates on the resolution/closing of this issue? I'm not sure if I agree with the |
The meaning of this label is that this is a bug we have to (not we want to) accept due to insufficient syntactic information available to reliably detect the cases where removing the The described issue is such a bug. There is no way to know if the declaration is part of a result builder context. The only improvement I can think of is to explicitly ignore the |
New Issue Checklist
Describe the bug
redundant_discardable_let
rule causes a compilation error for things that are wrapped in a result-builder annotation.Here's a link to the rule on GitHub which contains the bug: https://github.com/realm/SwiftLint/blob/master/Source/SwiftLintFramework/Rules/Style/RedundantDiscardableLetRule.swift
It's unsafe, for say, the
body
property of a struct which conforms to theView
protocol from SwiftUI (and which therefore has abody
property that's implicitly-annotated with the@ViewBuilder
result-builder annotation), to replace this code snippet:with this code snippet:
as making such a replacement, would result in a compilation error. In this specific example, that compilation error will be: "Type '()' cannot conform to 'View'".
Complete output when running SwiftLint, including the stack trace and command used
Environments
SwiftLint version: 0.46.2
Installation method used: Homebrew
Paste your configuration file:
N/A - default settings were used.
Nested configurations are not being used.
Xcode version: Xcode 13.2 Build version 13C5066c
Running the command:
swiftlint lint --path /Users/jeremy/dev/xcode/SwiftLintBugDemoApp/SwiftLintBugDemoApp/ContentView.swift --no-cache --enable-all-rules
produced the following output:The text was updated successfully, but these errors were encountered: