
Issue #19405 has been reported by kyonides (Edwin Acuña). ---------------------------------------- Bug #19405: Prevent Use of include CustomModule in a Nested Class https://bugs.ruby-lang.org/issues/19405 * Author: kyonides (Edwin Acuña) * Status: Open * Priority: Normal * ruby -v: ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux-gnu] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- 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. ``` ruby module MyModule class MyClass A = 'A' B = 'B' include MyModule end end ``` If you print something like: ``` ruby 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. =_=¡ -- https://bugs.ruby-lang.org/