Bug #10691
closedBad or Non-existent class names listed on 'Index of Files, Classes & Methods in Ruby' page.
Description
On this page: Index of Files, Classes & Methods in Ruby 2.2.0 (Ruby 2.2.0)
There are Classes:

I found some of the classes listed here does not exist:
Complex::compatible
fatal
unknown
Rational::compatible
What do I mean by not exist? That is if I type fatal in irb:
irb(main):001:0> fatal
NameError: undefined local variable or method `fatal' for main:Object
	from (irb):1
	from /Users/Juan/.rubies/ruby-2.2.0/bin/irb:11:in `<main>'
irb(main):002:0> Fatal
NameError: uninitialized constant Fatal
	from (irb):2
	from /Users/Juan/.rubies/ruby-2.2.0/bin/irb:11:in `<main>'
Other versions of documentation also has this problem.
http://www.ruby-doc.org/core-2.0.0/
http://www.ruby-doc.org/core-2.1.5/
http://www.ruby-doc.org/core-2.2.0/
I want to remove it but cannot find which repository to work on.
So I report here, Thanks!
Files
        
           Updated by jeremyevans0 (Jeremy Evans) about 6 years ago
          Updated by jeremyevans0 (Jeremy Evans) about 6 years ago
          
          
        
        
      
      - File fatal-doc-10691.patch fatal-doc-10691.patch added
Complex::compatible, unknown, Rational::compatible were removed by Ruby 2.6.0.  fatal is still documented, but that exists even though you cannot reference it directly:
f = ObjectSpace.each_object(Class){|c| break c if c.name && c.name.downcase == c.name}
# => fatal
f.ancestors
# => [fatal, Exception, Object, Kernel, BasicObject]
The documentation for fatal states You are not able to rescue fatal.  That appears to be incorrect:
f = ObjectSpace.each_object(Class){|c| break c if c.name && c.name.downcase == c.name}
begin
  raise f
rescue f
  2
end
# => 2
Attached is a patch that removes that sentence from fatal's documentation. I'm not sure if we actually want to prevent the rescuing of fatal instead, though.
        
           Updated by nobu (Nobuyoshi Nakada) about 6 years ago
          Updated by nobu (Nobuyoshi Nakada) about 6 years ago
          
          
        
        
      
      The documentation is not accurate indeed.
To be accurate, it is impossible to rescue the fatal raised by rb_fatal function.
        
           Updated by nobu (Nobuyoshi Nakada) about 6 years ago
          Updated by nobu (Nobuyoshi Nakada) about 6 years ago
          
          
        
        
      
      Thread.start{Thread.stop}
begin
  Thread.stop
rescue Exception => fatal
  p fatal.class #=> fatal
end
        
           Updated by jeremyevans (Jeremy Evans) about 6 years ago
          Updated by jeremyevans (Jeremy Evans) about 6 years ago
          
          
        
        
      
      - Status changed from Open to Closed
Applied in changeset git|404850e13446c79fb6142f1b32b219753e5cd726.
Remove documentation that fatal cannot be rescued [ci skip]
You can rescue it:
f = ObjectSpace.each_object(Class){|c| break c if c.name == 'fatal'}
begin
raise f
rescue f
2
end # => 2
It's not a good idea to rescue fatal exceptions you didn't generate
yourself, though.
Fixes [Bug #10691]