Skip to content

Update dependency rubocop to '~> 1.89.0' - #77

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/rubocop-packages
Open

Update dependency rubocop to '~> 1.89.0'#77
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/rubocop-packages

Conversation

@renovate

@renovate renovate Bot commented May 30, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
rubocop (source, changelog) '~> 1.86.0''~> 1.89.0' age confidence

Release Notes

rubocop/rubocop (rubocop)

v1.89.0

Compare Source

New features
  • #​15492: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([@​bbatsov][])
  • #​15498: Add DelegatingMethods option to Lint/DuplicateMethods to register custom delegate-shaped methods. ([@​bbatsov][])
  • #​15042: Add DisallowedCops configuration option to Style/DisableCopsWithinSourceCodeDirective. ([@​hammadxcm][])
  • #​15441: Add new AllowYARDCommentBlockSeparator option to Layout/LeadingCommentSpace. ([@​koic][])
  • #​15466: Add new Lint/DeprecatedReference cop to detect references to methods and constants documented as @deprecated, powered by the project index. ([@​bbatsov][])
  • #​15491: Add new Lint/NameTypo cop. ([@​bbatsov][])
  • #​15468: Add new Lint/UnusedPrivateMethod cop for project-wide dead-code detection via the project index (disabled by default). ([@​bbatsov][])
  • #​14598: Make Style/DisableCopsWithinSourceCodeDirective impossible to disable via directive comments when explicitly enabled with Enabled: true. ([@​rafaelfranca][])
  • #​15511: Support textDocument/codeAction requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([@​bbatsov][])
  • #​8565: Support NewCops in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. Style: NewCops: '1.19'). ([@​koic][])
  • #​9373: Support autocorrection for tab indentation in Layout/IndentationWidth and Style/ClassAndModuleChildren. ([@​ioquatix][], [@​koic][])
