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

ruby-changes:1830

From: ko1@a...
Date: 31 Aug 2007 03:49:12 +0900
Subject: [ruby-changes:1830] nobu - Ruby:r13321 (trunk): * parse.y (assignable_gen): ignore already erred names.

nobu	2007-08-31 03:49:00 +0900 (Fri, 31 Aug 2007)

  New Revision: 13321

  Modified files:
    trunk/ChangeLog
    trunk/bootstraptest/test_knownbug.rb
    trunk/bootstraptest/test_massign.rb
    trunk/parse.y
    trunk/version.h

  Log:
    * parse.y (assignable_gen): ignore already erred names.
    
    * parse.y (shadowing_lvar_gen): always make new block local variable
      when shadowing outer local variable.  [ruby-dev:31507]


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/version.h?r1=13321&r2=13320
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/parse.y?r1=13321&r2=13320
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13321&r2=13320
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/bootstraptest/test_massign.rb?r1=13321&r2=13320
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/bootstraptest/test_knownbug.rb?r1=13321&r2=13320

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 13320)
+++ ChangeLog	(revision 13321)
@@ -1,3 +1,10 @@
+Fri Aug 31 03:48:58 2007  Nobuyoshi Nakada  <nobu@r...>
+
+	* parse.y (assignable_gen): ignore already erred names.
+
+	* parse.y (shadowing_lvar_gen): always make new block local variable
+	  when shadowing outer local variable.  [ruby-dev:31507]
+
 Thu Aug 30 19:40:33 2007  NAKAMURA Usaku  <usa@r...>
 
 	* regenc.h: check RUBY_EXTERN before including config.h and defines.h
Index: bootstraptest/test_massign.rb
===================================================================
--- bootstraptest/test_massign.rb	(revision 13320)
+++ bootstraptest/test_massign.rb	(revision 13321)
@@ -13,6 +13,12 @@
   ans
 }
 
+assert_equal 'ok', %q{
+  r = :ok
+  :ng.tap {|(r)|}
+  r
+}, '[ruby-dev:31507]'
+
 =begin
 # generated by this script:
 
Index: bootstraptest/test_knownbug.rb
===================================================================
--- bootstraptest/test_knownbug.rb	(revision 13320)
+++ bootstraptest/test_knownbug.rb	(revision 13321)
@@ -3,17 +3,8 @@
 # So all tests will cause failure.
 #
 
-# massign
+# catch/throw
 assert_equal 'ok', %q{
-  def m()
-    yield :ng
-  end
-  r = :ok
-  m {|(r)|}
-  r
-}, '[ruby-dev:31507]'
-
-assert_equal 'ok', %q{
   begin
     catch {|t| throw t, :ok }
   rescue ArgumentError
Index: parse.y
===================================================================
--- parse.y	(revision 13320)
+++ parse.y	(revision 13321)
@@ -1023,7 +1023,7 @@
 		| primary_value '[' opt_call_args rbracket tOP_ASGN command_call
 		    {
 		    /*%%%*/
-			NODE *args = $3;
+			NODE *args;
 
 			value_expr($6);
 			if (!$3) $3 = NEW_ZARRAY();
@@ -6677,7 +6677,7 @@
 	    tokadd(c);
 	    c = nextc();
 	    if (parser_is_identchar()) {
-	    tokadd(c);
+		tokadd(c);
 	    }
 	    else {
 		pushback(c);
@@ -7253,6 +7253,7 @@
 static NODE*
 assignable_gen(struct parser_params *parser, ID id, NODE *val)
 {
+    if (!id) return 0;
     if (id == keyword_self) {
 	yyerror("Can't change the value of self");
     }
@@ -7321,6 +7322,7 @@
 	 }
 	 else if (dvar_defined(name) || local_id(name)) {
 	     rb_warningS("shadowing outer local variable - %s", rb_id2name(name));
+	     vtable_add(lvtbl->vars, name);
 	 }
      }
      else {
Index: version.h
===================================================================
--- version.h	(revision 13320)
+++ version.h	(revision 13321)
@@ -1,7 +1,7 @@
 #define RUBY_VERSION "1.9.0"
-#define RUBY_RELEASE_DATE "2007-08-30"
+#define RUBY_RELEASE_DATE "2007-08-31"
 #define RUBY_VERSION_CODE 190
-#define RUBY_RELEASE_CODE 20070830
+#define RUBY_RELEASE_CODE 20070831
 #define RUBY_PATCHLEVEL 0
 
 #define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
 #define RUBY_VERSION_TEENY 0
 #define RUBY_RELEASE_YEAR 2007
 #define RUBY_RELEASE_MONTH 8
-#define RUBY_RELEASE_DAY 30
+#define RUBY_RELEASE_DAY 31
 
 #ifdef RUBY_EXTERN
 RUBY_EXTERN const char ruby_version[];

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

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