realm / SwiftLint

A tool to enforce Swift style and conventions.
https://realm.github.io/SwiftLint
MIT License
18.7k stars 2.23k forks source link

SwiftLint is recognizing Typed-Error as identifier #5631

Closed SwiftyJunnos closed 5 months ago

SwiftyJunnos commented 5 months ago

New Issue Checklist

Describe the bug

SwiftLint is making error to Typed-Error which is introduced in Swift 6. It seems that it's parsing Typed-Error as function's parameter.

//
//  JourneyRepository.swift
//  MSDomain
//
//  Created by 이창준 on 2023.12.24.
//

import SwiftData

import Entity
import MSError

public protocol JourneyRepository {
    func fetchJourneys(in region: Region) async throws -> [Journey]
    func fetchTravelingJourney() async throws(JourneyError) -> Journey
    @discardableResult
    func saveJourney(_ journey: Journey) async throws(JourneyError) -> Journey // Error this line
}
Complete output when running SwiftLint, including the stack trace and command used
$ swiftlint lint JourneyRepository.swift
Linting Swift files at paths JourneyRepository.swift
Linting 'JourneyRepository.swift' (1/1)
JourneyRepository.swift:17:55: error: Identifier Name Violation: Variable name 'JourneyError' should start with a lowercase character (identifier_name)
JourneyRepository.swift:14:1: warning: Indentation Width Violation: Code should be indented using one tab or 2 spaces (indentation_width)
Done linting! Found 2 violations, 1 serious in 1 file.

Environment

excluded:
  - ${PWD}/Carthage
  - ${PWD}/Pods
  - ${PWD}/DerivedData
  - ${PWD}/Features

disabled_rules:
  - discarded_notification_center_observer
  - notification_center_detachment
  - orphaned_doc_comment
  - todo
  - unused_capture_list

analyzer_rules:
  - unused_import

opt_in_rules:
  - array_init
  - attributes
  - closure_end_indentation
  - closure_spacing
  - collection_alignment
  - colon # promote to error
  - convenience_type
  - discouraged_object_literal
  - empty_collection_literal
  - empty_count
  - empty_string
  - enum_case_associated_values_count
  - fatal_error_message
  - first_where
  - force_unwrapping
  - implicitly_unwrapped_optional
  - indentation_width
  - last_where
  - legacy_random
  - literal_expression_end_indentation
  - multiline_arguments
  - multiline_function_chains
  - multiline_literal_brackets
  - multiline_parameters
  - multiline_parameters_brackets
  - operator_usage_whitespace
  - overridden_super_call
  - pattern_matching_keywords
  - prefer_self_type_over_type_of_self
  - redundant_nil_coalescing
  - redundant_type_annotation
  - strict_fileprivate
  - toggle_bool
  - trailing_closure
  - unneeded_parentheses_in_closure_argument
  - vertical_whitespace_closing_braces
  - vertical_whitespace_opening_braces
  - yoda_condition

custom_rules:
  array_constructor:
    name: "Array/Dictionary initializer"
    regex: '[let,var] .+ = (\[.+\]\(\))'
    capture_group: 1
    message: "Use explicit type annotation when initializing empty arrays and dictionaries"
    severity: warning

attributes:
  always_on_same_line:
    - "@IBSegueAction"
    - "@IBAction"
    - "@NSManaged"
    - "@objc"

force_cast: warning
force_try: warning
function_body_length:
  warning: 60

legacy_hashing: error

identifier_name:
  excluded:
    - i
    - id
    - x
    - y
    - z

indentation_width:
  indentation_width: 2

line_length:
  ignores_urls: true
  ignores_function_declarations: true
  ignores_comments: true

multiline_arguments:
  first_argument_location: next_line
  only_enforce_after_first_closure_on_first_line: true

private_over_fileprivate:
  validate_extensions: true

trailing_whitespace:
  ignores_empty_lines: false
  ignores_comments: true

vertical_whitespace:
  max_empty_lines: 2
SimplyDanny commented 5 months ago

This is due to the fact that SwiftLint is not yet embedding SwiftSyntax 600.x.y.

SimplyDanny commented 5 months ago

This is due to the fact that SwiftLint is not yet embedding SwiftSyntax 600.x.y.

It's now used on main and will be part of the next release.

xlc commented 4 months ago

Got any idea of when the next release will be?