Difference between return and "not return"

Why is this syntactically valid

def x
return 1, 2
end

but this isn’t

def y
1, 2
end

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

def z
[1,2]
end

Is however valid