Skip to content

Releases: realm/SwiftLint

0.23.0: Permanent Press Cycle

04 Oct 01:21
Compare
Choose a tag to compare
Breaking
  • None.
Enhancements
  • Fix csv reporter to output records with new lines.
    atetlaw

  • Add contains_over_first_not_nil rule to encourage using contains over
    first(where:) != nil.
    Samuel Susla
    #1514

  • Add fallthrough rule that flags usage of fallthrough.
    Marcelo Fabri
    #1834

  • Improve colon rule to catch violations in dictionary types
    (e.g. [String: Int]), when using Any and on function calls.
    Marcelo Fabri
    #1074
    #1389

  • Add switch_case_alignment rule to validate that case and default
    statements are vertically aligned with their enclosing switch statement.
    Austin Lu

  • Add array_init opt-in rule to validate that Array(foo) should be preferred
    over foo.map({ $0 }).
    Marcelo Fabri
    #1271

  • Truncate long configuration console descriptions to fit in the console window
    when running swiftlint rules.
    JP Simard
    #1002

  • Add multiline_arguments opt-in rule that warns to either keep
    all the arguments of a function call on the same line,
    or one per line.
    Marcel Jackwerth

  • Add unneeded_break_in_switch rule to validate that no extra breaks are
    added in switch statements.
    Marcelo Fabri
    #1870

  • Add literal_expression_end_indentation opt-in rule to validate that
    array and dictionary literals ends have the same indentation as the line
    that started them.
    Marcelo Fabri
    #1435

Bug Fixes
  • Improve how opening_brace rule reports violations locations.
    Marcelo Fabri
    #1811

  • Fix false negatives in unneeded_parentheses_in_closure_argument rule
    when using capture lists.
    Marcelo Fabri
    #1817

  • Fix handling of attributes (lazy, objc, etc.) for the let_var_whitespace
    rule.
    David Catmull
    #1770
    #1812

  • Fix false positives in for_where rule when using if var inside for.
    Marcelo Fabri
    #1838

  • Fix false positive in class_delegate_protocol rule when using Swift 4.0.1.
    Marcelo Fabri
    #1856

  • Print multi-line configuration values in a single line when running
    swiftlint rules to avoid breaking the table format.
    JP Simard
    #1002

  • Ignore SwiftLint commands (swiftlint:(disable|enable)) in file_header
    rule, making it work better with superfluous_disable_command rule.
    Marcelo Fabri
    #1810

  • Fix false negatives in generic_type_name, identifier_name and type_name
    rules when using allowed_symbols.
    Marcelo Fabri

0.22.0: Wrinkle-free

30 Aug 17:46
Compare
Choose a tag to compare
Breaking
Enhancements
  • Add is_disjoint rule to encourage using Set.isDisjoint(with:) over
    Set.intersection(_:).isEmpty.
    JP Simard

  • Add xctfail_message rule to enforce XCTFail
    calls to include a description of the assertion.
    Ornithologist Coder
    #1370

  • Add joined_default_parameter correctable opt-in rule to discourage
    explicit usage of the default separator.
    Ornithologist Coder
    #1093
    #1757

  • Files with extensions other than .swift can now be used as arguments
    to --file when linting or autocorrecting.
    Marcelo Fabri
    #1721

  • Allow ()?, Void?, ()!, and Void! as return types in
    redundant_void_return rule.
    Ryan Booker
    #1761

  • Add single_test_class opt-in rule to validate that test files
    only contain a single QuickSpec or XCTestCase subclass.
    Ornithologist Coder
    #1779

  • Produce an error when a // swiftlint:disable command does not silence
    any violations.
    JP Simard
    #1102

  • Add quick_discouraged_call opt-in rule to discourage calls and object
    initialization inside 'describe' and 'context' block in Quick tests.
    Ornithologist Coder
    #1781

  • Invalidate cache when Swift version changes.
    Marcelo Fabri

  • Add pattern_matching_keywords opt-in rule to enforce moving let and var
    keywords outside tuples in a switch.
    Marcelo Fabri
    #202

  • Add explicit_enum_raw_value opt-in rule to allow refactoring the
    Swift API without breaking the API contract.
    Mazyod
    #1778

  • Add no_grouping_extension opt-in rule to disallow the use of extensions
    for code grouping purposes within the same file.
    Mazyod
    #1767

  • Improve syntactic_sugar violation message to be type-specific.
    Marcelo Fabri
    #1803

  • Add multiple_closures_with_trailing_closure rule that disallows trailing
    closure syntax when passing more than one closure argument to a function.
    Erik Strottmann
    #1801

