From 62b73c82a9bbe0abb24d0729f0bcdf57a7c8f5c8 Mon Sep 17 00:00:00 2001 From: Oskar Eichler Date: Fri, 28 Aug 2026 02:14:23 +0300 Subject: [PATCH 1/2] Do not read trailing comments for a first-line expression --- lib/method_source/code_helpers.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/method_source/code_helpers.rb b/lib/method_source/code_helpers.rb index 4185c18..632d175 100644 --- a/lib/method_source/code_helpers.rb +++ b/lib/method_source/code_helpers.rb @@ -52,7 +52,7 @@ def expression_at(file, line_number, options={}) def comment_describing(file, line_number) lines = file.is_a?(Array) ? file : file.each_line.to_a - extract_last_comment(lines[0..(line_number - 2)]) + extract_last_comment(lines[0, line_number - 1]) end # Determine if a string of code is a complete Ruby expression. From 8bb7e4b5a9f31a0fbcd777fa498605ae5ac527ed Mon Sep 17 00:00:00 2001 From: Oskar Eichler <62393985+OskarEichler@users.noreply.github.com> Date: Fri, 28 Aug 2026 15:34:57 +0300 Subject: [PATCH 2/2] Add regression coverage for do not read trailing comments for a first-line expression --- spec/method_source/code_helpers_spec.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spec/method_source/code_helpers_spec.rb b/spec/method_source/code_helpers_spec.rb index 287ff89..4db16b6 100644 --- a/spec/method_source/code_helpers_spec.rb +++ b/spec/method_source/code_helpers_spec.rb @@ -5,6 +5,11 @@ @tester = Object.new.extend(MethodSource::CodeHelpers) end + it "does not read trailing comments for a first-line expression" do + lines = ["def first; end\n", "# unrelated tail\n"] + expect(@tester.comment_describing(lines, 1)).to eq("") + end + [ ["p = '", "'"], ["def", "a", "(); end"],