diff --git a/lib/irb/nesting_parser.rb b/lib/irb/nesting_parser.rb index fc71d64ae..c1c9a5cc7 100644 --- a/lib/irb/nesting_parser.rb +++ b/lib/irb/nesting_parser.rb @@ -159,7 +159,7 @@ def scan_opens(tokens) when :on_heredoc_end opens.pop when :on_backtick - opens << [t, nil] if t.state.allbits?(Ripper::EXPR_BEG) + opens << [t, nil] unless t.state == Ripper::EXPR_ARG when :on_tstring_beg, :on_words_beg, :on_qwords_beg, :on_symbols_beg, :on_qsymbols_beg, :on_regexp_beg opens << [t, nil] when :on_tstring_end, :on_regexp_end, :on_label_end diff --git a/test/irb/test_nesting_parser.rb b/test/irb/test_nesting_parser.rb index 2db3cdab5..6b4f54ee2 100644 --- a/test/irb/test_nesting_parser.rb +++ b/test/irb/test_nesting_parser.rb @@ -59,6 +59,7 @@ def `; end def f() = 1 %(); %w[]; %q(); %r{}; %i[] "#{1}"; ''; /#{1}/; `#{1}` + p(``); p ``; p x: ``; p 1, ``; :sym; :"sym"; :+; :`; :if [1, 2, 3] { x: 1, y: 2 }