Skip to content

Releases: rubocop/rubocop

RuboCop 1.71.1

31 Jan 09:58
Compare
Choose a tag to compare

Bug fixes

  • #10081: Add the missing include RuboCop::RSpec::ExpectOffense in rubocop/rspec/support.rb. (@d4rky-pl)
  • #13765: Fix a false negative for Lint/AmbiguousBlockAssociation with numblocks. (@earlopain)
  • #13759: Fix a false negative for Lint/ConstantDefinitionInBlock with numblocks. (@earlopain)
  • #13741: Register an offense for Naming/BlockForwarding and Style/ArgumentsForwarding with Ruby >= 3.4 when the block argument is referenced inside a block. This was previously disabled because of a bug in Ruby 3.3.0. (@earlopain)
  • #13777: Fix a false negative for Layout/EmptyLineBetweenDefs with DefLikeMacros and numblocks. (@earlopain)
  • #13769: Fix a false negative for Style/RedundantParentheses with numblocks. (@earlopain)
  • #13780: Fix a false positive Style/AccessModifierDeclarations when using access modifier in a numblock. (@earlopain)
  • #13775: Fix a false positive for Lint/AssignmentInCondition when assigning in numblocks. (@earlopain)
  • #13773: Fix false positives for Layout/RedundantLineBreak when using numbered block parameter. (@koic)
  • #13761: Fix a false positive for Style/SuperArguments when calling super in a numblock. (@earlopain)
  • #13768: Fix a false positive for Lint/UnreachableCode with instance_eval numblock. (@earlopain)
  • #13750: Fix false positives for Style/RedundantSelfAssignment when assigning to attribute of self. (@koic)
  • #13739: Fix false positive for Style/HashExcept and Style/HashSlice when checking for inclusion with a range. (@dvandersluis)
  • #13751: Fix false positive in Layout/ExtraSpacing with ForceEqualSignAlignment: true for endless methods. (@dvandersluis)
  • #13767: Fix Style/IdenticalConditionalBranches autocorrect when condition is inside assignment. (@dvandersluis)
  • #13764: Fix a false negative for Layout/SingleLineBlockChain with numblocks. (@earlopain)
  • #13771: Fix wrong autocorrect for Style/SoleNestedConditional when using numblocks. (@earlopain)

RuboCop 1.71

23 Jan 16:20
Compare
Choose a tag to compare

New features

Bug fixes

  • #13684: Fix a false positive for Style/FrozenStringLiteralComment when using the frozen string literal magic comment in Active Admin's arb files. (@koic)
  • #13372: Add rubocop_cache to the path given by --cache-root when pruning cache. (@capncavedan)
  • #13257: Fix department disable/enable comments enabling the cop for the whole file even if that file is excluded by the cop. (@earlopain)
  • #13704: Fix false positives for Lint/OutOfRangeRegexpRef when matching with match using safe navigation. (@koic)
  • #13720: Fix false positives for Style/BlockDelimiters when using brace blocks as conditions under EnforcedStyle: semantic. (@koic)
  • #13688: Fix false negative on Style/RedundantLineContinuation when the continuation is preceded by an interpolated string. (@dvandersluis)
  • #13677: Fix false negative on Style/RedundantLineContinuation when the continuation is followed by a percent array. (@dvandersluis)
  • #13692: Fix false positive in Style/RedundantLineContinuation when the ruby code ends with a commented continuation. (@dvandersluis)
  • #13675: Fix invalid autocorrect for Style/ArrayFirstLast when calling .[] or &.[] with 0 or -1. (@dvandersluis)
  • #13685: Fix syntax error introduced by Lint/SafeNavigationChain when adding safe navigation to an operator call inside a hash. (@dvandersluis)
  • #13725: Fix an incorrect autocorrect for Style/IfUnlessModifier when using omitted hash values in an assignment. (@elliottt)
  • #13667: Maintain precedence in autocorrect for Style/SoleNestedConditional. (@tejasbubane)
  • #13679: Fix false positive for Style/RedundantLineContinuation when calling methods with fully qualified constants. (@earlopain)
  • #13728: Fix a RuboCop error on provided glob pattern which matches directory. (@viralpraxis)
  • #13693: Fix Style/ConditionalAssignment cop error on unless without else and assign_inside_condition enforced style. (@viralpraxis)
  • #13669: Fix Style/FrozenStringLiteralComment cop error on unnormalized magic comment and never enforced style. (@viralpraxis)
  • #13696: Update Metrics/CollectionLiteralLength to only register for [] when called on Set. (@dvandersluis)

