# \[Bug #3378\] Range#each should not yield its \`begin' itself

**URL:** <https://www.ruby-forum.com/t/bug-3378-range-each-should-not-yield-its-begin-itself/189490>\
**Category:** Development\
**Created:** [June 1, 2010, 6:46pm UTC](https://www.ruby-forum.com/t/bug-3378-range-each-should-not-yield-its-begin-itself/189490 "2010-06-01T18:46:29Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yusuke\_E](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/f08c70/32.png) [@Yusuke\_E](https://www.ruby-forum.com/u/Yusuke_E)\
**Post date:** [June 1, 2010, 6:46pm UTC](https://www.ruby-forum.com/t/bug-3378-range-each-should-not-yield-its-begin-itself/189490/1 "2010-06-01T18:46:29Z")

</div>

Bug #3378: Range#each should not yield its `begin’ itself  
[http://redmine.ruby-lang.org/issues/show/3378](http://redmine.ruby-lang.org/issues/show/3378)

e$B5/I\<\<Te(B: Yusuke E.  
e$B%9%F!\<%?%9e(B: Open, e$BM%@hEYe(B: Normal  
ruby -v: ruby 1.8.8dev (2010-05-26) [i686-linux]

e$B1sF#$G$9!#e(B

1.8 e$B$G!"0J2\<$N%3!\<%I$,e(B “A” e$B$7$+=PNO$7$F$/$l$^$;$s!#e(B

$ ruby18 -ve ‘(“A”…“H”).map {|x| p x; x \<\< 1 }’  
ruby 1.8.8dev (2010-05-26) [i686-linux]  
“A”

“B” “C” … “H” e$B$^$G=PNO$7$F$[$7$$$G$9!#e(B1.9  
e$B$G$O$7$F$/$l$^$9!#e(B

–  
Yusuke E. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![Yusuke\_E](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/f08c70/32.png) [@Yusuke\_E](https://www.ruby-forum.com/u/Yusuke_E)\
**Post date:** [June 2, 2010, 1:05am UTC](https://www.ruby-forum.com/t/bug-3378-range-each-should-not-yield-its-begin-itself/189490/2 "2010-06-02T01:05:49Z")

</div>

e$B%A%1%C%He(B #3378 e$B$,99?7$5$l$^$7$?!#e(B (by Nobuyoshi N.)

e$B%+%F%4%je(B coree$B$K%;%C%He(B  
e$B%9%F!\<%?%9e(B Opene$B$+$ie(BAssignede$B$KJQ99e(B  
e$BC4Ev\<Te(B Akinori MUSHAe$B$K%;%C%He(B

## r25632

[http://redmine.ruby-lang.org/issues/show/3378](http://redmine.ruby-lang.org/issues/show/3378)

---

<div class="post-metadata">

**Author:** ![Yusuke\_E](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/f08c70/32.png) [@Yusuke\_E](https://www.ruby-forum.com/u/Yusuke_E)\
**Post date:** [June 2, 2010, 5:46am UTC](https://www.ruby-forum.com/t/bug-3378-range-each-should-not-yield-its-begin-itself/189490/3 "2010-06-02T05:46:42Z")

</div>

e$B%A%1%C%He(B #3378 e$B$,99?7$5$l$^$7$?!#e(B (by Akinori MUSHA)

Rangee$B$N:8C\<$,e(BStringe$B$N\>l9g$re(Bspecial-casee$B$7$Fe(B(b…e).eache$B"\*e(Bb.upto(e)e$B$KJQ49$9$k$s$G$9$,!"e(B  
1.9e$B$G$Oe(BString#uptoe$B$,:G=i$N0z?t$re(Bdupe$B$9$k$h$&$K$J$C$?$N$G$3$&$J$C$F$$$^$9!#e(B  
e$B$D$^$je(BString#uptoe$B$N;EMM$,JQ$o$C$?$H$$$&$3$H$G$9!#e(B

Rangee$B$Oe(BFixnum, Symbol,  
Stringe$B0J30$N\>l9g$O:8C\<$re(Bdupe$B$7$?$j$O$7$J$$$N$G!"e(B  
e$B$`$7$m!"e(B1.9e$B$N5sF0$K$D$$$F$b$&0lEY9M$($?J}$,$h$5$=$&$G$9!#e(B

e$B!&e(BString#uptoe$B$,e(Bself.dupe$B$rJV$9$h$&$K$J$C$?$N$OBEEv$+!)e(B  
e$B!&e(BRange#eache$B$O$9$Y$F:8C\<$re(Bdupe$B$7$?$b$N$rEO$9$Y$-$+!)e(B

## e$B$I$C$A$K$7$F$b!":#$5$ie(B1.8.8e$B$G;EMM$rJQ$($?$$5$$,$7$J$$$3$H$OIU$12C$($F$\*$-$^$9!D!#e(B

[http://redmine.ruby-lang.org/issues/show/3378](http://redmine.ruby-lang.org/issues/show/3378)

---

<div class="post-metadata">

**Author:** ![Yusuke\_E](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/f08c70/32.png) [@Yusuke\_E](https://www.ruby-forum.com/u/Yusuke_E)\
**Post date:** [June 2, 2010, 6:00am UTC](https://www.ruby-forum.com/t/bug-3378-range-each-should-not-yield-its-begin-itself/189490/4 "2010-06-02T06:00:10Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:41503] [Bug #3378] Range#each should not yield  
its `begin’ itself”  
on Wed, 2 Jun 2010 01:46:09 +0900, Yusuke E.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|1.8 e$B$G!"0J2\<$N%3!\<%I$,e(B “A” e$B$7$+=PNO$7$F$/$l$^$;$s!#e(B  
|  
| $ ruby18 -ve ‘(“A”…“H”).map {|x| p x; x \<\< 1 }’  
| ruby 1.8.8dev (2010-05-26) [i686-linux]  
| “A”  
|  
|“B” “C” … “H” e$B$^$G=PNO$7$F$[$7$$$G$9!#e(B1.9 e$B$G$O$7$F$/$l$^$9!#e(B

mape$B$G30$+$iEO$5$l$?$b$N$r=q$-49$($?\>l9g$NF0:n$OITDj$G$9!#$3e(B  
e$B$l$rB7$($kM=Dj$O$"$j$^$;$s!#e(B1.9e$B$N5sF0$b:#8eJQ99$5$l$k$+$b$7e(B  
e$B$l$^$;$s!#e(B

---

<div class="post-metadata">

**Author:** ![Yusuke\_E](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/f08c70/32.png) [@Yusuke\_E](https://www.ruby-forum.com/u/Yusuke_E)\
**Post date:** [August 27, 2010, 6:42am UTC](https://www.ruby-forum.com/t/bug-3378-range-each-should-not-yield-its-begin-itself/189490/5 "2010-08-27T06:42:02Z")

</div>

e$B%A%1%C%He(B #3378 e$B$,99?7$5$l$^$7$?!#e(B (by Akinori MUSHA)

e$B%+%F%4%je(B libe$B$K%;%C%He(B  
e$B%9%F!\<%?%9e(B Assignede$B$+$ie(BFeedbacke$B$KJQ99e(B  
Target version 1.9.xe$B$K%;%C%He(B

e$B!&e(BString#uptoe$B$,e(Bself.dupe$B$rJV$9$h$&$K$J$C$?$N$OBEEv$+!)e(B  
e$B!&e(BRange#eache$B$O$9$Y$F:8C\<$re(Bdupe$B$7$?$b$N$rEO$9$Y$-$+!)e(B

## e$B$K$D$$$F!“$b$72?$+$”$l$P%U%#!\<%I%P%C%/$/$@$5$$!#e(B

[http://redmine.ruby-lang.org/issues/show/3378](http://redmine.ruby-lang.org/issues/show/3378)

---

<div class="post-metadata">

**Author:** ![Yusuke\_E](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/f08c70/32.png) [@Yusuke\_E](https://www.ruby-forum.com/u/Yusuke_E)\
**Post date:** [June 2, 2010, 6:59am UTC](https://www.ruby-forum.com/t/bug-3378-range-each-should-not-yield-its-begin-itself/189490/6 "2010-06-02T06:59:52Z")

</div>

e$B%A%1%C%He(B #3378 e$B$,99?7$5$l$^$7$?!#e(B (by Akinori MUSHA)

e$B$“!”%?%$%H%k$NJ}$rDs0F$@$H;W$C$F$7$^$C$?$N$G$9$,!"JQ99$7$?$H$-$K$=$3$G;\_$^$C$F$7$^$&$N$rD\>$;$J$$$+!“e(B  
e$B$K$D$$$F$O5DO@$NM\>CO$,$”$j$^$9$M!#e(B

## e$B;\_$^$k$3$H$rM=4|$7$?%W%m%0%i%`$H$$$&$N$O$J$$$H9M$($F$b$$$$$H;W$&$N$G!“$b$7A05-$NE@$K$D$$$Fe(B1.9e$B$NJ}$Ge(B e$B@09g@-$”$k7kO@$,=P$?$i!“e(B1.8e$B$b4s$jE:$&$3$H$O2DG=$+$bCN$l$^$;$s!#!J$”$^$j5$\>h$j$O$7$^$;$s$,!Ke(B

[http://redmine.ruby-lang.org/issues/show/3378](http://redmine.ruby-lang.org/issues/show/3378)
