From: matz@... Date: 2019-08-29T04:24:16+00:00 Subject: [ruby-core:94639] [Ruby master Feature#11460] Unhelpful error message when naming a module with the same name as an existing class Issue #11460 has been updated by matz (Yukihiro Matsumoto). Accepted. Matz. ---------------------------------------- Feature #11460: Unhelpful error message when naming a module with the same name as an existing class https://bugs.ruby-lang.org/issues/11460#change-81236 * Author: iMIchael (Michael Martinez) * Status: Feedback * Priority: Normal * Assignee: * Target version: ---------------------------------------- # Summary The error message when naming a module with the same name as an existing class causes more trouble then it helps. # Steps to Reproduce ~~~ class X;end module X;end => TypeError: X is not a module ~~~ # Expected Results Ruby has this very helpful and explicit error when reassigning a value to an existing constant. ~~~ A = 1 A = 2 warning: already initialized constant A warning: previous definition of A was here ~~~ which makes me expect Ruby to keep track of names of global constants and prevent me from colliding names with helpful warnings. This warning however raises a "Type error" which is not very intuitive. When users think of type errors they think of things like "foo" * "foo" => TypeError: no implicit conversion of String into Integer. # Actual Results Confusion about what the actual error is, especially for people learning Ruby. ---Files-------------------------------- mod-reopen-error-message.patch (2.82 KB) 0001-Show-the-previous-definition-location.patch (4.89 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: