From: usa@... Date: 2016-04-22T07:11:11+00:00 Subject: [ruby-dev:49586] [Ruby trunk Bug#8851] alias/undef で % リテラルによるシンボルが使えない Issue #8851 has been updated by Usaku NAKAMURA. Backport changed from 2.1: REQUIRED, 2.2: REQUIRED, 2.3: DONE to 2.1: REQUIRED, 2.2: DONE, 2.3: DONE ruby_2_2 r54686 merged revision(s) 54131. ---------------------------------------- Bug #8851: alias/undef で % リテラルによるシンボルが使えない https://bugs.ruby-lang.org/issues/8851#change-58219 * Author: okkez _ * Status: Closed * Priority: Normal * Assignee: * ruby -v: ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux] * Backport: 2.1: REQUIRED, 2.2: DONE, 2.3: DONE ---------------------------------------- るりまプロジェクトの#7102で報告されていたのですが、調べてみたら2.0.0でも同様の状況だったので報告します。 以下のスクリプトで、コメントアウトしている部分を有効にすると syntax error になります。 一貫性の観点から %s によるシンボルリテラルも使えた方がいいように思うのですが、いかがでしょうか? ~~~ $ ruby -v a.rb ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux] a.rb:21: syntax error, unexpected '(', expecting keyword_end alias %s(method5) method4 ^ ~~~ ~~~ruby class A def method1 end def method2 end def method3 end def method4 end end p A.instance_methods(false) class A undef method1 undef :method2 undef :"method#{3}" # undef %s(method4) # alias %s(method5) method4 end p A.instance_methods(false) ~~~ -- https://bugs.ruby-lang.org/