Issue #16373 has been updated by soutaro (Soutaro Matsumoto).


> I believe the real question is "why #then defined in Kernel and not in Object"

It makes sense to me. Do we have a reason to keep them in `Kernel` not in `Object`?

----------------------------------------
Bug #16373: RDoc for some of the Kernel methods cannot be found in Kernel module
https://bugs.ruby-lang.org/issues/16373#change-82793

* Author: soutaro (Soutaro Matsumoto)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
RDoc documentations for some of the `Kernel` methods including `Kernel#then` are registered as `Object` methods. I'd like to propose to move `Kernel` methods listed in `Object` class to `Kernel` class.

The following `ri` results are confusing to me because the `Object` methods are defined in `Kernel` module technically.

```
$ ri Kernel#then
Nothing known about Kernel#then
$ ri Object#then
[Prints documentation]
```

This is because of the implementation of RDoc that it treats `Kernel` methods as if they are defined in `Object`.

- https://github.com/ruby/rdoc/blob/acfb829917336ecbca6036437918c29319db7c04/lib/rdoc/parser/c.rb#L508

I'd like to disable the assignment and make `Kernel` methods listed in `Kernel` module.

**Pros**

- The RDoc structure is more clear and precise
  - (This is essential to me that it makes easier to generate annotations for RBS files.)
- Both of `ri Kernel#then` and `ri Object#then` print the documentation

**Cons**

- The document of `Object` class will be almost empty, which may cause confusion for readers while there is a link to included module, `Kernel`




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>