Bug fixes
  • #​15257: Fix a false negative for Lint/ToEnumArguments when explicit extra keyword arguments are passed (e.g. def m(x:); to_enum(:m, x: x, y: 1); end), which raises ArgumentError when the enumerator is used. ([@​RedZapdos123][])
  • #​15452: Fix a false positive for Layout/HashAlignment when using EnforcedHashRocketStyle: table and a hash key spans multiple lines. ([@​dduugg][])
  • #​12269: Fix a false positive for Lint/UselessAssignment with modifier conditions. ([@​bbatsov][])
  • #​13786: Fix a false positive for Lint/Void with setter methods. ([@​bbatsov][])
  • #​15507: Fix a false positive for Naming/VariableNumber when using an empty symbol hash key. ([@​koic][])
  • #​15284: Fix a false positive for Style/MutableConstant with Data.define. ([@​bbatsov][])
  • #​15483: Fix a false positive for Style/MissingRespondToMissing when respond_to_missing? is defined in a reopening of the class and UseProjectIndex is enabled. ([@​bbatsov][])
  • #​15500: Fix an error for Lint/LiteralAsCondition when a literal condition has an empty branch. ([@​koic][])
  • #​15499: Fix an error for Lint/UselessRuby2Keywords when ruby2_keywords is used with a symbol but no method definition is found. ([@​koic][])
  • #​15453: Fix an error for Metrics/MethodLength when a method contains a heredoc and __ENCODING__. ([@​koic][])
  • #​15442: Fix an error for Style/ArrayIntersect cop when the block-based check calls member?/include? without an explicit receiver. ([@​dduugg][])
  • #​15434: Fix an error for Style/NegativeArrayIndex cop. ([@​viralpraxis][])
  • #​15469: Fix an error for Style/RedundantFormat when a format string uses a positional argument number beyond the 64-bit range. ([@​koic][])
  • #​15454: Fix an error for Style/RedundantFormat when the argument for a positional variable width is missing. ([@​koic][])
  • #​15298: Fix an incorrect autocorrect for Lint/LiteralInInterpolation. ([@​bbatsov][])
  • #​15515: Fix an incorrect autocorrect for Style/ArrayIntersect when using safe navigation none? with a block. ([@​koic][])
  • #​15364: Fix an incorrect autocorrect for Style/MultipleComparison that dropped an allowed method comparison appearing between the compared values. ([@​bbatsov][])
  • #​15367: Fix an incorrect autocorrect for Style/RedundantFileExtensionInRequire that produced invalid Ruby when a backslash preceded the .rb extension. ([@​bbatsov][])
  • #​12017: Fix Lint/Void to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([@​bbatsov][])
  • #​14797: Avoid cache writes during server checks. ([@​sjh9714][])
  • #​15484: Fix false negatives for Lint/InheritException when Exception is inherited indirectly through a project class (UseProjectIndex). ([@​bbatsov][])
  • #​15357: Fix a false negative for Lint/AmbiguousAssignment when using attribute or index assignment. ([@​sngsmz][])
  • #​9571: Fix false negatives in Layout/ClassStructure when class body elements are wrapped in begin blocks. ([@​koic][])
  • #​9570: Fix false negatives in Layout/ClassStructure when using private_class_method or public_class_method def modifiers. ([@​koic][])
  • #​15438: Fix false positives in Style/ArrayIntersect when the receiver of include? in a block is not an array literal. ([@​koic][])
  • #​15445: Fix false positives in Style/MultilineIfThen when using the Prism parser engine and an elsif without then follows a branch using then with a body on the same line. ([@​koic][])
  • #​15058: Fix false positives in Lint/DuplicateMethods for anonymous classes (Class.new) passed as arguments to the same named-receiver method call (e.g. T.cast). Each Class.new block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([@​rafaelfranca][])
  • #​15486: Fix false negatives for Style/RedundantConstantBase inside namespaces when the constant provably resolves identically without :: (UseProjectIndex). ([@​bbatsov][])
  • #​15505: Fix incompatible autocorrect between Style/Lambda and Style/SymbolProc producing a syntax error like ->(x)(&:method) when both cops run on lambda { |x| x.method }. ([@​koic][])
  • #​15481: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (UseProjectIndex). ([@​bbatsov][])
  • #​13794: Fix Layout/LineLength autocorrection for endless methods with block bodies. ([@​hervetatche][])
  • #​15462: Fix an error for Lint/ConstantReassignment when a built-in constant name is assigned and UseProjectIndex is enabled. ([@​bbatsov][])
  • #​15321: Fix Style/ClassAndModuleChildren ignoring EnforcedStyleForClasses and EnforcedStyleForModules, and skip autocorrection when mixed per-type styles make the result ambiguous. ([@​bbatsov][])
  • #​15122: Fix false positive in Layout/MultilineMethodCallIndentation when a line has multiple chained calls before a single-line block. ([@​hammadxcm][])
  • #​15471: Fix false negatives for Style/RedundantLineContinuation by verifying backslash removal against a reparse of the source instead of hand-written grammar rules. ([@​bbatsov][])
  • #​15522: Fix Ruby version detection from mise.toml with single quotes. ([@​joklek-vinted][])
  • #​15488: Fix false positives for Naming/PredicatePrefix and Naming/AccessorMethodName when the method overrides an ancestor method defined in the project (UseProjectIndex). ([@​bbatsov][])
  • #​15485: Fix a false positive for Style/StaticClass when the class is subclassed elsewhere in the project (UseProjectIndex). ([@​bbatsov][])
  • #​15477: Fix false positives for Style/MethodCallWithArgsParentheses omit_parentheses style by verifying each omission by reparsing before registering an offense. ([@​bbatsov][])
