Issue #6445 has been updated by mame (Yusuke Endoh).

Status changed from Open to Assigned
Assignee set to matz (Yukihiro Matsumoto)

Hello,

I created a patch that add a syntactic sugar from (arg..) to (arg..-1).

  ary = [1, 2, 3, 4]
  p ary[2..]  #=> [3, 4]

Matz, what do you think?


diff --git a/parse.y b/parse.y
index 9f9093b..d272492 100644
--- a/parse.y
+++ b/parse.y
@@ -2168,6 +2168,18 @@ arg		: lhs '=' arg
 			$$ = dispatch2(dot3, $1, $3);
 		    %*/
 		    }
+		| arg tDOT2
+		    {
+		    /*%%%*/
+			value_expr($1);
+			$$ = NEW_DOT2($1, NEW_LIT(INT2FIX(-1)));
+			if (nd_type($1) == NODE_LIT && FIXNUM_P($1->nd_lit)) {
+			    deferred_nodes = list_append(deferred_nodes, $$);
+			}
+		    /*%
+			$$ = dispatch2(dot2, $1, INT2FIX(-1));
+		    %*/
+		    }
 		| arg '+' arg
 		    {
 		    /*%%%*/

-- 
Yusuke Endoh <mame / tsg.ne.jp>
----------------------------------------
Feature #6445: request for default length/position on string index
https://bugs.ruby-lang.org/issues/6445#change-26743

Author: botp (bot pena)
Status: Assigned
Priority: Normal
Assignee: matz (Yukihiro Matsumoto)
Category: 
Target version: 2.0.0


would be nice if ruby has default for "rest or up to end of string"

eg

"hello"[2,] =>	should default to "hello"[2..-1]
or 
"hello"[2..] => should default to "hello"[2..-1]



-- 
http://bugs.ruby-lang.org/