File tree Expand file tree Collapse file tree 3 files changed +27
-1
lines changed Expand file tree Collapse file tree 3 files changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -1508,6 +1508,7 @@ def parse_method_or_yield_parameters(method = nil,
15081508 end
15091509 tk = get_tk
15101510 end
1511+ @scanner . first_in_method_statement = true
15111512
15121513 get_tkread_clean ( /\s +/ , ' ' )
15131514 end
Original file line number Diff line number Diff line change @@ -45,6 +45,7 @@ class Error < RDoc::Error
4545
4646 attr_accessor :continue
4747 attr_accessor :lex_state
48+ attr_accessor :first_in_method_statement
4849 attr_reader :reader
4950
5051 class << self
@@ -112,6 +113,7 @@ def initialize(content, options)
112113 @indent_stack = [ ]
113114 @lex_state = :EXPR_BEG
114115 @space_seen = false
116+ @first_in_method_statement = false
115117 @after_question = false
116118
117119 @continue = false
@@ -353,6 +355,7 @@ def token
353355 begin
354356 tk = @OP . match ( self )
355357 @space_seen = tk . kind_of? ( TkSPACE )
358+ @first_in_method_statement = false if !@space_seen && @first_in_method_statement
356359 rescue SyntaxError => e
357360 raise Error , "syntax error: #{ e . message } " if
358361 @exception_on_syntax_error
@@ -739,7 +742,7 @@ def lex_int2
739742 if :EXPR_FNAME == @lex_state or :EXPR_DOT == @lex_state
740743 @lex_state = :EXPR_ARG
741744 Token ( TkId , op )
742- elsif @lex_state == :EXPR_BEG || @lex_state == :EXPR_MID
745+ elsif @lex_state == :EXPR_BEG || @lex_state == :EXPR_MID || @first_in_method_statement
743746 identify_string ( op )
744747 elsif peek ( 0 ) == '='
745748 getc
Original file line number Diff line number Diff line change @@ -2528,6 +2528,28 @@ def blah()
25282528 assert_equal markup_code , expected
25292529 end
25302530
2531+ def test_parse_statements_method_oneliner_with_regexp
2532+ util_parser <<RUBY
2533+ class Foo
2534+ def blah() /bar/ end
2535+ end
2536+ RUBY
2537+
2538+ expected = <<EXPTECTED
2539+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">blah</span>() <span class="ruby-regexp">/bar/</span> <span class="ruby-keyword">end</span>
2540+ EXPTECTED
2541+ expected = expected . rstrip
2542+
2543+ @parser . scan
2544+
2545+ foo = @top_level . classes . first
2546+ assert_equal 'Foo' , foo . full_name
2547+
2548+ blah = foo . method_list . first
2549+ markup_code = blah . markup_code . sub ( /^.*\n / , '' )
2550+ assert_equal expected , markup_code
2551+ end
2552+
25312553 def test_parse_statements_embdoc_in_document
25322554 @filename = 'file.rb'
25332555 util_parser <<RUBY
You can’t perform that action at this time.
0 commit comments