Changes

RuboCop 1.70

10 Jan 07:49
Compare
Choose a tag to compare

New features

  • #13474: Add new Style/ItAssignment cop to detect local assignments to it inside blocks. (@dvandersluis)
  • #11013: Add new Lint/SharedMutableDefault cop to alert on mutable Hash defaults. (@corsonknowles)
  • #13612: Create new cop Lint/ConstantReassignment. (@lovro-bikic)
  • #13628: Make LSP server support quick fix code action. (@koic)
  • #13607: Support passing the target ruby version through an environment variable. (@elliottt)
  • #13628: Add support for Ruby LSP as a built-in add-on. (@koic)
  • #13284: Add new target_gem_version API to change behavior of a cop at runtime depending on which gem version is present. (@earlopain)

Bug fixes

  • #13589: Fix Lint/NonAtomicFileOperation to detect offenses with fully qualified constants. (@viralpraxis)
  • #13630: Fix CLI --format option to accept fully qualified formatter class names. (@viralpraxis)
  • #13624: Don't show warnings from Lint/Syntax when a syntax error occurs. (@earlopain)
  • #13605: Fix RuboCop::Cop::Util.to_string_literal to work correctly with frozen strings. (@viralpraxis)
  • #12393: Fix false negatives for Lint/Void inside of non-modifier conditionals. (@GabeIsman)
  • #13623: Fix false negatives for Style/MultipleComparison when setting AllowMethodComparison: false and comparing with simple method calls. (@koic)
  • #13644: Fix a false positive for Layout/EmptyLinesAroundAccessModifier when an access modifier and an expression are on the same line. (@koic)
  • #13645: Fix a false positive for Style/MethodCallWithArgsParentheses when setting EnforcedStyle: omit_parentheses and last argument is an endless range. (@earlopain)
  • #13614: Fix false positives for Style/RaiseArgs with anonymous splat and triple dot forwarding. (@earlopain)
  • #13591: Fix false positives for Lint/NestedMethodDefinition when defining a method on a constant or a method call. (@koic)
  • #13594: Fix false positives for Style/MultipleComparison when using multiple safe navigation method calls. (@koic)
  • #13654: Fix false positives for Style/RedundantInitialize when empty initialize method has arguments. (@marocchino)
  • #13608: Fix crash when running rubocop -d on a config with a remote inherit_from that causes a duplicate setting warning. (@dvandersluis)
  • #12430: Fix false negatives in Style/RedundantLineContinuation with multiple line continuations. (@dvandersluis)
  • #13638: Fix false positive for Naming/BlockForwarding when method just returns the block argument. (@mvz)
  • #13599: Fix incorrect autocorrect for Layout/HashAlignment when there is a multiline positional argument and Layout/ArgumentAlignment is configured with EnforcedStyle: with_fixed_indentation. (@dvandersluis)
  • #13586: Fix regression in Layout/SpaceAroundOperators when different comparison operators were aligned with each other. (@dvandersluis)
  • #13603: Fix Lint/LiteralInInterpolation cop error on invalid string literal. (@viralpraxis)
  • #13582: Fix Lint/NonAtomicFileOperation cop error on non-constant receiver. (@viralpraxis)
  • #13598: Fix Lint/Void cop error on if without body. (@viralpraxis)
  • #13634: Fix Style/ClassAndModuleChildren cop error on compact enforced style and unindented body. (@viralpraxis)
  • #13642: Fix Style/FloatDivision cop error if #to_f has implicit receiver. (@viralpraxis)
  • #13517: Fixes Style/HashExcept to recognize safe navigation when ActiveSupportExtensionsEnabled config is enabled. (@lovro-bikic)
  • #13585: Fix Style/HashSyntax cop error on implicit call method. (@viralpraxis)
  • #13632: Fix Style/MissingElse cop error if Style/EmptyElse's EnforcedStyle is not both and if expression contains elsif. (@viralpraxis)
  • #13659: Fix Style/MissingElse cop error if Style/EmptyElse's EnforcedStyle is not both and if expression contains multiple elsif. (@viralpraxis)
  • #13596: Fix Style/RedundantCondition cop error on parentheses and modifier if in else. (@viralpraxis)
  • #13616: Fix incorrect autocorrect for Style/RedundantRegexpArgument when the regex contains a single quote. (@mrzasa)
  • #13619: Fix Style/YodaExpression cop error in case of suffix form of operator. (@viralpraxis)
  • #13578: Update Layout/LineContinuationSpacing to ignore continuations inside a regexp or xstr. (@dvandersluis)
  • #13601: Update Style/SuperArguments to handle super with a block or with a chained method with a block. (@dvandersluis)
  • #13568: Fix NoMethodError in ConfigValidator when a Cop's config is not a Hash and raise ValidationError instead. (@amomchilov)

