[前][次][番号順一覧][スレッド一覧]

ruby-changes:22949

From: nobu <ko1@a...>
Date: Tue, 13 Mar 2012 15:17:19 +0900 (JST)
Subject: [ruby-changes:22949] nobu:r34998 (trunk): * parse.y (block_param, f_args): add rules for the case arguments

nobu	2012-03-13 15:17:08 +0900 (Tue, 13 Mar 2012)

  New Revision: 34998

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34998

  Log:
    * parse.y (block_param, f_args): add rules for the case arguments
      begin with kwrest.  [ruby-core:42455][Bug #5989]

  Modified files:
    trunk/ChangeLog
    trunk/parse.y
    trunk/test/ruby/test_syntax.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 34997)
+++ ChangeLog	(revision 34998)
@@ -1,3 +1,8 @@
+Tue Mar 13 15:17:03 2012  Nobuyoshi Nakada  <nobu@r...>
+
+	* parse.y (block_param, f_args): add rules for the case arguments
+	  begin with kwrest.  [ruby-core:42455][Bug #5989]
+
 Tue Mar 13 12:37:53 2012  NARUSE, Yui  <naruse@r...>
 
 	* io.c (io_encoding_set): always warn if external encoding and internal
Index: parse.y
===================================================================
--- parse.y	(revision 34997)
+++ parse.y	(revision 34998)
@@ -3672,6 +3672,14 @@
 			$$ = params_new(Qnil, Qnil, Qnil, Qnil, $1, Qnil, escape_Qundef($2));
 		    %*/
 		    }
+		| tPOW tIDENTIFIER opt_f_block_arg
+		    {
+		    /*%%%*/
+			$$ = new_args(0, 0, 0, 0, 0, $2, $3);
+		    /*%
+			$$ = params_new(Qnil, Qnil, Qnil, Qnil, Qnil, $2, escape_Qundef($3));
+		    %*/
+		    }
 		| f_block_arg
 		    {
 		    /*%%%*/
@@ -4994,6 +5002,14 @@
 			$$ = params_new(Qnil, Qnil, Qnil, Qnil, $1, Qnil, escape_Qundef($2));
 		    %*/
 		    }
+		| tPOW tIDENTIFIER opt_f_block_arg
+		    {
+		    /*%%%*/
+			$$ = new_args(0, 0, 0, 0, 0, $2, $3);
+		    /*%
+			$$ = params_new(Qnil, Qnil, Qnil, Qnil, Qnil, $2, escape_Qundef($3));
+		    %*/
+		    }
 		| f_block_arg
 		    {
 		    /*%%%*/
Index: test/ruby/test_syntax.rb
===================================================================
--- test/ruby/test_syntax.rb	(revision 34997)
+++ test/ruby/test_syntax.rb	(revision 34998)
@@ -77,6 +77,12 @@
     end
   end
 
+  def test_keyword_rest
+    bug5989 = '[ruby-core:42455]'
+    assert_valid_syntax("def kwrest_test(**a) end", __FILE__)
+    assert_valid_syntax("def kwrest_test(**a, &b) end", __FILE__)
+  end
+
   private
 
   def make_tmpsrc(f, src)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]