Project

General

Profile

Actions

Bug #11669

closed

inconsitent behavior of refining frozen class

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

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

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>'
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0