relnotes/v1.88.1.md
Bundler/GemComment with a non-literal gem option key. (@bbatsov)Layout/ClassStructure when a class body is a single safe-navigation call (e.g. test&.private_methods(def foo; end)). (@bbatsov)Gemspec/DevelopmentDependencies when AllowedGems is nil. (@bbatsov)Metrics/MethodLength with an anonymous define_method. (@bbatsov)Naming/InclusiveLanguage with nil or empty FlaggedTerms. (@bbatsov)Security/IoMethods with a non-string-literal argument. (@bbatsov)Style/EmptyStringInsideInterpolation with a modifier conditional. (@bbatsov)Style/OpenStructUse with a bare OpenStruct root node. (@bbatsov)Style/TrailingUnderscoreVariable when a nested destructuring group consists only of underscore variables. (@bbatsov)Security/MarshalLoad with a proc argument. (@bbatsov)Style/MethodDefParentheses with named rest arguments under EnforcedStyle: require_no_parentheses. (@bbatsov)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)Style/OptionalArguments with singleton methods. (@bbatsov)Style/RedundantFilterChain with numbered-parameter blocks. (@bbatsov)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)Naming/FileName when a class or module name contains multiple consecutive AllowedAcronyms. (@camallen)Style/DirEmpty with a block. (@bbatsov)Style/EmptyLiteral with numbered and it block parameters. (@bbatsov)Style/EnvHome. (@bbatsov)Style/InlineComment with rubocop:todo directives. (@bbatsov)Style/MultilineIfThen. (@bbatsov)Style/NumericPredicate when an allowed method encloses a numbered-parameter or it block. (@bbatsov)Style/OptionHash when the options hash is forwarded with an explicit super. (@bbatsov)Style/RedundantFormat with a lone format sequence. (@bbatsov)Style/RedundantSelf with a rescue exception variable. (@bbatsov)Style/Semicolon with a semicolon inside a string literal. (@bbatsov)Layout/ConditionPosition that dropped a body statement sharing the condition's line via a semicolon. (@bbatsov)Layout/EmptyComment that deleted a heredoc when removing an empty comment trailing its opener. (@bbatsov)Layout/EmptyLineBetweenDefs that inserted a blank line inside a heredoc body when an endless method's body was a heredoc. (@bbatsov)Layout/SpaceAroundOperators that turned **= and /= compound assignments into **//, dropping the assignment. (@bbatsov)Naming/MemoizedInstanceVariableName. (@bbatsov)Naming/RescuedExceptionsVariableName. (@bbatsov)Style/DataInheritance with a brace block. (@bbatsov)Style/EmptyCaseCondition as a yield/super argument. (@bbatsov)Style/EmptyCaseCondition with low-precedence when values. (@bbatsov)Style/EmptyClassDefinition with a namespaced constant. (@bbatsov)Style/EmptyHeredoc. (@bbatsov)Style/EvenOdd. (@bbatsov)Style/ExactRegexpMatch with a single quote. (@bbatsov)Style/FileNull. (@bbatsov)Style/For. (@bbatsov)Style/FormatString with a low-precedence argument. (@bbatsov)Style/FormatString with a splat argument. (@bbatsov)Style/HashSlice. (@bbatsov)Style/HashSyntax with a multi-pair braceless return. (@bbatsov)Style/IfWithSemicolon that changed semantics when the condition was an assignment, by parenthesizing it in the resulting ternary. (@bbatsov)Style/KeywordArgumentsMerging with a block-pass argument. (@bbatsov)Style/KeywordParametersOrder that inserted a spurious blank line when a keyword optional parameter already trailed the parameters list. (@bbatsov)Style/MapIntoArray with a block-pass argument. (@bbatsov)Style/MethodCallWithoutArgsParentheses with it() in a numbered block. (@bbatsov)Style/MinMaxComparison with unless. (@bbatsov)Style/MultilineMemoization with rescue/ensure. (@bbatsov)Style/MultilineMethodSignature. (@bbatsov)Style/NilLambda when a non-lambda proc returns nil with return. (@bbatsov)Style/ParallelAssignment with a %i element needing quoting. (@bbatsov)Style/ParallelAssignment with a %w element needing escaping. (@bbatsov)Style/PercentLiteralDelimiters that produced invalid Ruby for a %s symbol whose content contains the preferred delimiter. (@bbatsov)Style/PerlBackrefs that rewrote $+/$LAST_PAREN_MATCH to the non-equivalent Regexp.last_match(-1); these are no longer flagged. (@bbatsov)Style/RedundantException that changed the exception message when raising RuntimeError with a nil message. (@bbatsov)Style/RedundantFormat with a nil argument. (@bbatsov)Style/RedundantLineContinuation that corrupted an earlier line when removing a line continuation at the end of a multi-line file. (@bbatsov)Style/RedundantRegexpEscape that stripped a necessary \@/\$ escape after # in %r{}/%r// literals, enabling unintended interpolation. (@bbatsov)Style/RedundantStructKeywordInit when keyword_init is not the last pair. (@bbatsov)Style/SingleLineDoEndBlock when the block body contains a heredoc. (@bbatsov)Style/StringHashKeys when the hash key is a heredoc. (@bbatsov)Style/TernaryParentheses when the condition is a modifier if/unless expression. (@bbatsov)Gemspec/RequireMFA with multiple specifications. (@bbatsov)Lint/AssignmentInCondition and Style/RedundantParentheses when an assignment is a statement of a multi-statement begin in a condition. (@koic)Style/AccessorGrouping with a single-line trailing comment. (@bbatsov)--fail-fast not reporting offenses and exiting with a zero status when offenses are found. (@koic)Layout/BlockAlignment when EnforcedStyleAlignWith: start_of_block is used and do is on a continuation line of a parenthesisless multiline method call. (@koic)Style/HashTransformKeys and Style/HashTransformValues with a splat. (@bbatsov)Style/Lambda with block-local arguments. (@bbatsov)Layout/IndentationWidth when the body of a multiline grouped expression in parentheses is not indented. (@koic)Bundler/OrderedGems and Gemspec/OrderedDependencies when the last declaration has no trailing newline, which joined two declarations into a single line. (@koic)Lint/UnescapedBracketInRegexp when a character class starts with a bare ] (e.g. /[^]]/). (@koic)