Fix false positives about double quotes #4112
Merged
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.
StringLiterals
,UnneededCapitalW
andUnneededPercentQ
cops havefalse positives about double quotes.
If escaped normal character that is like
\!
exists in a literal, thosecops make false positives.
For examples
UnneededPercentQ
%Q{"foo\!"}
The above code can't be replaced with
'"foo\!"'
.But the cop adds an offense for the code.
UnneededCapitalW
The above code can't be replaced with
%w(a \! b)
(smallw
).But the cop adds an offense for the code.
$ rubocop --only UnneededCapitalW Inspecting 1 file C Offenses: test.rb:1:1: C: Do not use %W unless interpolation is needed. If not, use %w. %W(a \! b) ^^^^^^^^^^ 1 file inspected, 1 offense detected
StringLiterals
The double quotes in the above code can't be replaced with single
quotes.
But the cop adds an offense for the code.
The cause about this false positives is
double_quotes_acceptable?
method.The method receives a string value. For example, when a literal is
"\!"
, the method receives"!"
. So, the presence or absence of escape will be lost.This change fixed the problems.
Replace this text with a summary of the changes in your PR.
The more detailed you are, the better.
Before submitting the PR make sure the following are checked:
[Fix #issue-number]
(if the related issue exists).master
(if not - rebase it).and description in grammatically correct, complete sentences.
rake generate_cops_documentation
(required only when you've added a new cop or changed the configuration/documentation of an existing cop).