Skip to content

Fix dropped method receiver after comment-in-parens (#357)#359

Merged
kzkn merged 1 commit into
masterfrom
fix-357
May 28, 2026
Merged

Fix dropped method receiver after comment-in-parens (#357)#359
kzkn merged 1 commit into
masterfrom
fix-357

Conversation

@kzkn
Copy link
Copy Markdown
Member

@kzkn kzkn commented May 28, 2026

Fixes #357 — rufo deleted method receivers in some block bodies, producing invalid Ruby.

  • skip_space_or_newline wrote a trailing-newline comment via write "\n", which doesn't advance @line; stale @line then caused dedent_calls to trim leading chars off an unrelated later line, dropping the receiver.
  • Switch to write_line so @line/@column/@last_was_newline stay consistent; manual @column = next_indent is no longer needed.
  • Regression spec added in junk_drawer.rb.spec mirroring the reproducer in rufo broke my code (method receiver was deleted) #357.

🤖 Generated with Claude Code

skip_space_or_newline wrote "\n" via `write`, which does not increment
@line. A trailing-newline comment inside parens left @line one short of
reality, so later `dedent_calls` looked up @line_to_call_info on the
wrong line and trimmed leading characters off an unrelated call,
deleting the method receiver. Use write_line so newline bookkeeping
stays consistent; the manual @column reset becomes unnecessary.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@kzkn kzkn merged commit 374c3e7 into master May 28, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rufo broke my code (method receiver was deleted)

1 participant