Changes

  • #13665: Add support for safe navigation to Style/ObjectThen. (@dvandersluis)
  • #13657: Add support for safe navigation to Layout/HashAlignment. (@dvandersluis)
  • #13656: Add support for safe navigation to Layout/HeredocArgumentClosingParenthesis. (@dvandersluis)
  • #13655: Add support for safe navigation to Layout/LineLength. (@dvandersluis)
  • #13662: Add support for safe navigation to Style/SendWithLiteralMethodName. (@dvandersluis)
  • #13557: Fix false positives for Lint/NumericOperationWithConstantResult. (@earlopain)
  • #13658: Fix invalid autocorrect for Style/SlicingWithRange when calling .[] or &.[] with a correctable range. (@dvandersluis)
  • #13548: Enhance Lint/DuplicateSetElement to detect offences within SortedSet. (@viralpraxis)
  • #13646: Update Layout/TrailingWhitespace to support blank characters other than space and tab. (@krororo)
  • #13652: Update Metrics/MethodLength to make use of AllowedMethods and AllowedPatterns for methods defined dynamically with define_method. (@dvandersluis)
  • #13606: Update Style/AccessModifierDeclarations to add AllowModifiersOnAliasMethod configuration (default true). (@dvandersluis)
  • #13663: Update Style/RedundantSelfAssignment to handle safe navigation on the right-hand side of the assignment. (@dvandersluis)

RuboCop 1.69.2

12 Dec 14:13
Compare
Choose a tag to compare

Bug fixes

  • #13553: Fix an incorrect autocorrect for Style/MultipleComparison when a variable is compared multiple times after a method call. (@koic)
  • #13562: Fix Bundler/DuplicatedGem cop error in case of empty branch. (@viralpraxis)
  • #13573: Fix Lint/UnescapedBracketInRegexp cop failure with invalid multibyte escape. (@earlopain)
  • #13556: Fix false positives for Style/FileNull when using 'nul' string. (@koic)
  • #12995: Fix --disable-uncorrectable to not insert directives inside a string. (@dvandersluis)
  • #13320: Fix incorrect autocorrect when Layout/LineContinuationLeadingSpace and Style/StringLiterals autocorrects in the same pass. (@dvandersluis)
  • #13299: Fix Style/BlockDelimiters to always accept braces when an operator method argument is chained. (@dvandersluis)
  • #13565: Fix Style/RedundantLineContinuation false negatives when a redundant continuation follows a required continuation. (@dvandersluis)
  • #13551: Fix an incorrect autocorrect for Style/IfWithSemicolon when using multi value assignment in if with a semicolon is used. (@koic)
  • #13534: Fix Layout/LineLength cop failure in case of YARD-comment-like string. (@viralpraxis)
  • #13558: Fix Lint/NonAtomicFileOperation cop error in case of implicit receiver. (@viralpraxis)
  • #13564: Fix Metrics/ClassLength cop error in case of chained assignments. (@viralpraxis)
  • #13570: Fix Naming/RescuedExceptionsVariableName cop error when exception is assigned with writer method. (@viralpraxis)
  • #13559: Fix a false positive for Style/RedundantLineContinuation when a method definition is used as an argument for a method call. (@davidrunger)
  • #13574: Fix Style/ExactRegexpMatch cop error on invalid regular expression literal. (@viralpraxis)
  • #13554: Fix Style/FrozenStringLiteralComment false positive in case of non-downcased value literal. (@viralpraxis)
  • #13569: Fix Style/MethodCallWithoutArgsParentheses cop error in case of mass hash assignment. (@viralpraxis)
  • #13542: Fix Style/RedundantCondition cop failure in case of empty arguments. (@viralpraxis)
  • #13509: Update Layout/ExtraSpacing and Layout/SpaceAroundOperators to handle preceding operators inside strings. (@dvandersluis)

