diff --git a/lib/rdoc/parser/prism_ruby.rb b/lib/rdoc/parser/prism_ruby.rb index dd879ca795..01614da032 100644 --- a/lib/rdoc/parser/prism_ruby.rb +++ b/lib/rdoc/parser/prism_ruby.rb @@ -510,7 +510,7 @@ def add_extends(names, line_no) # :nodoc: # Adds a method defined by `def` syntax - def add_method(name, receiver_name:, receiver_fallback_type:, visibility:, singleton:, params:, calls_super:, block_params:, tokens:, start_line:, end_line:) + def add_method(name, receiver_name:, receiver_fallback_type:, visibility:, singleton:, params:, calls_super:, block_params:, tokens:, start_line:, args_end_line:, end_line:) return if @in_proc_block receiver = receiver_name ? find_or_create_module_path(receiver_name, receiver_fallback_type) : @container @@ -524,6 +524,7 @@ def add_method(name, receiver_name:, receiver_fallback_type:, visibility:, singl meth.comment = comment end handle_modifier_directive(meth, start_line) + handle_modifier_directive(meth, args_end_line) handle_modifier_directive(meth, end_line) return unless should_document?(meth) @@ -854,6 +855,7 @@ def visit_singleton_class_node(node) def visit_def_node(node) start_line = node.location.start_line + args_end_line = node.parameters&.location&.end_line || start_line end_line = node.location.end_line @scanner.process_comments_until(start_line - 1) @@ -904,6 +906,7 @@ def visit_def_node(node) calls_super: calls_super, tokens: tokens, start_line: start_line, + args_end_line: args_end_line, end_line: end_line ) ensure diff --git a/test/rdoc/test_rdoc_parser_prism_ruby.rb b/test/rdoc/test_rdoc_parser_prism_ruby.rb index 50a4483b1b..7747be4670 100644 --- a/test/rdoc/test_rdoc_parser_prism_ruby.rb +++ b/test/rdoc/test_rdoc_parser_prism_ruby.rb @@ -1391,9 +1391,12 @@ def nodoc2 # :nodoc: def doc3; end def nodoc3 end # :nodoc: + def nodoc4(arg1, + arg2) # :nodoc: + end def doc4; end # :stopdoc: - def nodoc4; end + def nodoc5; end end RUBY klass = @store.find_class_named 'Foo'