realm / SwiftLint

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

SwiftLint is recognizing Typed-Error as identifier #5631

Open SwiftyJunnos opened 2 weeks ago

SwiftyJunnos commented 2 weeks 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 2 weeks ago

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