Changes
  • #​15482: Change Style/Documentation to accept a reopened class or module documented at another definition site when UseProjectIndex is enabled. ([@​bbatsov][])
  • #​15355: Add rubocop-i18n to suggested extensions. ([@​tejasbubane][])
  • #​15521: Advertise executeCommandProvider and the supported code action kinds in the language server's capabilities, so clients can discover the rubocop.formatAutocorrects and rubocop.formatAutocorrectsAll commands. ([@​bbatsov][])
  • #​15521: Improve language server performance by caching the project index across requests instead of rebuilding it on every keystroke when AllCops/UseProjectIndex is enabled. ([@​bbatsov][])
  • #​14835: Extend Lint/AmbiguousBlockAssociation to detect do...end blocks likely intended for enumerable methods in arguments. ([@​hammadxcm][])
  • #​15458: Improve Layout/LineLength performance on files with large collection literals. ([@​koic][])
  • #​15497: Make Style/ConditionalAssignment skip cases it cannot safely rewrite instead of emitting invalid code or erroring on unusual branch shapes. ([@​bbatsov][])
  • #​15261: Mention the required parentheses in the Style/IfUnlessModifier offense message when the condition is part of a larger expression. ([@​rafa-el-souza][])
  • #​15513: Improve Style/DisableCopsWithinSourceCodeDirective performance on large AllowedCops and DisallowedCops lists by matching directives against memoized sets instead of rebuilding an array lookup per comment. ([@​corsonknowles][])
  • #​15501: Improve performance for large literal files. ([@​koic][])
  • #​15519: Improve Style/RedundantLineContinuation performance on files with many adjacent string literals joined by line continuations. ([@​koic][])
  • #​15462: Change Lint/DuplicateMethods to detect duplicates across files when UseProjectIndex is enabled. ([@​bbatsov][])
  • #​14983: Load cops lazily to speed up loading RuboCop; only the cops needed for a run are loaded. ([@​lovro-bikic][], [@​koic][])
  • #​15493: Make Style/IfUnlessModifier, Style/WhileUntilModifier, Style/GuardClause, and other modifier cops respect Layout/LineLength exemptions (allowed patterns, cop directives, allowed URIs) when checking whether the modifier form fits on one line. ([@​bbatsov][])
  • #​15433: Mark Lint/SafeNavigationChain autocorrection as unsafe. ([@​koic][])
  • #​15487: Change Lint/ConstantResolution to report only genuinely ambiguous constants when UseProjectIndex is enabled. ([@​bbatsov][])
  • #​14809: Do not autocorrect Style/RedundantAssignment offenses when there are comments between assignment and reference. ([@​lovro-bikic][])
  • #​15463: Change Style/ClassAndModuleChildren autocorrection to consult the project index for the namespace kind and definition sites when UseProjectIndex is enabled. ([@​bbatsov][])
  • #​15464: Change Lint/MissingSuper to skip the constructor offense when the project index shows no ancestor defines initialize (UseProjectIndex). ([@​bbatsov][])
  • #​15490: Change Style/Copyright to validate AutocorrectNotice only when autocorrection is requested (-a/-A), so plain inspection no longer raises a warning. ([@​koic][])
  • #​15476: Change Layout/RedundantLineBreak to verify each correction by reparsing before registering an offense. ([@​bbatsov][])
  • #​15472: Change Style/RedundantParentheses to verify each correction by reparsing before registering an offense. ([@​bbatsov][])
  • #​15478: Change Style/SoleNestedConditional to only register an offense when its correction is verified to parse. ([@​bbatsov][])

v1.88.2

Compare Source