RuboCop 1.69.1

03 Dec 16:37
Compare
Choose a tag to compare

Bug fixes

  • #13502: Fix an incorrect autocorrect for Style/DigChain when using safe navigation method chain with dig method. (@koic)
  • #13505: Fix an error for Style/ParallelAssignment when using the anonymous splat operator. (@earlopain)
  • #13184: Fix some false positives in Lint/UnreachableCode. (@isuckatcs)
  • #13494: Fix false positives for Style/HashExcept cop when using reject/!include?, reject/!in? or select/!exclude? combinations. (@lovro-bikic)
  • #13522: Fix Lint/UnescapedBracketInRegexp cop failure with invalid regular expression. (@viralpraxis)
  • #13523: Fix Style::AccessModifierDeclarations cop failure in case of if node without else. (@viralpraxis)
  • #13524: Fix Style/RedundantArgument cop failure while inspecting string literal with invalid encoding. (@viralpraxis)
  • #13528: Fix Style/RedundantParentheses cop failure in case of splatted case node without condition. (@viralpraxis)
  • #13521: Fix Style/RedundantSelf cop failure with kwnilarg argument node. (@viralpraxis)
  • #13526: Fix Style/StringConcatenation cop failure when there are mixed implicit and explicit concatenations. (@viralpraxis)
  • #13511: Fix false positive in Lint/UnescapedBracketInRegexp when using regexp_parser 2.9.2 and earlier. (@dvandersluis)
  • #13096: Update Style/BlockDelimiters to not change braces when they are required for syntax. (@dvandersluis)
  • #13512: Update Style/LambdaCall to be aware of safe navigation. (@dvandersluis)

RuboCop 1.69

26 Nov 16:05
Compare
Choose a tag to compare

New features

Bug fixes

  • #13455: Fix a false positive for Layout/EmptyLineAfterGuardClause when using a guard clause outside oneliner block. (@koic)
  • #13412: Fix a false positive for Style/RedundantLineContinuation when there is a line continuation at the end of Ruby code followed by __END__ data. (@koic)
  • #13476: Allow to write generics type of RBS::Inline annotation after subclass definition in Style/CommentedKeyword. (@dak2)
  • #13441: Fix an incorrect autocorrect for Style/IfWithSemicolon when using return with value in if with a semicolon is used. (@koic)
  • #13448: Fix an incorrect autocorrect for Style/IfWithSemicolon when the then body contains an arithmetic operator method call with an argument. (@koic)
  • #13199: Make Style/RedundantCondition skip autocorrection when a branch has a comment. (@koic)
  • #13411: Fix Style/BitwisePredicate when having regular method. (@d4be4st)
  • #13432: Fix false positive for Lint/FloatComparison against nil. (@lovro-bikic)
  • #13461: Fix false positives for Lint/InterpolationCheck when using invalid syntax in interpolation. (@koic)
  • #13402: Fix a false positive for Lint/SafeNavigationConsistency when using unsafe navigation with both && and ||. (@koic)
  • #13434: Fix a false positive for Naming/MemoizedInstanceVariableName for assignment methods`. (@earlopain)
  • #13415: Fix false positives for Naming/MemoizedInstanceVariableName when using initialize_clone, initialize_copy, or initialize_dup. (@koic)
  • #13421: Fix false positives for Style/SafeNavigation when using a method chain that exceeds the MaxChainLength value and includes safe navigation operator. (@koic)
  • #13433: Fix autocorrection for Style/AccessModifierDeclarations for multiple inline symbols. (@dvandersluis)
  • #13430: Fix EmptyLinesAroundMethodBody for methods with arguments spanning multiple lines. (@aduth)
  • #13438: Fix incorrect correction in Lint/Void if an operator is called in a void context using a dot. (@dvandersluis)
  • #13419: Fix Lint/DeprecatedOpenSSLConstant false positive when the argument is a safe navigation method call. (@dvandersluis)
  • #13404: Fix Style/AccessModifierDeclarations to register (as positive or negative, depending on AllowModifiersOnSymbols value) access modifiers with multiple symbols. (@dvandersluis)
  • #13436: Fix incorrect offense and autocorrect for Lint/RedundantSplatExpansion when percent literal array is used in a safe navigation method call. (@lovro-bikic)
  • #13442: Fix an incorrect autocorrect for Style/NestedTernaryOperator when ternary operators are nested and the inner condition is parenthesized. (@koic)
  • #13444: Fix an incorrect autocorrect for Style/OneLineConditional when the else branch of a ternary operator has multiple expressions. (@koic)
  • #13483: Fix an incorrect autocorrect for Style/RedundantRegexpArgument when using escaped double quote character. (@koic)
  • #13497: Fix infinite loop error for Style/IfWithSemicolon when using nested if/;/end in if body. (@koic)
  • #13477: Update Layout/LeadingCommentSpace to accept multiline shebangs at the top of the file. (@dvandersluis)
  • #13453: Update Style/AccessModifierDeclarations to handle attr_* methods with multiple parameters. (@dvandersluis)
  • #12597: Update Style/SingleLineDoEndBlock to not register an offense if it will introduce a conflicting Layout/RedundantLineBreak offense. (@dvandersluis)

