Update dependency rubocop to '~> 1.89.0' - #62
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
August 31, 2024 17:06
7c44838 to
08fc288
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
September 11, 2024 14:39
08fc288 to
e4dd654
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
October 15, 2024 10:42
e4dd654 to
23e5f86
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
October 31, 2024 10:23
23e5f86 to
1a86077
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
November 26, 2024 18:32
1a86077 to
260fe55
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
January 10, 2025 14:35
260fe55 to
172a133
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
January 22, 2025 18:49
172a133 to
7da7c74
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
2 times, most recently
from
February 14, 2025 15:21
200e49b to
4bd90b0
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
February 26, 2025 10:01
4bd90b0 to
18e57fb
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
2 times, most recently
from
March 11, 2025 02:35
82d5676 to
6eeeaa2
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
March 13, 2025 10:03
6eeeaa2 to
2485956
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
March 26, 2025 19:09
2485956 to
7969ece
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
July 8, 2025 11:26
577a4cb to
db6d39e
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
July 24, 2025 11:10
db6d39e to
6276e6e
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
July 31, 2025 05:59
6276e6e to
0bb1eb9
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
August 22, 2025 09:50
0bb1eb9 to
09a3786
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
September 2, 2025 09:42
09a3786 to
355ceb5
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
September 25, 2025 13:27
355ceb5 to
18cd5c1
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
2 times, most recently
from
October 10, 2025 08:41
f6d84aa to
9907963
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
November 2, 2025 21:32
9907963 to
d2daa84
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
December 17, 2025 15:31
d2daa84 to
96cd271
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
January 27, 2026 13:40
96cd271 to
913f75f
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
February 16, 2026 08:58
913f75f to
a05e5b9
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
February 26, 2026 14:54
a05e5b9 to
3d5bcb0
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
March 23, 2026 14:37
3d5bcb0 to
c0daee8
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
April 1, 2026 13:56
c0daee8 to
6e6342a
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
May 30, 2026 13:03
6e6342a to
9cd69cd
Compare
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
June 16, 2026 08:45
9cd69cd to
15d14af
Compare
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate
Bot
force-pushed
the
renovate/rubocop-1.x
branch
from
August 4, 2026 14:43
15d14af to
65807ee
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
'~> 1.65.0'→'~> 1.89.0''~> 1.64.0'→'~> 1.89.0'Release Notes
rubocop/rubocop (rubocop)
v1.89.0Compare Source
New features
DelegatingMethodsoption toLint/DuplicateMethodsto register customdelegate-shaped methods. ([@bbatsov][])DisallowedCopsconfiguration option toStyle/DisableCopsWithinSourceCodeDirective. ([@hammadxcm][])AllowYARDCommentBlockSeparatoroption toLayout/LeadingCommentSpace. ([@koic][])Lint/DeprecatedReferencecop to detect references to methods and constants documented as@deprecated, powered by the project index. ([@bbatsov][])Lint/NameTypocop. ([@bbatsov][])Lint/UnusedPrivateMethodcop for project-wide dead-code detection via the project index (disabled by default). ([@bbatsov][])Style/DisableCopsWithinSourceCodeDirectiveimpossible to disable via directive comments when explicitly enabled withEnabled: true. ([@rafaelfranca][])textDocument/codeActionrequests 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][])NewCopsin department configuration to enable pending cops per department, including cops added up to a specific version (e.g.Style: NewCops: '1.19'). ([@koic][])Layout/IndentationWidthandStyle/ClassAndModuleChildren. ([@ioquatix][], [@koic][])Bug fixes
Lint/ToEnumArgumentswhen explicit extra keyword arguments are passed (e.g.def m(x:); to_enum(:m, x: x, y: 1); end), which raisesArgumentErrorwhen the enumerator is used. ([@RedZapdos123][])Layout/HashAlignmentwhen usingEnforcedHashRocketStyle: tableand a hash key spans multiple lines. ([@dduugg][])Lint/UselessAssignmentwith modifier conditions. ([@bbatsov][])Lint/Voidwith setter methods. ([@bbatsov][])Naming/VariableNumberwhen using an empty symbol hash key. ([@koic][])Style/MutableConstantwithData.define. ([@bbatsov][])Style/MissingRespondToMissingwhenrespond_to_missing?is defined in a reopening of the class andUseProjectIndexis enabled. ([@bbatsov][])Lint/LiteralAsConditionwhen a literal condition has an empty branch. ([@koic][])Lint/UselessRuby2Keywordswhenruby2_keywordsis used with a symbol but no method definition is found. ([@koic][])Metrics/MethodLengthwhen a method contains a heredoc and__ENCODING__. ([@koic][])Style/ArrayIntersectcop when the block-based check callsmember?/include?without an explicit receiver. ([@dduugg][])Style/NegativeArrayIndexcop. ([@viralpraxis][])Style/RedundantFormatwhen a format string uses a positional argument number beyond the 64-bit range. ([@koic][])Style/RedundantFormatwhen the argument for a positional variable width is missing. ([@koic][])Lint/LiteralInInterpolation. ([@bbatsov][])Style/ArrayIntersectwhen using safe navigationnone?with a block. ([@koic][])Style/MultipleComparisonthat dropped an allowed method comparison appearing between the compared values. ([@bbatsov][])Style/RedundantFileExtensionInRequirethat produced invalid Ruby when a backslash preceded the.rbextension. ([@bbatsov][])Lint/Voidto no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([@bbatsov][])Lint/InheritExceptionwhenExceptionis inherited indirectly through a project class (UseProjectIndex). ([@bbatsov][])Lint/AmbiguousAssignmentwhen using attribute or index assignment. ([@sngsmz][])Layout/ClassStructurewhen class body elements are wrapped inbeginblocks. ([@koic][])Layout/ClassStructurewhen usingprivate_class_methodorpublic_class_methoddef modifiers. ([@koic][])Style/ArrayIntersectwhen the receiver ofinclude?in a block is not an array literal. ([@koic][])Style/MultilineIfThenwhen using the Prism parser engine and anelsifwithoutthenfollows a branch usingthenwith a body on the same line. ([@koic][])Lint/DuplicateMethodsfor anonymous classes (Class.new) passed as arguments to the same named-receiver method call (e.g.T.cast). EachClass.newblock is an independent class, so methods defined in different blocks should not be treated as duplicates. ([@rafaelfranca][])Style/RedundantConstantBaseinside namespaces when the constant provably resolves identically without::(UseProjectIndex). ([@bbatsov][])Style/LambdaandStyle/SymbolProcproducing a syntax error like->(x)(&:method)when both cops run onlambda { |x| x.method }. ([@koic][])UseProjectIndex). ([@bbatsov][])Layout/LineLengthautocorrection for endless methods with block bodies. ([@hervetatche][])Lint/ConstantReassignmentwhen a built-in constant name is assigned andUseProjectIndexis enabled. ([@bbatsov][])Style/ClassAndModuleChildrenignoringEnforcedStyleForClassesandEnforcedStyleForModules, and skip autocorrection when mixed per-type styles make the result ambiguous. ([@bbatsov][])Layout/MultilineMethodCallIndentationwhen a line has multiple chained calls before a single-line block. ([@hammadxcm][])Style/RedundantLineContinuationby verifying backslash removal against a reparse of the source instead of hand-written grammar rules. ([@bbatsov][])Naming/PredicatePrefixandNaming/AccessorMethodNamewhen the method overrides an ancestor method defined in the project (UseProjectIndex). ([@bbatsov][])Style/StaticClasswhen the class is subclassed elsewhere in the project (UseProjectIndex). ([@bbatsov][])Style/MethodCallWithArgsParenthesesomit_parenthesesstyle by verifying each omission by reparsing before registering an offense. ([@bbatsov][])Changes
Style/Documentationto accept a reopened class or module documented at another definition site whenUseProjectIndexis enabled. ([@bbatsov][])rubocop-i18nto suggested extensions. ([@tejasbubane][])executeCommandProviderand the supported code action kinds in the language server's capabilities, so clients can discover therubocop.formatAutocorrectsandrubocop.formatAutocorrectsAllcommands. ([@bbatsov][])AllCops/UseProjectIndexis enabled. ([@bbatsov][])Lint/AmbiguousBlockAssociationto detectdo...endblocks likely intended for enumerable methods in arguments. ([@hammadxcm][])Layout/LineLengthperformance on files with large collection literals. ([@koic][])Style/ConditionalAssignmentskip cases it cannot safely rewrite instead of emitting invalid code or erroring on unusual branch shapes. ([@bbatsov][])Style/IfUnlessModifieroffense message when the condition is part of a larger expression. ([@rafa-el-souza][])Style/DisableCopsWithinSourceCodeDirectiveperformance on largeAllowedCopsandDisallowedCopslists by matching directives against memoized sets instead of rebuilding an array lookup per comment. ([@corsonknowles][])Style/RedundantLineContinuationperformance on files with many adjacent string literals joined by line continuations. ([@koic][])Lint/DuplicateMethodsto detect duplicates across files whenUseProjectIndexis enabled. ([@bbatsov][])Style/IfUnlessModifier,Style/WhileUntilModifier,Style/GuardClause, and other modifier cops respectLayout/LineLengthexemptions (allowed patterns, cop directives, allowed URIs) when checking whether the modifier form fits on one line. ([@bbatsov][])Lint/SafeNavigationChainautocorrection as unsafe. ([@koic][])Lint/ConstantResolutionto report only genuinely ambiguous constants whenUseProjectIndexis enabled. ([@bbatsov][])Style/RedundantAssignmentoffenses when there are comments between assignment and reference. ([@lovro-bikic][])Style/ClassAndModuleChildrenautocorrection to consult the project index for the namespace kind and definition sites whenUseProjectIndexis enabled. ([@bbatsov][])Lint/MissingSuperto skip the constructor offense when the project index shows no ancestor definesinitialize(UseProjectIndex). ([@bbatsov][])Style/Copyrightto validateAutocorrectNoticeonly when autocorrection is requested (-a/-A), so plain inspection no longer raises a warning. ([@koic][])Layout/RedundantLineBreakto verify each correction by reparsing before registering an offense. ([@bbatsov][])Style/RedundantParenthesesto verify each correction by reparsing before registering an offense. ([@bbatsov][])Style/SoleNestedConditionalto only register an offense when its correction is verified to parse. ([@bbatsov][])v1.88.2Compare Source
Bug fixes
Lint/ToJSON, which did not flag singletondef self.to_jsondefinitions. ([@bbatsov][])Lint/UnreachableCode, which only flagged the first statement after a flow-of-control statement instead of every unreachable statement that followed it. ([@bbatsov][])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][])Lint/Voidwhere safe-navigation calls to nonmutating methods (e.g.x&.sort) were not flagged whenCheckForMethodsWithNoSideEffectsis enabled. ([@bbatsov][])Style/ArrayIntersectwith the block form usinginclude?(e.g.array1.any? { |e| array2.include?(e) }), which was only detected formember?. ([@bbatsov][])Style/CollectionCompact, which did not flaggrep_v(nil)/grep_v(NilClass)on a safe-navigation call (e.g.array&.grep_v(nil)). ([@bbatsov][])Style/DefWithParentheseswith a single-line definition whose body follows a semicolon (e.g.def foo(); end), where the parentheses can be safely omitted. ([@bbatsov][])Style/MixinUsagewhen including multiple modules in one statement. ([@bbatsov][])Style/ModuleFunctionwhen the module body is a single statement. ([@bbatsov][])Style/RedundantCurrentDirectoryInPathwith double-quoted strings containing interpolation. ([@bbatsov][])Style/RedundantHeredocDelimiterQuoteswith double-quoted delimiters whose body contains interpolation or escapes. ([@bbatsov][])Gemspec/DuplicatedAssignmentwith multiple specifications. ([@bbatsov][])Layout/CommentIndentationwith a comment above an inline access modifier (e.g.private def foo) whenLayout/AccessModifierIndentationis configured withEnforcedStyle: outdent. ([@grk][])Style/InvertibleUnlessConditionwith a multi-statement begin condition. ([@bbatsov][])Style/ArgumentsForwardingandStyle/MethodDefParentheseswhen autocorrection conflicts while adding parentheses to method definition arguments. ([@koic][])Lint/ToJSONthat produced invalid Ruby (def to_json(*_args)()) when the method had explicit empty parentheses. ([@bbatsov][])Style/MethodCallWithoutArgsParentheseswhen empty parentheses span multiple lines and the method call has a block. ([@koic][])Style/HashConversionwith a splat argument, which previously produced an invalid hash literal. ([@bbatsov][])Style/HashLookupMethodwith safe navigation, where the suggested bracket form would be the unreadablehash&.[](key). ([@bbatsov][])Style/IdenticalConditionalBranchesthat hoisted the moved expression to column zero instead of matching the surrounding indentation. ([@bbatsov][])Style/InvertibleUnlessConditionwith mixed&&/||conditions, which lost the required parentheses when inverting. ([@bbatsov][])Style/TrivialAccessorswhenAllowPredicates: falseis set and a trivial reader is defined as a predicate class method. ([@koic][])Layout/LineLengthwithSplitStringswhen an over-long string is indented under a multi-line parent. ([@bbatsov][])Style/MissingRespondToMissingwhenmethod_missingis defined at the top level or alongside sibling classes. ([@bbatsov][])Layout/ElseAlignmentwhen usingelsewithin a block that is part of a larger expression. ([@koic][])Layout/MultilineMethodCallIndentationwhen a method chain is nested inside a parenthesized argument list or a grouped expression within a hash pair value. ([@koic][])Style/StructInheritanceautocorrect dropping leading indentation when class is inside a module or namespace. ([@amckinnie][])Style/DocumentationMethodignoringAllowedMethodsfor inline modifier defs. ([@bbatsov][])Style/LambdaCallwhen the argument list contains a comment, which the autocorrect would have dropped. ([@bbatsov][])Changes
on_new_investigation,on_investigation_end, andon_other_fileonly to cops that refine them, and by skippingafter_*dispatch when no cop needs it. ([@bbatsov][])Lint/Debuggerperformance on code without debugger calls. ([@bbatsov][])Lint/NumericOperationWithConstantResultautocorrect as unsafe because it drops the operands, discarding their side effects and silencing cases where the result is not actually constant (e.g.x / xraises whenxis0). ([@bbatsov][])AllowedPatterns,ForbiddenPatterns, andAllowedMethodsby compiling the configured patterns only once. ([@bbatsov][])Style/IfUnlessModifierand other modifier cops on files with many comments or conditionals. ([@bbatsov][])v1.88.1Compare Source
Bug fixes
Bundler/GemCommentwith a non-literal gem option key. ([@bbatsov][])Layout/ClassStructurewhen a class body is a single safe-navigation call (e.g.test&.private_methods(def foo; end)). ([@bbatsov][])Gemspec/DevelopmentDependencieswhenAllowedGemsis nil. ([@bbatsov][])Metrics/MethodLengthwith an anonymousdefine_method. ([@bbatsov][])Naming/InclusiveLanguagewith nil or emptyFlaggedTerms. ([@bbatsov][])Security/IoMethodswith a non-string-literal argument. ([@bbatsov][])Style/EmptyStringInsideInterpolationwith a modifier conditional. ([@bbatsov][])Style/OpenStructUsewith a bareOpenStructroot node. ([@bbatsov][])Style/TrailingUnderscoreVariablewhen a nested destructuring group consists only of underscore variables. ([@bbatsov][])Security/MarshalLoadwith a proc argument. ([@bbatsov][])Style/MethodDefParentheseswith named rest arguments underEnforcedStyle: require_no_parentheses. ([@bbatsov][])Style/MultilineMethodSignaturewhere a signature that fits on one line was skipped because the multi-line source length was measured instead of the collapsed width. ([@bbatsov][])Style/OptionalArgumentswith singleton methods. ([@bbatsov][])Style/RedundantFilterChainwith numbered-parameter blocks. ([@bbatsov][])Lint/ToEnumArgumentswhen a braced hash is passed to keyword parameters (e.g.to_enum(:m, { required: required })), which raisesArgumentErrorwhen the enumerator is used. ([@RedZapdos123][])Naming/FileNamewhen a class or module name contains multiple consecutiveAllowedAcronyms. ([@camallen][])Style/DirEmptywith a block. ([@bbatsov][])Style/EmptyLiteralwith numbered anditblock parameters. ([@bbatsov][])Style/EnvHome. ([@bbatsov][])Style/InlineCommentwithrubocop:tododirectives. ([@bbatsov][])Style/MultilineIfThen. ([@bbatsov][])Style/NumericPredicatewhen an allowed method encloses a numbered-parameter oritblock. ([@bbatsov][])Style/OptionHashwhen the options hash is forwarded with an explicitsuper. ([@bbatsov][])Style/RedundantFormatwith a lone format sequence. ([@bbatsov][])Style/RedundantSelfwith a rescue exception variable. ([@bbatsov][])Style/Semicolonwith a semicolon inside a string literal. ([@bbatsov][])Layout/ConditionPositionthat dropped a body statement sharing the condition's line via a semicolon. ([@bbatsov][])Layout/EmptyCommentthat deleted a heredoc when removing an empty comment trailing its opener. ([@bbatsov][])Layout/EmptyLineBetweenDefsthat inserted a blank line inside a heredoc body when an endless method's body was a heredoc. ([@bbatsov][])Layout/SpaceAroundOperatorsthat turned**=and/=compound assignments into**//, dropping the assignment. ([@bbatsov][])Naming/MemoizedInstanceVariableName. ([@bbatsov][])Naming/RescuedExceptionsVariableName. ([@bbatsov][])Style/DataInheritancewith a brace block. ([@bbatsov][])Style/EmptyCaseConditionas ayield/superargument. ([@bbatsov][])Style/EmptyCaseConditionwith low-precedencewhenvalues. ([@bbatsov][])Style/EmptyClassDefinitionwith a namespaced constant. ([@bbatsov][])Style/EmptyHeredoc. ([@bbatsov][])Style/EvenOdd. ([@bbatsov][])Style/ExactRegexpMatchwith a single quote. ([@bbatsov][])Style/FileNull. ([@bbatsov][])Style/For. ([@bbatsov][])Style/FormatStringwith a low-precedence argument. ([@bbatsov][])Style/FormatStringwith a splat argument. ([@bbatsov][])Style/HashSlice. ([@bbatsov][])Style/HashSyntaxwith a multi-pair bracelessreturn. ([@bbatsov][])Style/IfWithSemicolonthat changed semantics when the condition was an assignment, by parenthesizing it in the resulting ternary. ([@bbatsov][])Style/KeywordArgumentsMergingwith a block-pass argument. ([@bbatsov][])Style/KeywordParametersOrderthat inserted a spurious blank line when a keyword optional parameter already trailed the parameters list. ([@bbatsov][])Style/MapIntoArraywith a block-pass argument. ([@bbatsov][])Style/MethodCallWithoutArgsParentheseswithit()in a numbered block. ([@bbatsov][])Style/MinMaxComparisonwithunless. ([@bbatsov][])Style/MultilineMemoizationwithrescue/ensure. ([@bbatsov][])Style/MultilineMethodSignature. ([@bbatsov][])Style/NilLambdawhen a non-lambda proc returnsnilwithreturn. ([@bbatsov][])Style/ParallelAssignmentwith a%ielement needing quoting. ([@bbatsov][])Style/ParallelAssignmentwith a%welement needing escaping. ([@bbatsov][])Style/PercentLiteralDelimitersthat produced invalid Ruby for a%ssymbol whose content contains the preferred delimiter. ([@bbatsov][])Style/PerlBackrefsthat rewrote$+/$LAST_PAREN_MATCHto the non-equivalentRegexp.last_match(-1); these are no longer flagged. ([@bbatsov][])Style/RedundantExceptionthat changed the exception message when raisingRuntimeErrorwith anilmessage. ([@bbatsov][])Style/RedundantFormatwith anilargument. ([@bbatsov][])Style/RedundantLineContinuationthat corrupted an earlier line when removing a line continuation at the end of a multi-line file. ([@bbatsov][])Style/RedundantRegexpEscapethat stripped a necessary\@/\$escape after#in%r{}/%r//literals, enabling unintended interpolation. ([@bbatsov][])Style/RedundantStructKeywordInitwhenkeyword_initis not the last pair. ([@bbatsov][])Style/SingleLineDoEndBlockwhen the block body contains a heredoc. ([@bbatsov][])Style/StringHashKeyswhen the hash key is a heredoc. ([@bbatsov][])Style/TernaryParentheseswhen the condition is a modifierif/unlessexpression. ([@bbatsov][])Gemspec/RequireMFAwith multiple specifications. ([@bbatsov][])Lint/AssignmentInConditionandStyle/RedundantParentheseswhen an assignment is a statement of a multi-statementbeginin a condition. ([@koic][])Style/AccessorGroupingwith a single-line trailing comment. ([@bbatsov][])--fail-fastnot reporting offenses and exiting with a zero status when offenses are found. ([@koic][])Layout/BlockAlignmentwhenEnforcedStyleAlignWith: start_of_blockis used anddois on a continuation line of a parenthesisless multiline method call. ([@koic][])Style/HashTransformKeysandStyle/HashTransformValueswith a splat. ([@bbatsov][])Style/Lambdawith block-local arguments. ([@bbatsov][])Layout/IndentationWidthwhen the body of a multiline grouped expression in parentheses is not indented. ([@koic][])Bundler/OrderedGemsandGemspec/OrderedDependencieswhen the last declaration has no trailing newline, which joined two declarations into a single line. ([@koic][])Lint/UnescapedBracketInRegexpwhen a character class starts with a bare](e.g./[^]]/). ([@koic][])Changes
Style/MapCompactWithConditionalBlockautocorrect as unsafe becausecompactalso removesnilelements already present in the collection. ([@bbatsov][])Metrics/PerceivedComplexityto weight simplecase/inpattern branches the same ascase/whenbranches. ([@koic][])v1.88.0Compare Source
New features
Recursiveoption toStyle/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
Lint/RedundantSplatExpansionwhen splatting an empty literal (e.g.when *[]orrescue *[]), which expanded to invalid or semantically different code. ([@bbatsov][])Lint/RegexpAsConditionwhen the regexp literal is negated (e.g.if !/foo/), which inverted the condition. ([@bbatsov][])Lint/SymbolConversionwhen the receiver is an interpolated string containing an embedded double quote (e.g."foo#{bar}\"qux".to_sym), which produced a syntax error. ([@bbatsov][])Style/CombinableLoopswhen aforloop has an empty body, and stop autocorrecting consecutiveforloops whose iteration variables differ (which produced code referencing an undefined variable). ([@bbatsov][])Style/ConstantVisibilitywhen a visibility declaration has a numeric literal argument (e.g.private_constant 42). ([@bbatsov][])Lint/OrderedMagicCommentswhen anencodingmagic comment is preceded by a magic comment other thanfrozen_string_literal(e.g.shareable_constant_value). ([@bbatsov][])Lint/RedundantWithIndexwhen the block takes no arguments (e.g.ary.each_with_index { do_something }). ([@bbatsov][])Lint/RequireRelativeSelfPathwhen requiring the current file by name with its extension (e.g.require_relative 'foo.rb') and the file path is absolute. ([@bbatsov][])Lint/SafeNavigationChainwhen an ordinary method is chained after a parenthesized safe navigation call (e.g.(x&.foo).bar). ([@bbatsov][])Lint/SafeNavigationWithEmptywhen the receiver of&.empty?is a local variable, instance variable, constant, or other non-method-call expression. ([@bbatsov][])Lint/SendWithMixinArgumentwhensend/public_send/__send__is called with no explicit receiver or with aselfreceiver (e.g.send(:include, Bar)). ([@bbatsov][])Lint/ToEnumArgumentswhen more positional arguments are passed than the method accepts (e.g.def m(x); to_enum(:m, x, extra); end), which raisesArgumentErrorwhen the enumerator is used. ([@bbatsov][])Lint/UnescapedBracketInRegexpwhen an unescaped]is preceded by an escaped backslash (e.g./abc\\]123/). ([@bbatsov][])Style/ArrayIntersectWithSingleElementwith a splat argument (e.g.array.intersect?([*foo])), which is not a single element and was incorrectly rewritten toarray.include?(*foo). ([@bbatsov][])Style/ColonMethodCallwith chained JRuby interop calls (e.g.Java::com::something_method). ([@bbatsov][])Style/ConditionalAssignmentwithEnforcedStyle: assign_inside_conditionwhen assigning anunlesswithout anelsebranch (e.g.x = unless cond; 1; end), which was rewritten to move the assignment inside theunlessand changed behavior when the condition was true. ([@bbatsov][])Layout/BlockAlignmentwithEnforcedStyleAlignWith: start_of_linewhen a block is passed as a method argument. ([@augustocbx][])Lint/RaiseExceptionwhenraise Exceptionis used inside a module nested within an allowed implicit namespace (e.g.Gem). ([@bbatsov][])Lint/RedundantDirGlobSortwhensortis given a comparator block or a block-pass argument, which is not redundant with the default sorting. ([@bbatsov][])Lint/ShadowingOuterLocalVariablewhen a block argument has the same name as a pattern variable from a differentinbranch of the samecase. ([@bbatsov][])Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.