diff --git a/ChangeLog b/ChangeLog index 0b5094d169..bb8cf91eed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Dec 6 15:20:34 2012 Eric Hodel + + * lib/rdoc/context.rb: Don't warn for duplicate methods while loading. + * test/rdoc/test_rdoc_context.rb: Test for above. + Thu Dec 6 14:26:22 2012 Eric Hodel * lib/rubygems/command_manager.rb: Removed string concatenation diff --git a/lib/rdoc/context.rb b/lib/rdoc/context.rb index 6f9deae4a8..22339bf1c7 100644 --- a/lib/rdoc/context.rb +++ b/lib/rdoc/context.rb @@ -447,11 +447,13 @@ class RDoc::Context < RDoc::CodeObject known = @methods_hash[key] if known then - known.comment = method.comment if known.comment.empty? - previously = ", previously in #{known.file}" unless - method.file == known.file - @store.rdoc.options.warn \ - "Duplicate method #{known.full_name} in #{method.file}#{previously}" + if @store then # otherwise we are loading + known.comment = method.comment if known.comment.empty? + previously = ", previously in #{known.file}" unless + method.file == known.file + @store.rdoc.options.warn \ + "Duplicate method #{known.full_name} in #{method.file}#{previously}" + end else @methods_hash[key] = method method.visibility = @visibility diff --git a/test/rdoc/test_rdoc_context.rb b/test/rdoc/test_rdoc_context.rb index a4f42ad206..28b98dfe55 100644 --- a/test/rdoc/test_rdoc_context.rb +++ b/test/rdoc/test_rdoc_context.rb @@ -244,6 +244,31 @@ class TestRDocContext < XrefTestCase assert_equal 'first', method.comment.text end + def test_add_method_duplicate_loading + @context.store = nil + + meth1 = RDoc::AnyMethod.new nil, 'name' + meth1.record_location @store.add_file 'first.rb' + meth1.visibility = nil + meth1.comment = comment 'first' + + @context.add_method meth1 + + meth2 = RDoc::AnyMethod.new nil, 'name' + meth2.record_location @store.add_file 'second.rb' + meth2.comment = comment 'second' + + _, err = verbose_capture_io do + @context.add_method meth2 + end + + assert_empty err + + method = @context.method_list.first + + assert_equal 'first', method.comment.text + end + def test_add_module @c1.add_module RDoc::NormalModule, 'Mod'