From: "fxn (Xavier Noria)" <noreply@...>
Date: 2022-06-17T10:01:51+00:00
Subject: [ruby-core:108979] [Ruby master Bug#18832] Suspicious superclass mismatch

Issue #18832 has been updated by fxn (Xavier Noria).


It is super important to highlight that the problem is not the behavior isolated, but that this is unexpected because it does not work like this for any other cref.

----------------------------------------
Bug #18832: Suspicious superclass mismatch
https://bugs.ruby-lang.org/issues/18832#change-98084

* Author: fxn (Xavier Noria)
* Status: Open
* Priority: Normal
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN
----------------------------------------
The following code:

```ruby
module M
  class C
  end
end

include M

p Object.const_defined?(:C, false)

class C < String # (1)
end
```

prints `false`, as expected, but then raises `superclass mismatch for class C (TypeError)` at (1).

I believe this is a bug, because `Object` itself does not have a `C` constant, so (1) should just work, and the superclasse of `M::C` should be irrelevant.



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

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>