From: "shugo (Shugo Maeda)" Date: 2013-09-30T10:48:10+09:00 Subject: [ruby-core:57469] [ruby-trunk - Bug #8966] SEGV when a refined method is undefined by undef Issue #8966 has been updated by shugo (Shugo Maeda). nobu (Nobuyoshi Nakada) wrote: > What should happen in that case? > Printing (({"foo"})), or raising a (({NameError}))? `undef foo' should raise a NameError because foo is not defined in the original class. ---------------------------------------- Bug #8966: SEGV when a refined method is undefined by undef https://bugs.ruby-lang.org/issues/8966#change-42084 Author: shugo (Shugo Maeda) Status: Assigned Priority: Normal Assignee: shugo (Shugo Maeda) Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-09-27 trunk 43073) [i686-linux] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN =begin The following code causes SEGV: module Foo refine Object do def foo puts "foo" end end end using Foo class Object undef foo end foo I guess undef is not aware of refinements. =end -- http://bugs.ruby-lang.org/