Bug fixes
  • #​15417: Fix a false negative for Lint/ToJSON, which did not flag singleton def self.to_json definitions. ([@​bbatsov][])
  • #​15418: Fix a false negative for Lint/UnreachableCode, which only flagged the first statement after a flow-of-control statement instead of every unreachable statement that followed it. ([@​bbatsov][])
  • #​15416: Fix a false negative for Lint/UselessNumericOperation, which only flagged bare method-call receivers and ignored local variables, instance/class/global variables, and constants (e.g. @x + 0, CONST * 1). ([@​bbatsov][])
  • #​15419: Fix a false negative for Lint/Void where safe-navigation calls to nonmutating methods (e.g. x&.sort) were not flagged when CheckForMethodsWithNoSideEffects is enabled. ([@​bbatsov][])
  • #​15421: Fix a false negative for Style/ArrayIntersect with the block form using include? (e.g. array1.any? { |e| array2.include?(e) }), which was only detected for member?. ([@​bbatsov][])
  • #​15420: Fix a false negative for Style/CollectionCompact, which did not flag grep_v(nil)/grep_v(NilClass) on a safe-navigation call (e.g. array&.grep_v(nil)). ([@​bbatsov][])
  • #​15422: Fix a false negative for Style/DefWithParentheses with a single-line definition whose body follows a semicolon (e.g. def foo(); end), where the parentheses can be safely omitted. ([@​bbatsov][])
  • #​15388: Fix a false negative for Style/MixinUsage when including multiple modules in one statement. ([@​bbatsov][])
  • #​15388: Fix a false negative for Style/ModuleFunction when the module body is a single statement. ([@​bbatsov][])
  • #​15388: Fix a false negative for Style/RedundantCurrentDirectoryInPath with double-quoted strings containing interpolation. ([@​bbatsov][])
  • #​15395: Fix a false negative for Style/RedundantHeredocDelimiterQuotes with double-quoted delimiters whose body contains interpolation or escapes. ([@​bbatsov][])
  • #​15409: Fix a false positive for Gemspec/DuplicatedAssignment with multiple specifications. ([@​bbatsov][])
  • #​15403: Fix a false positive for Layout/CommentIndentation with a comment above an inline access modifier (e.g. private def foo) when Layout/AccessModifierIndentation is configured with EnforcedStyle: outdent. ([@​grk][])
  • #​15372: Fix a false positive for Style/InvertibleUnlessCondition with a multi-statement begin condition. ([@​bbatsov][])
  • #​15360: Fix an incorrect autocorrect for Style/ArgumentsForwarding and Style/MethodDefParentheses when autocorrection conflicts while adding parentheses to method definition arguments. ([@​koic][])
  • #​15417: Fix an incorrect autocorrect for Lint/ToJSON that produced invalid Ruby (def to_json(*_args)()) when the method had explicit empty parentheses. ([@​bbatsov][])
  • #​15426: Fix an incorrect autocorrect for Style/MethodCallWithoutArgsParentheses when empty parentheses span multiple lines and the method call has a block. ([@​koic][])
  • #​15328: Fix a false positive for Style/HashConversion with a splat argument, which previously produced an invalid hash literal. ([@​bbatsov][])
  • #​15338: Fix a false positive for Style/HashLookupMethod with safe navigation, where the suggested bracket form would be the unreadable hash&.[](key). ([@​bbatsov][])
  • #​15397: Fix an incorrect autocorrect for Style/IdenticalConditionalBranches that hoisted the moved expression to column zero instead of matching the surrounding indentation. ([@​bbatsov][])
  • #​15372: Fix an incorrect autocorrect for Style/InvertibleUnlessCondition with mixed &&/|| conditions, which lost the required parentheses when inverting. ([@​bbatsov][])
  • #​15428: Fix an incorrect autocorrect for Style/TrivialAccessors when AllowPredicates: false is set and a trivial reader is defined as a predicate class method. ([@​koic][])
  • #​15402: Fix an infinite loop and file corruption for Layout/LineLength with SplitStrings when an over-long string is indented under a multi-line parent. ([@​bbatsov][])
  • #​15384: Fix a false positive and a false negative for Style/MissingRespondToMissing when method_missing is defined at the top level or alongside sibling classes. ([@​bbatsov][])
  • #​15432: Fix false positives in Layout/ElseAlignment when using else within a block that is part of a larger expression. ([@​koic][])
  • #​15423: Fix false positives in Layout/MultilineMethodCallIndentation when a method chain is nested inside a parenthesized argument list or a grouped expression within a hash pair value. ([@​koic][])
  • #​15424: Fix Style/StructInheritance autocorrect dropping leading indentation when class is inside a module or namespace. ([@​amckinnie][])
  • #​15325: Fix Style/DocumentationMethod ignoring AllowedMethods for inline modifier defs. ([@​bbatsov][])
  • #​15369: Fix a false positive for Style/LambdaCall when the argument list contains a comment, which the autocorrect would have dropped. ([@​bbatsov][])
Changes
  • #​15430: Improve performance of offense reporting by not allocating a new source range per offense outside of embedded sources. ([@​bbatsov][])
  • #​15430: Improve investigation performance by dispatching on_new_investigation, on_investigation_end, and on_other_file only to cops that refine them, and by skipping after_* dispatch when no cop needs it. ([@​bbatsov][])
  • #​15430: Improve performance of the per-file cop relevancy check by skipping gem requirement evaluation for cops without gem requirements. ([@​bbatsov][])
  • #​15430: Improve Lint/Debugger performance on code without debugger calls. ([@​bbatsov][])
  • #​15430: Improve autocorrection performance by keeping corrections in memory across inspection iterations and writing each corrected file only once. ([@​bbatsov][])
  • #​15415: Mark Lint/NumericOperationWithConstantResult autocorrect as unsafe because it drops the operands, discarding their side effects and silencing cases where the result is not actually constant (e.g. x / x raises when x is 0). ([@​bbatsov][])
  • #​15430: Improve performance of cops using AllowedPatterns, ForbiddenPatterns, and AllowedMethods by compiling the configured patterns only once. ([@​bbatsov][])
  • #​15430: Improve performance of Style/IfUnlessModifier and other modifier cops on files with many comments or conditionals. ([@​bbatsov][])

