ruby-changes:25338
From: shugo <ko1@a...>
Date: Tue, 30 Oct 2012 23:59:01 +0900 (JST)
Subject: [ruby-changes:25338] shugo:r37390 (trunk): * eval.c (rb_mod_refine): fix the error message when no block is
shugo 2012-10-30 23:58:47 +0900 (Tue, 30 Oct 2012) New Revision: 37390 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=37390 Log: * eval.c (rb_mod_refine): fix the error message when no block is given. [ruby-dev:46319] [Bug #7244] * test/ruby/test_refinement.rb: related test. Modified files: trunk/ChangeLog trunk/eval.c trunk/test/ruby/test_refinement.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 37389) +++ ChangeLog (revision 37390) @@ -1,3 +1,10 @@ +Tue Oct 30 23:59:32 2012 Shugo Maeda <shugo@r...> + + * eval.c (rb_mod_refine): fix the error message when no block is + given. [ruby-dev:46319] [Bug #7244] + + * test/ruby/test_refinement.rb: related test. + Tue Oct 30 19:27:48 2012 NAKAMURA Usaku <usa@r...> * process.c (redirect_dup2): set standard handles when new fd is stdio, Index: eval.c =================================================================== --- eval.c (revision 37389) +++ eval.c (revision 37390) @@ -1203,6 +1203,9 @@ ID id_refinements, id_refined_class; VALUE refinements; + if (!rb_block_given_p()) { + rb_raise(rb_eArgError, "no block given"); + } check_class_or_module(klass); CONST_ID(id_refinements, "__refinements__"); refinements = rb_attr_get(module, id_refinements); Index: test/ruby/test_refinement.rb =================================================================== --- test/ruby/test_refinement.rb (revision 37389) +++ test/ruby/test_refinement.rb (revision 37390) @@ -520,4 +520,14 @@ } assert_equal({c2 => c2_ext}, m2.refinements) end + + def test_refine_without_block + c1 = Class.new + e = assert_raise(ArgumentError) { + Module.new do + refine c1 + end + } + assert_equal("no block given", e.message) + end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/