Project

General

Profile

Bug #11669

inconsitent behavior of refining frozen class

Added by naruse (Yui NARUSE) about 4 years ago.

Status:
Assigned
Priority:
Normal
Target version:
-
ruby -v:
ruby 2.3.0dev (2015-10-26 trunk 52291) [x86_64-darwin15]
[ruby-core:71391]

Description

Is this expected behavior?

class C
  def foo
    p 1
  end
end
module Foo
  refine C do
    def foo
      p 2
    end
  end
end
using Foo
C.new.foo #=> 2
C.freeze
module Foo
  refine C do
    def foo
      p 3
    end
    def bar #=>  can't modify frozen class (RuntimeError)
      p 3
    end
  end
end
C.new.foo
C.new.bar
ruby 2.3.0dev (2015-10-26 trunk 52291) [x86_64-darwin15]
2
test.rb:21:in `block in <module:Foo>': can't modify frozen class (RuntimeError)
    from test.rb:17:in `refine'
    from test.rb:17:in `<module:Foo>'
    from test.rb:16:in `<main>'

Also available in: Atom PDF