Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix an error for
Lint/NumberConversion
This PR fixes the following error for `Lint/NumberConversion` when using nested number conversion methods. ## Before ```console % cat example.rb var.to_i.to_f % bundle exec rubocop --only Lint/NumberConversion -A (snip) Inspecting 1 file An error occurred while Lint/NumberConversion cop was inspecting /Users/koic/src/github.com/koic/rubocop-issues/number/example.rb:1:0. To see the complete backtrace run rubocop -d. W Offenses: example.rb:1:1: W: [Corrected] Lint/NumberConversion: Replace unsafe number conversion with number class parsing, instead of using var.to_i.to_f, use stricter Float(var.to_i).var.to_i.to_f ^^^^^^^^^^^^^ example.rb:1:7: W: [Corrected] Lint/NumberConversion: Replace unsafe number conversion with number class parsing, instead of using var.to_i, use stricter Integer(var, 10).Float(var.to_i) ^^^^^^^^ 1 file inspected, 2 offenses detected, 2 offenses corrected 1 error occurred: An error occurred while Lint/NumberConversion cop was inspecting /Users/koic/src/github.com/koic/rubocop-issues/number/example.rb:1:0. Errors are usually caused by RuboCop bugs. Please, report your problems to RuboCop's issue tracker. % cat example.rb Float(Integer(var, 10)) ``` ## After ```console % cat example.rb var.to_i.to_f % bundle exec rubocop --only Lint/NumberConversion -A (snip) Offenses: example.rb:1:1: W: [Corrected] Lint/NumberConversion: Replace unsafe number conversion with number class parsing, instead of using var.to_i, use stricter Integer(var, 10).var.to_i.to_f ^^^^^^^^ 1 file inspected, 1 offense detected, 1 offense corrected % cat example.rb Integer(var, 10).to_f ``` The result of `Integer()` is an `Integer` object, so `to_f` does not need to be replaced with `Float()`. Accordingly, this PR will be changed to be accepted if the receiver is a numeric literal that is an obvious numeric (e.g. `42.to_f`).
- Loading branch information