Project

General

Profile

Actions

Bug #19405

closed

Prevent Use of include CustomModule in a Nested Class

Added by kyonides (Edwin Acuña) almost 2 years ago. Updated almost 2 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux-gnu]
[ruby-core:112193]

Description

Bug present ever since Ruby 1.8.
Tested in Ruby 2.7 and 3.0 as well.

I would like to request the developers to prevent any person from doing something as illogical and useless as the code I have provided you with right below.

module MyModule
  class MyClass
    A = 'A'
    B = 'B'
    include MyModule
  end
end

If you print something like:

puts MyModule::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::B

Ruby will let you do it!

Why is it possible to chain the calls to MyClass class forever and ever?
It should throw an error for including the very same module and class where the constants are nested.

Proposed Error Class:

"ModuleError: Class nested in module %s cannot call include method to add the same module."

Or something the like. =_=¡

Actions

Also available in: Atom PDF

Like0
Like0