Actions
Feature #11460
closedUnhelpful error message when naming a module with the same name as an existing class
Status:
Closed
Assignee:
-
Target version:
-
Description
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
Actions
Like1
Like0Like0Like0Like0Like0Like0Like0Like0