[#70257] [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI — ko1@...

Issue #11420 has been reported by Koichi Sasada.

11 messages 2015/08/06

[ruby-core:70452] [Ruby trunk - Bug #11460] [Open] Unhelpful error message when naming a module with the same name as an existing class

From: michaelmartinez@...
Date: 2015-08-19 01:51:33 UTC
List: ruby-core #70452
Issue #11460 has been reported by Michael Martinez.

----------------------------------------
Bug #11460: Unhelpful error message when naming a module with the same name as an existing class
https://bugs.ruby-lang.org/issues/11460

* Author: Michael Martinez
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.2.0p0
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
# 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.



-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next