summaryrefslogtreecommitdiff
path: root/test/rdoc/test_rdoc_parser_c.rb
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-03-16 15:05:26 +0900
committergit <svn-admin@ruby-lang.org>2022-03-16 15:05:41 +0900
commitebcbca96fb93c100da48f411515d9d8802d60b2b (patch)
tree6a65f62ebcb558956c76112144fade71ac3160e2 /test/rdoc/test_rdoc_parser_c.rb
parentfc6e4ce62bfa95b6a0d4d4898e1128c1fce4db8a (diff)
[ruby/rdoc] Fix full name of known class
Properly set the name of `File::Constants`, which is the only name with a namespace in `RDoc::KNOWN_CLASSES`, and fixes longstanding bug that `File::Constants` becomes `File::File::Constants`. When it is generated by `rb_file_const` in dir.c, `name` is set to the qualified name as same as `full_name`, and generated in the normal way in file.c later, already set `full_name` is cleared and `name` will be constructed from the enclosing namespace and the `name`. It will results in duplicated namespace, `File::File::Constants`. https://github.com/ruby/rdoc/commit/3a8d6df562
Diffstat (limited to 'test/rdoc/test_rdoc_parser_c.rb')
-rw-r--r--test/rdoc/test_rdoc_parser_c.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/rdoc/test_rdoc_parser_c.rb b/test/rdoc/test_rdoc_parser_c.rb
index 3383cb6826..d3138d23aa 100644
--- a/test/rdoc/test_rdoc_parser_c.rb
+++ b/test/rdoc/test_rdoc_parser_c.rb
@@ -638,6 +638,17 @@ void Init_File(void) {
assert_equal 'LOCK_SH', constant.name
assert_equal 'INT2FIX(LOCK_SH)', constant.value
assert_equal 'Shared lock', constant.comment.text
+
+ @parser = util_parser <<-EOF
+void Init_File(void) {
+ rb_cFile = rb_define_class("File", rb_cIO);
+ rb_mFConst = rb_define_module_under(rb_cFile, "Constants");
+}
+ EOF
+ @parser.do_classes_and_modules
+ @parser.do_constants
+
+ assert_equal 'File::Constants', klass.full_name
end
def test_do_includes