Bug Fixes
  • Fix false positive on force_unwrapping rule when declaring
    local variable with implicity unwrapped type.
    Otávio Lima
    #1710

  • Fix the warning message and autocorrection of vertical_whitespace rule to
    display the maximum empty lines allowed if max_empty_lines is greater
    than 1.
    Hossam Ghareeb
    #1763

  • Fix for the wrong configuration being used when using --path and a
    configuration exists in a parent directory.
    Marcelo Fabri
    #1744

  • Fix false positive on unused_enumerated rule with complex variable
    bindings.
    Marcelo Fabri
    #1787

  • Fix incorrect violations and autocorrections on
    unneeded_parentheses_in_closure_argument rule that were generated in some
    cases (mainly when using chained method calls with closures).
    Marcelo Fabri

0.21.0: Vintage Washboard

01 Aug 22:25
Compare
Choose a tag to compare
Breaking
  • Xcode 8.3 or later and Swift 3.1 or later are required to build.
    Norio Nomura
Enhancements
  • Rules are now categorized as lint, idiomatic, style, metrics
    or performance. Currently this is just used for documentation purposes
    when you run swiftlint rules or swiftlint generate-docs.
    Marcelo Fabri

  • Add rules documentation generation.
    Marcelo Fabri
    #1078

  • Add private_over_fileprivate correctable rule to check for top-level usages
    of fileprivate and recommend private instead. This is in line with
    SE-0169's goal "for fileprivate to be used rarely". There is a also a new
    strict_fileprivate opt-in rule that will mark every fileprivate
    as a violation (especially useful with Swift 4).
    Jose Cheyo Jimenez
    Marcelo Fabri
    #1469
    #1058

  • Add let_var_whitespace opt-in rule to enforce that let/var declarations
    should be separated from other statements by a single blank line.
    Uncommon
    #1461

  • Improve performance when linting and correcting on Linux,
    matching macOS behavior.
    JP Simard
    #1577

  • Don't trigger implicit_getter violations when attributes (such as mutating
    or @inline) are present.
    Marcelo Fabri
    #1309
    #1589

  • Add --use-tabs option to AutoCorrectOptions, enabling formatting using
    tabs over spaces.
    Cody Winton
    #1327

  • Improve autocorrect performance by running it in parallel.
    Marcelo Fabri
    #1578

  • Support building with Xcode 9 beta 3 in Swift 3.2 mode.
    JP Simard

  • Add support for optional error severity level configuration.
    Jamie Edge
    Marcelo Fabri
    #1647

  • Add unneeded_parentheses_in_closure_argument opt-in correctable rule that
    warns against using parentheses around argument declarations in closures.
    Marcelo Fabri
    #1483

  • Add --disabled flag to swiftlint rules to print only rules that are
    not enabled in the configuration.
    Marcelo Fabri

  • Add ignore_comment_only_lines boolean configuration option
    to file_length rule. With the option enabled, file_length will
    ignore lines which have only comments.
    Samuel Susla
    #1165

  • Improve file_header rule description.
    Marcelo Fabri
    #1492

  • Add trailing_closure opt-in rule that validates that trailing
    closure syntax should be used whenever possible.
    Marcelo Fabri
    #54

  • Shebang (#!) in the beginning of a file is now ignored by all rules.
    Marcelo Fabri
    #1294

  • Add block_based_kvo rule that enforces the usage of the new block based
    KVO API added when linting with Swift 3.2 or later.
    Marcelo Fabri
    #1714

  • Make file_header rule ignore doc comments.
    Marcelo Fabri
    #1719

  • Allow using environment variables in a configuration file in the form of
    ${SOME_VARIABLE}. The variables will be expanded when the configuration
    is first loaded.
    Marcelo Fabri
    #1512

  • Treat yes, no, on and off as strings (and not booleans) when loading
    configuration files.
    Marcelo Fabri
    #1424

  • Add discouraged_direct_init rule that discourages direct
    initialization of certain types.
    Ornithologist Coder
    #1306

Bug Fixes
  • Fix false positive on redundant_discardable_let rule when using
    while statements.
    Marcelo Fabri
    #1669

  • Fix all custom rules not being applied when any rule is configured
    incorrectly.
    Jamie Edge
    #1586

  • Fix crash when using --config with a relative path and
    --path with a file.
    Marcelo Fabri
    #1694

  • Fix mark rule corrections generating invalid code in some cases.
    Marcelo Fabri
    #1029

  • Fix false positive in empty_enum_arguments rule when using wildcards and
    where clauses.
    Marcelo Fabri
    #1722

  • Fix false positive in large_tuple rule when using throwing closure.
    Liquidsoul

  • Make vertical_parameter_alignment more robust, fixing false positives and
    detecting previously missed violations.
    JP Simard
    #1488

0.20.1: More Liquid Fabric Softener

01 Jul 18:29
Compare
Choose a tag to compare
Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Fix typo in FatalErrorMessageRule.
    Alexander Lash

  • Don't trigger an extension_access_modifier violation when all extension
    members are open, as open extension is not supported by Swift.
    Marcelo Fabri
    #1629

  • Don't trigger a vertical_parameter_alignment_on_call violation when
    trailing closures are used.
    Marcelo Fabri
    #1635

  • Make vertical_parameter_alignment_on_call more flexible when multiline
    parameters are used.
    Marcelo Fabri
    #1630
    #1643

  • Use the directory's .swiftlint.yml when --path is used.
    Marcelo Fabri
    #1631

0.20.0: Liquid Fabric Softener

18 Jun 19:13
Compare
Choose a tag to compare
Breaking
  • None.
Enhancements
  • Add support for missing triggering cases in force_unwrapping
    when using subscript.
    Otávio Lima

  • Match (Void) as return type in the void_return rule.
    Anders Hasselqvist

  • Add multiline_parameters opt-in rule that warns to either keep
    all the parameters of a method or function on the same line,
    or one per line.
    Ornithologist Coder

  • Update function_parameter_count rule to ignore overridden methods.
    Markus Gasser
    #1562

  • Skip files with valid cache & no violations when auto correcting.
    Marcelo Fabri
    #1554

  • Don't trigger violations from the private_unit_test rule when a method has
    parameters.
    Marcelo Fabri
    #1532

  • Don't trigger violations from the discarded_notification_center_observer
    rule when the observer is being returned from a function that is not marked
    as @discardableResult.
    Marcelo Fabri
    #1525

  • Add extension_access_modifier opt-in rule validating that if all the
    declarations in a given extension have the same Access Control Level, the ACL
    keyword should be applied to the top-level extension.
    Marcelo Fabri
    #1546

  • Add vertical_parameter_alignment_on_call opt-in rule that validates that
    parameters are vertically aligned on a method call.
    Marcelo Fabri
    #1037

  • Add code_literal and image_literal boolean configuration options to
    object_literal rule. They allow to only check for one or the other
    literal type instead of both together.
    Cihat Gündüz
    #1587

Bug Fixes
  • Fix false positive in empty_enum_arguments rule when calling methods.
    Marcelo Fabri
    #1597

  • Fix crash in unused_closure_parameter rule when using unicode identifiers.
    Woo-Sik Byun
    Marcelo Fabri

  • Fix two false positives in force_unwrapping rule.
    Otávio Lima
    #614
    #977
    #1614

  • Fix custom rules not working correctly with comment commands.
    JP Simard
    #1558

  • Fix incorrectly using configuration files named .swiftlint.yml when they are
    located in the same directory as a differently-named, user-provided custom
    configuration file.
    JP Simard
    #1531

  • Fix empty_count rule false positive in words that include "count".
    Marcelo Fabri
    #1622

  • Use validates_start_with_lowercase key when decoding configurations for
    generic_type_name, identifier_name and type_name rules. This key was
    used on the docs, but internally validates_start_lowercase was used.
    Marcelo Fabri
    #1626

0.19.0: Coin-Operated Machine

25 May 21:27
0aa9338
Compare
Choose a tag to compare
Breaking
Enhancements
  • Cache linter results for files unmodified since the previous linter run.
    Victor Pimentel
    JP Simard
    Marcelo Fabri
    #1184
    #1550

  • Add opt-in configurations to generic_type_name, identifier_name and
    type_name rules to allow excluding non-alphanumeric characters and names
    that start with uppercase.
    Javier Hernández
    #541

  • Adds support for excluded in custom rules to exclude files.
    Nigel Flack
    #1437

  • Make trailing_comma rule autocorrectable.
    Samuel Susla
    Jeremy David Giesbrecht
    #1326

  • Added no_extension_access_modifier opt-in rule to disallow access modifiers
    completely, à la SE-0119.
    Jose Cheyo Jimenez
    #1457

  • Add lowercase and missing colon checks to the mark rule.
    Jason Moore

  • Improve violation reason wording in function_body_length,
    large_type, and type_body_length rules.  
    ultimatedbz

  • Add explicit_top_level_acl opt-in rule that validates that all top
    level declarations should explicitly be marked with an Access Control
    Level (private, fileprivate, internal, public or open).
    J. Cheyo Jimenez
    Marcelo Fabri
    #58

  • Add implicit_return opt-in rule that warns against using the return
    keyword when it can be omitted inside closures.
    Marcelo Fabri
    #1194

  • Add option to unused_optional_binding rule to ignore try?
    in guard statements.
    Sega-Zero
    #1432

  • Add empty_enum_arguments correctable rule that warns against using
    silent associated values inside a case.
    Marcelo Fabri
    #1425
    #1549

  • Remove file.zip from the Pods directory when installing SwiftLint via
    CocoaPods.
    Hesham Salman
    #1507

  • Add protocol_property_accessors_order correctable rule that validates
    that the order of accessors is get set when declaring variables
    in protocols.
    Marcelo Fabri
    #1504

  • Make Region & Command structs conform to Equatable.
    JP Simard

  • Make closure_spacing a CorrectableRule.
    J. Cheyo Jimenez

Bug Fixes
  • emoji and checkstyle reporter output report sorted by file name.
    norio-nomura
    #1429

  • Prevent false positive in shorthand_operator rule.
    sammy-SC
    #1254

  • Fix typo in DiscardedNotificationCenterObserverRule.
    Spencer Kaiser

  • Fix empty_parameters rule with Swift 3.
    Marcelo Fabri
    #1460

  • Prevent triggering redundant_optional_initialization rule
    on a lazy var since it needs initialization.
    Marcelo Fabri
    #1334

  • Fix ignores_case_statements key in cyclomatic_complexity description.
    Jeff Blagdon
    #1434

  • Fall back to reporting violations on line 1 if no line was provided for the
    violation's location, ensuring Xcode always displays the warning or error.
    rjhodge
    JP Simard
    #1520

  • Fix crash or incorrect violation location with strings including multi-byte
    unicode characters.
    Marcelo Fabri
    #1006

  • Fix false positive in syntactic_sugar rule when using nested types named
    Optional, ImplicitlyUnwrappedOptional, Array or Dictionary.
    Marcelo Fabri
    #1508

  • Fix false positives in prohibited_super_call & overridden_super_call rules
    where calls to super were done in nested scopes such as defer blocks.
    JP Simard
    #1301

  • Fix non-root configurations logging configuration warnings more than once.
    JP Simard
    #949

  • Fix some overlapping // swiftlint commands not being applied.
    JP Simard
    #1388

Coin-Operated Machine RC1

22 May 21:15
8ed4424
Compare
Choose a tag to compare
Pre-release

We encourage you to try this pre-release version of SwiftLint. There are lots of significant changes leading up to a 0.19.0 version, which is why we've decided to share a release candidate before pushing out an official stable release.

We're especially interested in hearing feedback on:

  • the newly-reenabled caching support (hence this release's cash-related name 😉 ). We'd love to hear if the cache ever returns any incorrect/stale results.
  • the removal of Swift 2 support & Swift 2-only rules like missing_docs and valid_docs.
  • lots of new rules & bug fixes.

Installation

  • Homebrew: brew update && brew upgrade swiftlint --HEAD
  • CocoaPods: pod 'SwiftLint', '= 0.19.0-rc.1'
  • Portable/pkg: See GitHub release attachments
Breaking
Enhancements
  • Cache linter results for files unmodified since the previous linter run.
    Victor Pimentel
    JP Simard
    #1184

  • Add opt-in configurations to generic_type_name, identifier_name and
    type_name rules to allow excluding non-alphanumeric characters and names
    that start with uppercase.
    Javier Hernández
    #541

  • Adds support for excluded in custom rules to exclude files.
    Nigel Flack
    #1437

  • Make trailing_comma rule autocorrectable.
    Samuel Susla
    Jeremy David Giesbrecht
    #1326

  • Added no_extension_access_modifier opt-in rule to disallow access modifiers
    completely, à la SE-0119.
    Jose Cheyo Jimenez
    #1457

  • Add lowercase and missing colon checks to the mark rule.
    Jason Moore

  • Improve violation reason wording in function_body_length,
    large_type, and type_body_length rules.  
    ultimatedbz

  • Add explicit_top_level_acl opt-in rule that validates that all top
    level declarations should explicitly be marked with an Access Control
    Level (private, fileprivate, internal, public or open).
    J. Cheyo Jimenez
    Marcelo Fabri
    #58

  • Add implicit_return opt-in rule that warns against using the return
    keyword when it can be omitted inside closures.
    Marcelo Fabri
    #1194

  • Add option to unused_optional_binding rule to ignore try?
    in guard statements.
    Sega-Zero
    #1432

  • Add empty_enum_arguments correctable rule that warns against using
    silent associated values inside a case.
    Marcelo Fabri
    #1425

  • Remove file.zip from the Pods directory when installing SwiftLint via
    CocoaPods.
    Hesham Salman
    #1507

  • Add protocol_property_accessors_order correctable rule that validates
    that the order of accessors is get set when declaring variables
    in protocols.
    Marcelo Fabri
    #1504

Bug Fixes
  • emoji and checkstyle reporter output report sorted by file name.
    norio-nomura
    #1429

  • Prevent false positive in shorthand_operator rule.
    sammy-SC
    #1254

  • Fix typo in DiscardedNotificationCenterObserverRule.
    Spencer Kaiser

  • Fix empty_parameters rule with Swift 3.
    Marcelo Fabri
    #1460

  • Prevent triggering redundant_optional_initialization rule
    on a lazy var since it needs initialization.
    Marcelo Fabri
    #1334

  • Fix ignores_case_statements key in cyclomatic_complexity description.
    Jeff Blagdon
    #1434

  • Fall back to reporting violations on line 1 if no line was provided for the
    violation's location, ensuring Xcode always displays the warning or error.
    rjhodge
    JP Simard
    #1520

  • Fix crash or incorrect violation location with strings including multi-byte
    unicode characters.
    Marcelo Fabri
    #1006

  • Fix false positive in syntactic_sugar rule when using nested types named
    Optional, ImplicitlyUnwrappedOptional, Array or Dictionary.
    Marcelo Fabri
    #1508

0.18.1: Misaligned Drum

06 Apr 23:53
ab66412
Compare
Choose a tag to compare
Breaking
  • Replace YamlSwift with Yams. SwiftLint no longer includes YamlSwift. If your
    project implicitly depends on YamlSwift, you need to modify it to depend on
    YamlSwift explicitly.
    norio-nomura
    #1412

  • Yams interprets YAML more strictly than YamlSwift, so if your YAML
    configurations previously worked with SwiftLint but didn't fully conform to
    the YAML 1.2 standard, you'll need to fix those validation errors.
    For example:

    custom_rules:
      wrong_regex:
        name: "wrong regex"
        regex: "((assert|precondition)\(false)" # '\' in "" means escape sequence
      strict_regex:
        name: "strict regex"
        regex: '((assert|precondition)\(false)' # Use single quotes
Enhancements
  • Support compiling with Xcode 8.3 and Swift 3.1.
    Keith Smiley

  • Fix false positives on for_where rule and skip violation on
    complex conditions.
    Marcelo Fabri
    #1387

  • Print YAML configuration errors in locatable format compatible with Xcode's
    Issue Navigator.

Bug Fixes

0.18.0: Misaligned Drum

06 Apr 22:20
f20e24c
Compare
Choose a tag to compare
Breaking
  • Replace YamlSwift with Yams. SwiftLint no longer includes YamlSwift. If your
    project implicitly depends on YamlSwift, you need to modify it to depend on
    YamlSwift explicitly.
    norio-nomura
    #1412

  • Yams interprets YAML more strictly than YamlSwift, so if your YAML
    configurations previously worked with SwiftLint but didn't fully conform to
    the YAML 1.2 standard, you'll need to fix those validation errors.
    For example:

    custom_rules:
      wrong_regex:
        name: "wrong regex"
        regex: "((assert|precondition)\(false)" # '\' in "" means escape sequence
      strict_regex:
        name: "strict regex"
        regex: '((assert|precondition)\(false)' # Use single quotes
Enhancements
  • Support compiling with Xcode 8.3 and Swift 3.1.
    Keith Smiley

  • Fix false positives on for_where rule and skip violation on
    complex conditions.
    Marcelo Fabri
    #1387

  • Print YAML configuration errors in locatable format compatible with Xcode's
    Issue Navigator.

Bug Fixes

0.17.0: Extra Rinse Cycle

23 Mar 21:45
Compare
Choose a tag to compare

This release brings 8 new rules, as well as important bug fixes and improvements to existing ones.
We also temporarily disabled the cache when linting until some important cache-related issues are addressed in a future version.

Breaking
  • variable_name rule (VariableNameRule) is now identifier_name
    (IdentifierNameRule) as it validates other identifiers as well.
    Marcelo Fabri
    #663

  • Fix sorted_imports rule to sort ignoring case.
    Keith Smiley
    #1185

  • Temporarily disable cache when linting. This will be re-enabled in a future
    version after important cache-related issues have been addressed.
    Marcelo Fabri

Enhancements
  • Add implicitly_unwrapped_optional opt-in rule that warns against using
    implicitly unwrapped optionals, except cases when this IUO is an IBOutlet.
    Siarhei Fedartsou
    #56

  • Performance improvements to generic_type_name, redundant_nil_coalescing,
    mark, first_where and vertical_whitespace rules.
    Marcelo Fabri

  • Add discarded_notification_center_observer rule that warns when the result
    of NotificationCenter.addObserver(forName:object:queue:using:) is not stored
    so it can be removed later.
    Marcelo Fabri
    #1062

  • Add notification_center_detachment rule that warns against an object
    removing itself from NotificationCenter in an unsafe location.
    Marcelo Fabri
    #1061

  • Accept AnyObject and NSObjectProtocol in class_delegate_protocol.
    Jon Shier
    #1261

  • Add ignores_function_declarations and ignores_comments as options to
    LineLengthRule.
    Michael L. Welles
    #598
    #975

  • Add for_where rule that validates that where is used in a for loop
    instead of a single if expression inside the loop.
    Marcelo Fabri
    #1228

  • unused_enumerated rule now warns when only the index is being used.
    You should use .indices instead of .enumerated() in this case.
    Marcelo Fabri
    #1278

  • Add ignores_case_statements as option to CyclomaticComplexityRule.
    Michael L. Welles
    #1298

  • Add correctable redundant_discardable_let rule that warns when
    let _ = foo() is used to discard a result from a function instead of
    _ = foo().
    Marcelo Fabri
    #1232

  • Accept global and local variables in implicit_getter rule.
    Marcelo Fabri

  • Add --enabled (or -e) switch to the rules CLI command, to only display
    enabled rules.
    Natan Rolnik
    #1270

  • Now nesting rule can be configured with a type and statement level.
    Hayashi Tatsuya
    #1318

  • Add explicit_type_interface opt-in rule that validates that the properties
    have an explicit type interface.
    Kim de Vos

  • Add --lenient CLI option to lint command. Facilitates running a lint task
    that doesn't fail a pipeline of other tasks.
    aaroncrespo
    #1322

  • Add fatal_error_message opt-in rule that validates that fatalError() calls
    have a message.
    Kim de Vos
    #1348

Bug Fixes
  • Fix crashes when accessing cached regular expressions when linting in
    parallel.
    JP Simard
    #1344

  • Fix a false positive on large_tuple rule when using closures.
    Marcelo Fabri
    #1234

  • Fix force_unwrap false positive for bool negation.
    Aaron McTavish
    #918

  • Fix false positive and wrong correction on number_separator rule.
    Marcelo Fabri
    #1242

  • Retain closure parameter types when they are specified during autocorrect.
    Allen Zeng
    #1175

  • Fix redundant_void_return matches if return type starts with Void~.
    Hayashi Tatsuya

  • Ignore unused_closure_parameter rule on closures that are called inline.
    Marcelo Fabri
    #1161

  • Disable valid_docs and missing_docs rules when running in Swift 2.3 or
    later as they have not been updated to work with those versions of Swift.
    Both rules are now opt-in because of this.
    JP Simard
    #728

  • Fix false positive on large_tuple rule when using generics inside a tuple.
    Marcelo Fabri
    #1257

  • Make ASTRule default implementation to navigate through the substructure
    even if its children are from a different kind. This fixes some violations not
    being reported in some contexts.
    Marcelo Fabri
    #1237

  • Reimplement switch_case_on_newline rule to be an ASTRule and be more
    reliable, fixing some false negatives and false positives.
    Marcelo Fabri
    #1268

  • Fix closure_end_indentation rule false positive when using single-line
    closures.
    Marcelo Fabri
    #1216

  • Fix todo rule messages when the comment is not on a new line.
    Marcelo Fabri
    #1304

  • Fix false negative on unused_closure_parameter rule.
    Hayashi Tatsuya

  • Fix checkstyle report format.
    Yuki Oya