Because 'return' takes an argument, and ruby infers the []s.

In the second case, 1, 2 by itself is not a valid statement, it
doesn't guess the []s.

Just do

def y
 [1, 2]
end