Hi, rubyists

In ruby 1.6 I use the following quite often to quickly convert to arrays:

a = [ *o ]

If 'o' is already an array, 'a' will be the same. If 'o' is non-nil, 'a' 
becomes an array with 'o' as a single element. Otherwise, if 'o' is nil, 
'a' becomes an empty array. Nice and clean.

However, in 1.8 if 'o' is nil, 'a' becomes an array with a single 
element nil.

In other words:
   in 1.6 [ *nil ] -> []
   in 1.8 [ *nil ] -> [ nil ]

Was this incompatibility introduced deliberately or is it a bug that 
slipped through?

It becomes a problem (or rather inconvenience) in 1.8, as I cannot 
replace [ *o ] with o.to_a as in 1.6, because ruby 1.8 gives warning 
"default `to_a' will be obsolete" for instances of user defined classes.

Thanks in advance,
Gennady.