v1.88.1

Compare Source

Bug fixes
  • #​15408: Fix a crash for Bundler/GemComment with a non-literal gem option key. ([@​bbatsov][])
  • #​9571: Fix a crash for Layout/ClassStructure when a class body is a single safe-navigation call (e.g. test&.private_methods(def foo; end)). ([@​bbatsov][])
  • #​15413: Fix a crash for Gemspec/DevelopmentDependencies when AllowedGems is nil. ([@​bbatsov][])
  • #​15404: Fix a crash for Metrics/MethodLength with an anonymous define_method. ([@​bbatsov][])
  • #​15414: Fix a crash for Naming/InclusiveLanguage with nil or empty FlaggedTerms. ([@​bbatsov][])
  • #​15405: Fix a crash for Security/IoMethods with a non-string-literal argument. ([@​bbatsov][])
  • #​15330: Fix a crash for Style/EmptyStringInsideInterpolation with a modifier conditional. ([@​bbatsov][])
  • #​15351: Fix a crash for Style/OpenStructUse with a bare OpenStruct root node. ([@​bbatsov][])
  • #​15379: Fix a crash for Style/TrailingUnderscoreVariable when a nested destructuring group consists only of underscore variables. ([@​bbatsov][])
  • #​15412: Fix a false negative for Security/MarshalLoad with a proc argument. ([@​bbatsov][])
  • #​15386: Fix a false negative for Style/MethodDefParentheses with named rest arguments under EnforcedStyle: require_no_parentheses. ([@​bbatsov][])
  • #​15396: Fix a false negative for Style/MultilineMethodSignature where a signature that fits on one line was skipped because the multi-line source length was measured instead of the collapsed width. ([@​bbatsov][])
  • #​15386: Fix a false negative for Style/OptionalArguments with singleton methods. ([@​bbatsov][])
  • #​15383: Fix a false negative for Style/RedundantFilterChain with numbered-parameter blocks. ([@​bbatsov][])
  • #​15290: Fix a false negative for Lint/ToEnumArguments when a braced hash is passed to keyword parameters (e.g. to_enum(:m, { required: required })), which raises ArgumentError when the enumerator is used. ([@​RedZapdos123][])
  • #​11956: Fix a false positive for Naming/FileName when a class or module name contains multiple consecutive AllowedAcronyms. ([@​camallen][])
  • #​15324: Fix a false positive for Style/DirEmpty with a block. ([@​bbatsov][])
  • #​15326: Fix a false positive for Style/EmptyLiteral with numbered and it block parameters. ([@​bbatsov][])
  • #​15335: Fix a false positive for Style/EnvHome. ([@​bbatsov][])
  • #​15345: Fix a false positive for Style/InlineComment with rubocop:todo directives. ([@​bbatsov][])
  • #​15348: Fix a false positive for Style/MultilineIfThen. ([@​bbatsov][])
  • #​15383: Fix a false positive for Style/NumericPredicate when an allowed method encloses a numbered-parameter or it block. ([@​bbatsov][])
  • #​15389: Fix a false positive for Style/OptionHash when the options hash is forwarded with an explicit super. ([@​bbatsov][])
  • #​15350: Fix a false positive for Style/RedundantFormat with a lone format sequence. ([@​bbatsov][])
  • #​15374: Fix a false positive for Style/RedundantSelf with a rescue exception variable. ([@​bbatsov][])
  • #​15376: Fix a false positive for Style/Semicolon with a semicolon inside a string literal. ([@​bbatsov][])
  • #​15398: Fix an incorrect autocorrect for Layout/ConditionPosition that dropped a body statement sharing the condition's line via a semicolon. ([@​bbatsov][])
  • #​15399: Fix an incorrect autocorrect for Layout/EmptyComment that deleted a heredoc when removing an empty comment trailing its opener. ([@​bbatsov][])
  • #​15400: Fix an incorrect autocorrect for Layout/EmptyLineBetweenDefs that inserted a blank line inside a heredoc body when an endless method's body was a heredoc. ([@​bbatsov][])
  • #​15401: Fix an incorrect autocorrect for Layout/SpaceAroundOperators that turned **= and /= compound assignments into **//, dropping the assignment. ([@​bbatsov][])
  • #​15406: Fix an incorrect autocorrect for Naming/MemoizedInstanceVariableName. ([@​bbatsov][])
  • #​15411: Fix an incorrect autocorrect for Naming/RescuedExceptionsVariableName. ([@​bbatsov][])
  • #​15319: Fix an incorrect autocorrect for Style/DataInheritance with a brace block. ([@​bbatsov][])
  • #​15323: Fix an incorrect autocorrect for Style/EmptyCaseCondition as a yield/super argument. ([@​bbatsov][])
  • #​15323: Fix an incorrect autocorrect for Style/EmptyCaseCondition with low-precedence when values. ([@​bbatsov][])
  • #​15322: Fix an incorrect autocorrect for Style/EmptyClassDefinition with a namespaced constant. ([@​bbatsov][])
  • #​15336: Fix an incorrect autocorrect for Style/EmptyHeredoc. ([@​bbatsov][])
  • #​15332: Fix an incorrect autocorrect for Style/EvenOdd. ([@​bbatsov][])
  • #​15329: Fix an incorrect autocorrect for Style/ExactRegexpMatch with a single quote. ([@​bbatsov][])
  • #​15333: Fix an incorrect autocorrect for Style/FileNull. ([@​bbatsov][])
  • #​15334: Fix an incorrect autocorrect for Style/For. ([@​bbatsov][])
  • #​15331: Fix an incorrect autocorrect for Style/FormatString with a low-precedence argument. ([@​bbatsov][])
  • #​15331: Fix an incorrect autocorrect for Style/FormatString with a splat argument. ([@​bbatsov][])
  • #​15337: Fix an incorrect autocorrect for Style/HashSlice. ([@​bbatsov][])
  • #​15327: Fix an incorrect autocorrect for Style/HashSyntax with a multi-pair braceless return. ([@​bbatsov][])
  • #​15368: Fix an incorrect autocorrect for Style/IfWithSemicolon that changed semantics when the condition was an assignment, by parenthesizing it in the resulting ternary. ([@​bbatsov][])
  • #​15340: Fix an incorrect autocorrect for Style/KeywordArgumentsMerging with a block-pass argument. ([@​bbatsov][])
  • #​15387: Fix an incorrect autocorrect for Style/KeywordParametersOrder that inserted a spurious blank line when a keyword optional parameter already trailed the parameters list. ([@​bbatsov][])
  • #​15341: Fix an incorrect autocorrect for Style/MapIntoArray with a block-pass argument. ([@​bbatsov][])
  • #​15342: Fix an incorrect autocorrect for Style/MethodCallWithoutArgsParentheses with it() in a numbered block. ([@​bbatsov][])
  • #​15343: Fix an incorrect autocorrect for Style/MinMaxComparison with unless. ([@​bbatsov][])
  • #​15348: Fix an incorrect autocorrect for Style/MultilineMemoization with rescue/ensure. ([@​bbatsov][])
  • #​15348: Fix an incorrect autocorrect for Style/MultilineMethodSignature. ([@​bbatsov][])
  • #​15394: Fix an incorrect autocorrect for Style/NilLambda when a non-lambda proc returns nil with return. ([@​bbatsov][])
  • #​15352: Fix an incorrect autocorrect for Style/ParallelAssignment with a %i element needing quoting. ([@​bbatsov][])
  • #​15352: Fix an incorrect autocorrect for Style/ParallelAssignment with a %w element needing escaping. ([@​bbatsov][])
  • #​15366: Fix an incorrect autocorrect for Style/PercentLiteralDelimiters that produced invalid Ruby for a %s symbol whose content contains the preferred delimiter. ([@​bbatsov][])
  • #​15370: Fix an incorrect autocorrect for Style/PerlBackrefs that rewrote $+/$LAST_PAREN_MATCH to the non-equivalent Regexp.last_match(-1); these are no longer flagged. ([@​bbatsov][])
  • #​15371: Fix an incorrect autocorrect for Style/RedundantException that changed the exception message when raising RuntimeError with a nil message. ([@​bbatsov][])
  • #​15350: Fix an incorrect autocorrect for Style/RedundantFormat with a nil argument. ([@​bbatsov][])
  • #​15365: Fix an incorrect autocorrect for Style/RedundantLineContinuation that corrupted an earlier line when removing a line continuation at the end of a multi-line file. ([@​bbatsov][])
  • #​15373: Fix an incorrect autocorrect for Style/RedundantRegexpEscape that stripped a necessary \@/\$ escape after # in %r{}/%r// literals, enabling unintended interpolation. ([@​bbatsov][])
  • #​15375: Fix an incorrect autocorrect for Style/RedundantStructKeywordInit when keyword_init is not the last pair. ([@​bbatsov][])
  • #​15377: Fix an incorrect autocorrect for Style/SingleLineDoEndBlock when the block body contains a heredoc. ([@​bbatsov][])
  • #​15378: Fix an incorrect autocorrect for Style/StringHashKeys when the hash key is a heredoc. ([@​bbatsov][])
  • #​15380: Fix an incorrect autocorrect for Style/TernaryParentheses when the condition is a modifier if/unless expression. ([@​bbatsov][])
  • #​15407: Fix an infinite loop for Gemspec/RequireMFA with multiple specifications. ([@​bbatsov][])
  • #​15356: Fix an infinite loop between Lint/AssignmentInCondition and Style/RedundantParentheses when an assignment is a statement of a multi-statement begin in a condition. ([@​koic][])
  • #​14370: Fix comment duplication for Style/AccessorGrouping with a single-line trailing comment. ([@​bbatsov][])
  • #​15318: Fix --fail-fast not reporting offenses and exiting with a zero status when offenses are found. ([@​koic][])
  • #​15312: Fix false positives for Layout/BlockAlignment when EnforcedStyleAlignWith: start_of_block is used and do is on a continuation line of a parenthesisless multiline method call. ([@​koic][])
  • #​15339: Fix incorrect autocorrects for Style/HashTransformKeys and Style/HashTransformValues with a splat. ([@​bbatsov][])
  • #​15344: Fix incorrect autocorrects for Style/Lambda with block-local arguments. ([@​bbatsov][])
  • #​15311: Fix a false negative for Layout/IndentationWidth when the body of a multiline grouped expression in parentheses is not indented. ([@​koic][])
  • #​15302: Fix an incorrect autocorrect for Bundler/OrderedGems and Gemspec/OrderedDependencies when the last declaration has no trailing newline, which joined two declarations into a single line. ([@​koic][])
  • #​15307: Fix a false positive for Lint/UnescapedBracketInRegexp when a character class starts with a bare ] (e.g. /[^]]/). ([@​koic][])
