From 5218f17737594867ffe5c2cd9c90b19c7378af05 Mon Sep 17 00:00:00 2001 From: Nobuhiro IMAI Date: Tue, 22 Sep 2020 09:06:43 +0900 Subject: [PATCH] [ruby/irb] support more body argument for oneliner method definition https://github.com/ruby/irb/commit/2ff1295533 --- lib/irb/ruby-lex.rb | 12 +++--------- test/irb/test_ruby_lex.rb | 2 ++ 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/lib/irb/ruby-lex.rb b/lib/irb/ruby-lex.rb index 7be77fd12e..c75d5ebf2e 100644 --- a/lib/irb/ruby-lex.rb +++ b/lib/irb/ruby-lex.rb @@ -317,14 +317,12 @@ class RubyLex if t[2] == '=' in_oneliner_def = :BODY end - elsif t[3].allbits?(Ripper::EXPR_END) + else if in_oneliner_def == :BODY # one-liner method definition indent -= 1 end in_oneliner_def = nil - else - in_oneliner_def = nil end end @@ -376,14 +374,12 @@ class RubyLex if t[2] == '=' in_oneliner_def = :BODY end - elsif t[3].allbits?(Ripper::EXPR_END) + else if in_oneliner_def == :BODY # one[-liner method definition depth_difference -= 1 end in_oneliner_def = nil - else - in_oneliner_def = nil end end @@ -451,7 +447,7 @@ class RubyLex if t[2] == '=' in_oneliner_def = :BODY end - elsif t[3].allbits?(Ripper::EXPR_END) + else if in_oneliner_def == :BODY # one-liner method definition if is_first_printable_of_line @@ -462,8 +458,6 @@ class RubyLex end end in_oneliner_def = nil - else - in_oneliner_def = nil end end diff --git a/test/irb/test_ruby_lex.rb b/test/irb/test_ruby_lex.rb index 14b43f5718..25f037ec3b 100644 --- a/test/irb/test_ruby_lex.rb +++ b/test/irb/test_ruby_lex.rb @@ -233,6 +233,8 @@ module TestIRB Row.new(%q( def bar0() = 3), nil, 2), Row.new(%q( def bar1(a) = a), nil, 2), Row.new(%q( def bar2(a, b) = a + b), nil, 2), + Row.new(%q( def bar3() = :s), nil, 2), + Row.new(%q( def bar4() = Time.now), nil, 2), Row.new(%q(end), 0, 0), ]