Skip to content

prefer_key_path: false error and auto correct for static members  #5831

Open
@Nef10

Description

@Nef10

New Issue Checklist

Bug Description

A clear and concise description of what the bug is. Ideally, provide a small (but compilable) example code snippet that
can be used to reproduce the issue.

struct MyStruct {
  static var staticMember = "test"
}

let foo: [MyStruct.Type] = [MyStruct.self]
let bar = foo.map { $0.staticMember }

Mention the command or other SwiftLint integration method that caused the issue. Include stack traces or command output.

$ swiftlint lint

Produces test.swift:6:19: warning: Prefer Key Path Violation: Use a key path argument instead of a closure with property access (prefer_key_path)

$ SwiftLint lint --fix

Changes it into

struct MyStruct {
  static var staticMember = "test"
}

let foo: [MyStruct.Type] = [MyStruct.self]
let bar = foo.map(\.staticMember)

Which is not valid swift code: error: key path cannot refer to static member 'staticMember'

Environment

  • SwiftLint version: 0.57.0
  • Xcode version: 16.0
  • Installation method used: Homebrew
  • Configuration file:
opt_in_rules:
  - prefer_key_path

Are you using nested configurations? No

Metadata

Metadata

Assignees

No one assigned

    Labels

    acceptable-false-positiveFalse positives caused by rules that are unavoidable due to missing type information.bugUnexpected and reproducible misbehavior.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions