Skip to content
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

unneeded_parentheses_in_closure_argument doesn't trigger with several nesting levels #2188

Closed
maveric94 opened this issue May 7, 2018 · 0 comments
Labels
bug Unexpected and reproducible misbehavior.

Comments

@maveric94
Copy link

New Issue Checklist

Bug Report

unneeded_parentheses_in_closure_argument rule doesn't trigger when several nested closures are used

Environment

  • SwiftLint version 0.25.1
  • CocoaPods
disabled_rules: # rule identifiers to exclude from running

opt_in_rules:
  - vertical_parameter_alignment_on_call
  - let_var_whitespace
  - joined_default_parameter
  - array_init
  - yoda_condition
  - closure_end_indentation
  - closure_spacing
  - empty_string
  - explicit_init
  - first_where
  - implicit_return
  - private_action
  - pattern_matching_keywords
  - empty_count
  - contains_over_first_not_nil
  - discouraged_object_literal
  - discouraged_optional_boolean
  - lower_acl_than_parent
  - operator_usage_whitespace
  - overridden_super_call
  - override_in_extension
  - prohibited_super_call
  - redundant_nil_coalescing
  - sorted_first_last
  - switch_case_on_newline
  - unneeded_parentheses_in_closure_argument
  - trailing_closure
 # - conditional_returns_on_newline

excluded:
  - Operations/Operations

closure_parameter_position:
  severity: error

vertical_whitespace:
  max_empty_lines: 1
  severity: error

void_return: 
  severity: error

trailing_newline: 
  severity: error

statement_position:
  severity: error

mark:
  severity: error

colon:
  severity: error

comma:
  severity: error

unused_optional_binding:
  severity: error

trailing_comma:
  severity: error

syntactic_sugar:
  severity: error

return_arrow_whitespace:
  severity: error

trailing_semicolon:
  severity: error

empty_parentheses_with_trailing_closure:
  severity: error

opening_brace:
  severity: error

redundant_optional_initialization:
  severity: error

vertical_parameter_alignment:
  severity: error

vertical_parameter_alignment_on_call:
  severity: error

operator_whitespace:
  severity: error

leading_whitespace:
  severity: error

control_statement:
  severity: error

private_over_fileprivate:
  severity: error
  validate_extensions: true

implicit_getter:
  severity: error

for_where:
  severity: error

legacy_constructor:
  severity: error

block_based_kvo:
  severity: error

weak_delegate:
  severity: error

type_name:
  min_length: 
    error: 4
  max_length:
    error: 40
  excluded: App

unused_closure_parameter:
  severity: error

trailing_whitespace:
  ignores_empty_lines: true
  ignores_comments: true
  severity: error

force_try:
  severity: error

identifier_name:
  min_length:
    error: 2
  max_length:
    error: 40
  excluded:
    - id
    - to
    - RU
    - EN
    - UK

line_length:
  ignores_comments: true
  ignores_urls: true
  error: 130
  warning: 120  

let_var_whitespace:
  severity: error

legacy_nsgeometry_functions:
  severity: error

legacy_constant:
  severity: error

legacy_cggeometry_functions:
  severity: error

large_tuple:
  error: 2

joined_default_parameter:
  severity: error

array_init:
  severity: error

yoda_condition:
  severity: error

closure_end_indentation:
  severity: error

closing_brace:
  severity: error

class_delegate_protocol:
  severity: error

compiler_protocol_init:
  severity: error

discarded_notification_center_observer:
  severity: error

discouraged_direct_init:
  severity: error

dynamic_inline:
  severity: error

empty_enum_arguments:
  severity: error

closure_spacing:
  severity: error

empty_string:
  severity: error

explicit_init:
  severity: error

fallthrough:
  severity: error

first_where:
  severity: error

implicit_return:
  severity: error

is_disjoint:
  severity: error

multiple_closures_with_trailing_closure:
  severity: error

nesting:
  type_level:
    error: 1
  statement_level:
    error: 3

notification_center_detachment:
  severity: error

private_unit_test:
  severity: error

protocol_property_accessors_order:
  severity: error

redundant_discardable_let:
  severity: error

redundant_string_enum_value:
  severity: error

redundant_void_return:
  severity: error

switch_case_alignment:
  severity: error

unneeded_break_in_switch:
  severity: error

unused_enumerated:
  severity: error

valid_ibinspectable:
  severity: error

xctfail_message:
  severity: error

private_action:
  severity: error

pattern_matching_keywords:
  severity: error

contains_over_first_not_nil:
  severity: error

discouraged_object_literal:
  severity: error

discouraged_optional_boolean:
  severity: error

lower_acl_than_parent:
  severity: warning

operator_usage_whitespace:
  severity: error

overridden_super_call:
  severity: error

force_cast:
  severity: warning

prohibited_super_call:
  severity: error

redundant_nil_coalescing:
  severity: error

sorted_first_last:
  severity: error

switch_case_on_newline:
  severity: error

override_in_extension:
  severity: warning

unneeded_parentheses_in_closure_argument:
  severity: error
// This doesn't trigger a violation:
        [].first { (temp) in
            [].first { (temp) in
                [].first { (temp) in
                    _ = temp
                    return false
                }
                return false
            }
            return false
        }

// This doesn't trigger a violation:
        [].first { temp in
            [].first { (temp) in
                [].first { (temp) in
                    _ = temp
                    return false
                }
                return false
            }
            return false
        }

// This triggers a violation:
        [].first { temp in
            [].first { temp in
                [].first { (temp) in
                    _ = temp
                    return false
                }
                return false
            }
            return false
        }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Unexpected and reproducible misbehavior.
Projects
None yet
Development

No branches or pull requests

2 participants