Issue #11669 has been reported by Yui NARUSE.

----------------------------------------
Bug #11669: inconsitent behavior of refining frozen class
https://bugs.ruby-lang.org/issues/11669

* Author: Yui NARUSE
* Status: Assigned
* Priority: Normal
* Assignee: Yukihiro Matsumoto
* ruby -v: ruby 2.3.0dev (2015-10-26 trunk 52291) [x86_64-darwin15]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
Is this expected behavior?

```ruby
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>'
```



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