Changes

  • #11680: Add autocorrection for strings to Layout/LineLength when SplitStrings is set to true. (@dvandersluis)
  • #13470: Make Style/ArrayIntersect aware of none?. (@earlopain)
  • #13481: Support unicode-display_width v3. (@gemmaro)
  • #13473: Update Lint/ItWithoutArgumentsInBlock to not register offenses in Ruby 3.4. (@dvandersluis)
  • #13420: Update Lint/RedundantSafeNavigation to register an offense when the receiver is self. (@dvandersluis)
  • #11393: Update Lint/UnusedMethodArgument to allow the class names for IgnoreNotImplementedMethods to be configured. (@dvandersluis)
  • #13058: Update Style/AccessModifierDeclarations to accept modifier with splatted method call. (@dvandersluis)

RuboCop 1.68

31 Oct 07:45
Compare
Choose a tag to compare

New features

Bug fixes

  • #13401: Fix a false negative for Style/RedundantLineContinuation when there is a line continuation at the EOF. (@koic)
  • #13368: Fix an incorrect autocorrect for Naming/BlockForwarding with Style/ExplicitBlockArgument. (@koic)
  • #13391: Fix deserialization of unknown encoding offenses. (@earlopain)
  • #13348: Ensure Style/BlockDelimiters autocorrection does not move other code between the block and comment. (@dvandersluis)
  • #13382: Fix an error during error handling for custom ruby extractors when the extractor is a class. (@earlopain)
  • #13309: Fix a false negative for Lint/UselessAssignment cop when there is a useless assignment followed by a block. (@pCosta99)
  • #13255: Fix false negatives for Style/MapIntoArray when using non-splatted arguments. (@vlad-pisanov)
  • #13356: Fix a false positive for Layout/SpaceBeforeBrackets when there is a dot before []=. (@earlopain)
  • #13365: Fix false positives for Lint/SafeNavigationConsistency when using safe navigation on the LHS with operator method on the RHS of &&. (@koic)
  • #13390: Fix false positives for Style/GuardClause when using a local variable assigned in a conditional expression in a branch. (@koic)
  • #13337: Fix false positives for Style/RedundantLineContinuation when required line continuations for && is used with an assignment after a line break. (@koic)
  • #13387: Fix false positives in Style/RedundantParentheses when parentheses are used around method chain with do...end block in keyword argument. (@koic)
  • #13341: Fix false positives for Lint/SafeNavigationChain when a safe navigation operator is used with a method call as the RHS operand of && for the same receiver. (@koic)
  • #13324: Fix --disable-uncorrectable to not insert a comment inside a string continuation. (@dvandersluis)
  • #13364: Fix incorrect autocorrect with Lint/UselessAssignment a multiple assignment or for contains an inner assignment. (@dvandersluis)
  • #13353: Fix an incorrect autocorrect for Style/BlockDelimiters when EnforcedStyle: semantic is set and used with Layout/SpaceInsideBlockBraces. (@koic)
  • #13361: Fix false positives for Style/RedundantInterpolationUnfreeze and Style/RedundantFreeze when strings contain interpolated global, instance, and class variables. (@vlad-pisanov)
  • #13343: Prevent Layout/LineLength from breaking up a method with arguments chained onto a heredoc delimiter. (@dvandersluis)
  • #13374: Return exit code 0 with --display-only-correctable and --display-only-safe-correctable when no offenses are displayed. (@dvandersluis)
  • #13193: Fix false positive in Style/MultipleComparison when ComparisonsThreshold exceeds 2. (@fatkodima, @vlad-pisanov)
  • #13325: Fix an incorrect autocorrect for Lint/NonAtomicFileOperation when using a postfix unless for file existence checks before creating a file, in cases with Dir.mkdir. (@kotaro0522)
  • #13397: Update PercentLiteralCorrector to be able to write pairs of delimiters without excessive escaping. (@dvandersluis)
  • #13336: Update Style/SafeNavigation to not autocorrect if the RHS of an and node is an or node. (@dvandersluis)
  • #13378: When removing parens in Style/TernaryParentheses with a send node condition, ensure its arguments are parenthesized. (@dvandersluis)

