Project

General

Profile

Actions

Bug #21330

closed

Namespace: Class and Module frozen status is not namespaced

Bug #21330: Namespace: Class and Module frozen status is not namespaced

Added by byroot (Jean Boussier) 6 months ago. Updated 5 months ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:122042]

Description

File.write("/tmp/test.rb", <<~'RUBY') Hash.freeze RUBY ns = Namespace.new ns.require("/tmp/test.rb") class Hash def monkey_patch end end 

Expected behavior:

Since the monkey patch is in a different namespace, I'd expect it to not impact code that is running in another namespace.

Actual behavior:

test.rb:9:in '<class:Hash>': can't modify frozen class: Hash (FrozenError) 

The class is frozen globally, breaking code in other namespaces.

Is this by design, or does that mean the frozen status need to be moved in the classext_t as well?

cc @tagomoris (Satoshi Tagomori)

Actions

Also available in: PDF Atom