Actions
Bug #21330
closedNamespace: Class and Module frozen status is not namespaced
Bug #21330: Namespace: Class and Module frozen status is not namespaced
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?
Actions