Changes

  • #13347: When running rubocop -V, show the analysis Ruby version of the current directory. (@earlopain)

RuboCop 1.67

15 Oct 10:16
Compare
Choose a tag to compare

New features

  • #13259: Add new Lint/DuplicateSetElement cop. (@koic)
  • #13223: Add AllowRBSInlineAnnotation config option to Layout/LeadingCommentSpace to support RBS::Inline style annotation comments. (@tk0miya)
  • #13310: Display analysis Ruby version in rubocop -V. (@koic)

Bug fixes

  • #13314: Fix a false negative for Style/Semicolon when using a semicolon between a closing parenthesis after a line break and a consequent expression. (@koic)
  • #13217: Fix a false positive in Lint/ParenthesesAsGroupedExpression with compound ranges. (@gsamokovarov)
  • #13268: Fix a false positive for Style/BlockDelimiters when a single line do-end block with an inline rescue with a semicolon before rescue. (@koic)
  • #13298: Fix an error for Layout/AccessModifierIndentation when the access modifier is on the same line as the class definition. (@koic)
  • #13198: Fix an error for Style/OneLineConditional when using nested if/then/else/end. (@koic)
  • #13316: Fix an incorrect autocorrect for Lint/ImplicitStringConcatenation with Lint/TripleQuotes when string literals with triple quotes are used. (@koic)
  • #13220: Fix an incorrect autocorrect for Style/ArgumentsForwarding when using only forwarded arguments in brackets. (@koic)
  • #13202: Fix an incorrect autocorrect for Style/CombinableLoops when looping over the same data with different block variable names. (@koic)
  • #13291: Fix an incorrect autocorrect for Style/RescueModifier when using modifier rescue for method call with heredoc argument. (@koic)
  • #13226: Fix --auto-gen-config when passing an absolute config path. (@earlopain)
  • #13225: Avoid syntax error when correcting Style/OperatorMethodCall with / operations followed by a parenthesized argument. (@dvandersluis)
  • #13235: Fix an error for Style/IfUnlessModifier when multiline if that fits on one line and using implicit method call with hash value omission syntax. (@koic)
  • #13219: Fix a false positive for Style/ArgumentsForwarding with Ruby 3.0 and optional position arguments. (@earlopain)
  • #13271: Fix a false positive for Lint/AmbiguousRange when using rational literals. (@koic)
  • #13260: Fix a false positive for Lint/RedundantSafeNavigation with namespaced constants. (@earlopain)
  • #13224: Fix false positives for Style/OperatorMethodCall with named forwarding. (@earlopain)
  • #13213: Fix false positives for Style/AccessModifierDeclarations when AllowModifiersOnAttrs: true and using splat with a percent symbol array, or with a constant. (@koic)
  • #13145: Fix false positives for Style/RedundantLineContinuation when line continuations with comparison operator and the LHS is wrapped in parentheses. (@koic)
  • #12875: Fix false positive for Style/ArgumentsForwarding when argument is used inside a block. (@dvandersluis)
  • #13239: Fix false positive for Style/CollectionCompact when using delete_if. (@masato-bkn)
  • #13210: Fix omit_parentheses style for pattern match with value omission in single-line branch. (@gsamokovarov)
  • #13149: Handle crashes in custom Ruby extractors more gracefully. (@earlopain)
  • #13319: Handle literal forward slashes inside a regexp in Lint/LiteralInInterpolation. (@dvandersluis)
  • #13208: Fix an incorrect autocorrect for Style/IfWithSemicolon when single-line if/;/end when the then body contains a method call with [] or []=. (@koic)
  • #13318: Prevent modifying blocks with Style/HashEachMethods if the hash is modified within the block. (@dvandersluis)
  • #13293: Fix TargetRubyVersion from a gemspec when the gemspec is not named like the folder it is located in. (@earlopain)
  • #13211: Fix wrong autocorrect for Style/GuardClause when using heredoc without else branch. (@earlopain)
  • #13215: Fix wrong autocorrect for Lint/BigDecimalNew when using ::BigDecimal.new. (@earlopain)
  • #13215: Fix wrong autocorrect for Style/MethodCallWithArgsParentheses with EnforcedStyle: omit_parentheses and whitespace. (@earlopain)
  • #13302: Fix incompatible autocorrect between Style/RedundantBegin and Style/BlockDelimiters with EnforcedStyle: braces_for_chaining. (@earlopain)