Changes
  • #​15390: Mark Style/MapCompactWithConditionalBlock autocorrect as unsafe because compact also removes nil elements already present in the collection. ([@​bbatsov][])
  • #​15300: Update Metrics/PerceivedComplexity to weight simple case/in pattern branches the same as case/when branches. ([@​koic][])

v1.88.0

Compare Source

New features
  • #​15166: Add a new Recursive option to Style/MutableConstant. When enabled, the cop checks and freezes mutable literals nested inside arrays and hashes. The option is disabled by default to preserve existing behavior. ([@​paracycle][])
Bug fixes
  • #​15220: Fix a bad autocorrect for Lint/RedundantSplatExpansion when splatting an empty literal (e.g. when *[] or rescue *[]), which expanded to invalid or semantically different code. ([@​bbatsov][])
  • #​15221: Fix a bad autocorrect for Lint/RegexpAsCondition when the regexp literal is negated (e.g. if !/foo/), which inverted the condition. ([@​bbatsov][])
  • #​15242: Fix a bad autocorrect for Lint/SymbolConversion when the receiver is an interpolated string containing an embedded double quote (e.g. "foo#{bar}\"qux".to_sym), which produced a syntax error. ([@​bbatsov][])
  • #​15270: Fix a crash for Style/CombinableLoops when a for loop has an empty body, and stop autocorrecting consecutive for loops whose iteration variables differ (which produced code referencing an undefined variable). ([@​bbatsov][])
  • #​15272: Fix a crash for Style/ConstantVisibility when a visibility declaration has a numeric literal argument (e.g. private_constant 42). ([@​bbatsov][])
  • #​15215: Fix a false negative for Lint/OrderedMagicComments when an encoding magic comment is preceded by a magic comment other than frozen_string_literal (e.g. shareable_constant_value). ([@​bbatsov][])
  • #​15228: Fix a false negative for Lint/RedundantWithIndex when the block takes no arguments (e.g. ary.each_with_index { do_something }). ([@​bbatsov][])
  • #​15230: Fix a false negative for Lint/RequireRelativeSelfPath when requiring the current file by name with its extension (e.g. require_relative 'foo.rb') and the file path is absolute. ([@​bbatsov][])
  • #​15229: Fix a false negative for Lint/SafeNavigationChain when an ordinary method is chained after a parenthesized safe navigation call (e.g. (x&.foo).bar). ([@​bbatsov][])
  • #​15225: Fix a false negative for Lint/SafeNavigationWithEmpty when the receiver of &.empty? is a local variable, instance variable, constant, or other non-method-call expression. ([@​bbatsov][])
  • #​15231: Fix a false negative for Lint/SendWithMixinArgument when send/public_send/__send__ is called with no explicit receiver or with a self receiver (e.g. send(:include, Bar)). ([@​bbatsov][])
  • #​15248: Fix a false negative for Lint/ToEnumArguments when more positional arguments are passed than the method accepts (e.g. def m(x); to_enum(:m, x, extra); end), which raises ArgumentError when the enumerator is used. ([@​bbatsov][])
  • #​15249: Fix a false negative for Lint/UnescapedBracketInRegexp when an unescaped ] is preceded by an escaped backslash (e.g. /abc\\]123/). ([@​bbatsov][])
  • #​15267: Fix a false positive for Style/ArrayIntersectWithSingleElement with a splat argument (e.g. array.intersect?([*foo])), which is not a single element and was incorrectly rewritten to array.include?(*foo). ([@​bbatsov][])
  • #​15272: Fix a false positive for Style/ColonMethodCall with chained JRuby interop calls (e.g. Java::com::something_method). ([@​bbatsov][])
  • #​15271: Fix a false positive for Style/ConditionalAssignment with EnforcedStyle: assign_inside_condition when assigning an unless without an else branch (e.g. x = unless cond; 1; end), which was rewritten to move the assignment inside the unless and changed behavior when the condition was true. ([@​bbatsov][])
  • #​14401: Fix a false positive for Layout/BlockAlignment with EnforcedStyleAlignWith: start_of_line when a block is passed as a method argument. ([@​augustocbx][])
  • #​15216: Fix a false positive for Lint/RaiseException when raise Exception is used inside a module nested within an allowed implicit namespace (e.g. Gem). ([@​bbatsov][])
  • #​15219: Fix a false positive for Lint/RedundantDirGlobSort when sort is given a comparator block or a block-pass argument, which is not redundant with the default sorting. ([@​bbatsov][])
  • #​15224: Fix a false positive for Lint/ShadowingOuterLocalVariable when a block argument has the same name as a pattern variable from a different in branch of the same case. ([@​bbatsov][])
  • #​15239: Fix a false positive for Lint/SuppressedExceptionInNumberConversion when the numeric constructor already passes exception: false (e.g. Integer(arg, exception: false) rescue nil), which also produced an autocorrect with a duplicate exception: false keyword. ([[@​bbatsov](https://

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@codecov

codecov Bot commented May 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (0b1faa3) to head (75948df).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #77   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            4         4           
  Lines           71        71           
=========================================
  Hits            71        71           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@renovate renovate Bot changed the title Update dependency rubocop to '~> 1.87.0' Update RuboCop packages to '~> 1.87.0' Jun 14, 2026
@renovate
renovate Bot force-pushed the renovate/rubocop-packages branch from 75948df to 3787c4b Compare June 16, 2026 06:45
@renovate renovate Bot changed the title Update RuboCop packages to '~> 1.87.0' Update RuboCop packages to '~> 1.88.0' Jun 16, 2026
@renovate renovate Bot changed the title Update RuboCop packages to '~> 1.88.0' Update RuboCop packages Jun 22, 2026
@renovate renovate Bot changed the title Update RuboCop packages Update dependency rubocop to '~> 1.88.0' Jun 25, 2026
@renovate
renovate Bot force-pushed the renovate/rubocop-packages branch from 3787c4b to 44c00ae Compare August 4, 2026 15:50
@renovate renovate Bot changed the title Update dependency rubocop to '~> 1.88.0' Update dependency rubocop to '~> 1.89.0' Aug 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants