SwiftLint icon indicating copy to clipboard operation
SwiftLint copied to clipboard

empty_enum_arguments false positive, --fix command breaks code preventing successful compile

Open edorphy opened this issue 2 years ago • 1 comments

New Issue Checklist

Describe the bug

The empty_enum_arguments has false positives when using HealthKit types. HealthKit still has a number of types using static functions instead of static vars. The --fix command will remove the required parenthesis and make the code not compile.

Screenshot 2023-10-09 at 7 46 11 AM

https://developer.apple.com/documentation/healthkit/hkunit

Since there are system APIs in the health space and probably other built-in sdks outside of the developers control, this rule should allow a customization to provide an allow list or ignore list.

Complete output when running SwiftLint, including the stack trace and command used
$ swiftlint lint

Environment

0.53.0 pkg install

  • SwiftLint version (run swiftlint version to be sure)?
  • Installation method used (Homebrew, CocoaPods, building from source, etc)?
  • Paste your configuration file:
# insert yaml contents here

empty_enum_arguments is on by default

  • Are you using nested configurations? No
  • Which Xcode version are you using (check xcodebuild -version)? Version 15.0 (15A240d)
  • Do you have a sample that shows the issue? See screenshot above or sample code below
    static func swiftLintFalsePositive(for unit: HKUnit) {
        switch unit {
        case .foot(), .inch():
            print("foot or inch")
            
        case .meter(), .meterUnit(with: .kilo):
            print("metric units")
            
        default:
            print("Something else")
        }
    }

edorphy avatar Oct 09 '23 12:10 edorphy

The Swift compiler now complains about empty parentheses on enum cases if the they don't have associated values. Therefore, empty_enum_arguments should just ignore them and only remove argument lists containing only placeholders. Doing so also fixes this ticket.

SimplyDanny avatar Oct 15 '23 11:10 SimplyDanny