Changes

  • #13221: Do not group accessors having RBS::Inline annotation comments in Style/AccessorGrouping. (@tk0miya)
  • #13286: Add AllowedMethods configuration to Layout/FirstMethodArgumentLineBreak. (@dvandersluis)
  • #13110: Add support in Style/ArgumentsForwarding for detecting forwarding of all anonymous arguments. (@dvandersluis)
  • #13222: Allow to write RBS::Inline annotation comments after method definition in Style/CommentedKeyword. (@tk0miya)
  • #13253: Emit a deprecation when custom cops inherit from RuboCop::Cop::Cop. (@earlopain)
  • #13300: Set EnforcedShorthandSyntax: either by default for Style/HashSyntax. (@koic)
  • #13254: Enhance the autocorrect for Naming/InclusiveLanguage when a sole suggestion is set. (@koic)
  • #13232: Make server mode aware of auto-restart for local config update. (@koic)
  • #13270: Make Style/SelectByRegexp aware of filter in Ruby version 2.6 or above. (@masato-bkn)
  • #9816: Refine Lint/SafeNavigationConsistency cop to check that the safe navigation operator is applied consistently and without excess or deficiency. (@koic)
  • #13256: Report and correct more Style/SafeNavigation offenses. (@dvandersluis)
  • #13245: Support filter/filter! in Style/CollectionCompact. (@masato-bkn)
  • #13281: Support Ruby 3.4 for Lint/UriRegexp to avoid obsolete API. (@koic)
  • #13229: Update Style/MapIntoArray to be able to handle arrays created using [].tap. (@dvandersluis)
  • #13305: Update Style/ReturnNilInPredicateMethodDefinition to detect implicit nil returns inside if. (@dvandersluis)
  • #13327: Make server mode aware of auto-restart for .rubocop_todo.yml update. (@koic)

RuboCop 1.66.1

04 Sep 08:30
Compare
Choose a tag to compare

Bug fixes

  • #13191: Fix an error for Style/IfWithSemicolon when using nested single-line if/;/end in block of if/else branches. (@koic)
  • #13178: Fix false positive for Style/EmptyLiteral with Hash.new([]). (@earlopain)
  • #13176: Fix crash in Style/EmptyElse when AllowComments: true and the else clause is missing. (@vlad-pisanov)
  • #13185: Fix false negatives in Style/MapIntoArray autocorrection when using ensure, def, defs and for. (@vlad-pisanov)

RuboCop 1.66

31 Aug 12:41
Compare
Choose a tag to compare

New features

  • #13077: Add new global StringLiteralsFrozenByDefault option for correct analysis with RUBYOPT=--enable=frozen-string-literal. (@earlopain)
  • #13080: Add new DocumentationExtension global option to serve documentation with extensions different than .html. (@earlopain)
  • #13074: Add new Lint/UselessNumericOperation cop to check for inconsequential numeric operations. (@zopolis4)
  • #13061: Add new Style/RedundantInterpolationUnfreeze cop to check for dup and @+ on interpolated strings in Ruby >= 3.0. (@earlopain)

