From f67ab7f30c837ce4b9c2ae39d7c189413fac6dff Mon Sep 17 00:00:00 2001 From: Imir Kiyamov Date: Fri, 20 May 2022 16:32:11 +0300 Subject: [PATCH] [ruby/did_you_mean] Fixed correction duplicates in VariableNameChecker https://github.com/ruby/did_you_mean/commit/c3fc412f6f --- .../name_error_checkers/variable_name_checker.rb | 2 +- .../spell_checking/test_variable_name_check.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb b/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb index 36d00349c6..9a6e04fe64 100644 --- a/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb +++ b/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb @@ -79,7 +79,7 @@ module DidYouMean def corrections @corrections ||= SpellChecker .new(dictionary: (RB_RESERVED_WORDS + lvar_names + method_names + ivar_names + cvar_names)) - .correct(name) - NAMES_TO_EXCLUDE[@name] + .correct(name).uniq - NAMES_TO_EXCLUDE[@name] end end end diff --git a/test/did_you_mean/spell_checking/test_variable_name_check.rb b/test/did_you_mean/spell_checking/test_variable_name_check.rb index 9d8b86eb5b..0350b62660 100644 --- a/test/did_you_mean/spell_checking/test_variable_name_check.rb +++ b/test/did_you_mean/spell_checking/test_variable_name_check.rb @@ -137,4 +137,16 @@ class VariableNameCheckTest < Test::Unit::TestCase error = assert_raise(NameError){ foo } assert_empty error.corrections end + + def test_exclude_duplicates_with_same_name + error = assert_raise(NameError) do + eval(<<~RUBY, binding, __FILE__, __LINE__) + bar = 1 + def bar;end + zar + RUBY + end + + assert_correction [:bar], error.corrections + end end