[#27003] [Bug #2422] splat operator fails on array of 1 element — Raul Parolari <redmine@...>

Bug #2422: splat operator fails on array of 1 element

12 messages 2009/12/02

[#27025] [Backport #2431] StringIO#{gets,readlines} with "" (paragraph mode) trims last "\n" — Hiroshi NAKAMURA <redmine@...>

Backport #2431: StringIO#{gets,readlines} with "" (paragraph mode) trims last "\n"

8 messages 2009/12/04

[#27086] [Feature #2454] OpenSSL has no maintainer — Yui NARUSE <redmine@...>

Feature #2454: OpenSSL has no maintainer

16 messages 2009/12/07

[#27120] #to_enum ignores block? — Roger Pack <rogerdpack@...>

Is #to_enum ignoring its block expected?

11 messages 2009/12/09

[#27135] better GC? — Roger Pack <rogerdpack@...>

Could I put in a small plea for a better GC?

56 messages 2009/12/10
[#27136] Re: better GC? — Yukihiro Matsumoto <matz@...> 2009/12/11

Hi,

[#27476] Re: better GC? — Paul Brannan <pbrannan@...> 2010/01/07

On Fri, Dec 11, 2009 at 09:07:16AM +0900, Yukihiro Matsumoto wrote:

[#27477] Re: better GC? — Eero Saynatkari <ruby-ml@...> 2010/01/07

Excerpts from Paul Brannan's message of Thu Jan 07 21:53:34 +0200 2010:

[#27563] Re: better GC? — Brent Roman <brent@...> 2010/01/12

[#27199] [Backport #2488] thread usage can result in bad HANDLE — Roger Pack <redmine@...>

Backport #2488: thread usage can result in bad HANDLE

12 messages 2009/12/16

[#27286] [Bug #2515] Array#select! — Roger Pack <redmine@...>

Bug #2515: Array#select!

17 messages 2009/12/22

[#27327] [Bug #2531] Ruby 1.8.7-p248 fails to cross-compile same version — Luis Lavena <redmine@...>

Bug #2531: Ruby 1.8.7-p248 fails to cross-compile same version

9 messages 2009/12/25

[#27360] [Feature #2542] URI lib should be updated to RFC 39886 — Marc-Andre Lafortune <redmine@...>

Feature #2542: URI lib should be updated to RFC 39886

15 messages 2009/12/31

[ruby-core:27006] [Bug #2422] splat operator fails on array of 1 element

From: Dave B <redmine@...>
Date: 2009-12-02 23:19:56 UTC
List: ruby-core #27006
Issue #2422 has been updated by Dave B.


Tanaka Akira (on ruby-core) wrote:
> On Thu, Dec 3, 2009 at 2:35 AM, Raul Parolari <redmine@ruby-lang.org> wrote:
>> Bug #2422: splat operator fails on array of 1 element
>> http://redmine.ruby-lang.org/issues/show/2422
>
>> In Ruby 1.9.1:
>>
>> a, b = *[ 137, 271 ]  #  a = 137; b = 271  # (as expected)
>>
>> a    = *[ 137 ]      # a = [137 ]   #  (should be 137 !)
>
> The Ruby 1.9 behavior is simplified and more consistent.
>
> % ruby -ve '
> a = *[1,2,3]; p a
> a = *[1,2]; p a
> a = *[1]; p a
> a = *[]; p a'
> ruby 1.9.2dev (2009-09-24 trunk 25067) [i686-linux]
> [1, 2, 3]
> [1, 2]
> [1]
> []
>
> % ruby-1.8 -ve '
> a = *[1,2,3]; p a
> a = *[1,2]; p a
> a = *[1]; p a
> a = *[]; p a'
> ruby 1.8.8dev (2009-10-15 revision 25343) [i686-linux]
> [1, 2, 3]
> [1, 2]
> 1
> nil
>
> Ruby 1.9 doesn't handle zero or one element array specially.


But Raul's example reveals *inconsistency* from 1.9 for a balanced LHS / RHS ...


puts 'ruby %s (%s) [%s]' % [RUBY_VERSION, RUBY_RELEASE_DATE, RUBY_PLATFORM]

a,b,c,d = *[1,2,3,4]
p [a,b,c,d]

a,b,c = *[1,2,3]
p [a,b,c]

a,b = *[1,2]
p [a,b]


--
daz

a = *[1]
p [a]

=begin (output)

ruby 1.8.6 (2008-08-11) [i386-mswin32]
[1, 2, 3, 4]
[1, 2, 3]
[1, 2]
[1]

ruby 1.9.2 (2009-05-19) [i386-mswin32_90]
[1, 2, 3, 4]
[1, 2, 3]
[1, 2]
[[1]]

=end

a = *[1] (a = 1) results in a = [1]


----------------------------------------
http://redmine.ruby-lang.org/issues/show/2422

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

In This Thread