Bug fixes

  • #13093: Fix an error for Lint/ImplicitStringConcatenation when implicitly concatenating a string literal with a line break and string interpolation. (@koic)
  • #13098: Fix an error for Style/IdenticalConditionalBranches when handling empty case branches. (@koic)
  • #13113: Fix an error for Style/IfWithSemicolon when a nested if with a semicolon is used. (@koic)
  • #13097: Fix an error for Style/InPatternThen when using alternative pattern matching deeply. (@koic)
  • #13159: Fix an error for Style/OneLineConditional when using if/then/else/end with multiple expressions in the then body. (@koic)
  • #13092: Fix an incorrect autocorrect for Layout/EmptyLineBetweenDefs when two method definitions are on the same line separated by a semicolon. (@koic)
  • #13116: Fix an incorrect autocorrect for Style/IfWithSemicolon when a single-line if/;/end has an argument in the then body expression. (@koic)
  • #13161: Fix incorrect autocorrect for Style/IfWithSemicolon when using multiple expressions in the else body. (@koic)
  • #13132: Fix incorrect autocorrect for Style/TrailingBodyOnMethodDefinition when an expression precedes a method definition on the same line with a semicolon. (@koic)
  • #13164: Fix incorrect autocorrect behavior for Layout/BlockAlignment when EnforcedStyleAlignWith: either (default). (@koic)
  • #13087: Fix an incorrect autocorrect for Style/MultipleComparison when expression with more comparisons precedes an expression with less comparisons. (@fatkodima)
  • #13172: Fix an error for Layout/EmptyLinesAroundExceptionHandlingKeywords when ensure or else and end are on the same line. (@koic)
  • #13107: Fix an error for Lint/ImplicitStringConcatenation when there are multiple adjacent string interpolation literals on the same line. (@koic)
  • #13111: Fix an error for Style/GuardClause when if clause is empty and correction would not fit on single line because of Layout/LineLength. (@earlopain)
  • #13137: Fix an error for Style/ParallelAssignment when using __FILE__. (@earlopain)
  • #13143: Fix an error during TargetRubyVersion detection if the gemspec is not valid syntax. (@earlopain)
  • #13131: Fix false negatives for Lint/Void when using ensure, defs and numblock. (@vlad-pisanov)
  • #13174: Fix false negatives for Style/MapIntoArray when initializing the destination using Array[], Array([]), or Array.new([]). (@vlad-pisanov)
  • #13173: Fix false negatives for Style/EmptyLiteral when using Array[], Hash[], Array.new([]) and Hash.new([]). (@vlad-pisanov)
  • #13126: Fix a false positive for Style/Alias when using multiple alias in def. (@koic)
  • #13085: Fix a false positive for Style/EmptyElse when a comment-only else is used after elsif and AllowComments: true is set. (@koic)
  • #13118: Fix a false positive for Style/MapIntoArray when splatting. (@earlopain)
  • #13105: Fix false positives for Style/ArgumentsForwarding when forwarding kwargs/block arg with non-matching additional args. (@koic)
  • #13139: Fix false positives for Style/RedundantCondition when using modifier if or unless. (@koic)
  • #13134: Fix false negative for Lint/Void when using using frozen literals. (@vlad-pisanov)
  • #13148: Fix incorrect autocorrect for Lint/EmptyConditionalBody when missing elsif body with end on the same line. (@koic)
  • #13109: Fix an error for the Lockfile parser when it contains incompatible BUNDLED WITH versions. (@earlopain)
  • #13112: Fix detection of TargetRubyVersion through the gemfile if the gemfile ruby version is below 2.7. (@earlopain)
  • #13155: Fixes an error when the server cache directory has too long path, causing rubocop to fail even with caching disabled. (@protocol7)

Changes

  • #13150: Allow get_!, set_!, get_?, set_?, get_=, and set_= in Naming/AccessorMethodName. (@koic)
  • #13103: Make Lint/UselessAssignment autocorrection safe. (@koic)
  • #13099: Make Style/RedundantRegexpArgument respect the EnforcedStyle of Style/StringLiterals. (@koic)
  • #13165: Remove dependency on the rexml gem. (@bquorning)
  • #13090: Require RuboCop AST 1.32.0+ to use RuboCop::AST::RationalNode. (@koic)