I did not know that either.
I guess the problem was that bogdan was using variables with
a leading '_'.
With this:
def x(a,a,b)
  puts 'HI'
end
I get in IRB:
SyntaxError ((irb):1: duplicated argument name
With that, however had:
def x(_a,_a,_b)
  puts 'hi'
end
x(1,2,3)
# => hi
I get no error and the method call works.
I have no idea if this is a bug or a feature but to me,
just from looking at the above, I would have assumed that
_a is equal to _a just as a was (considered) equal to
a above, in "def x(a,a,b)".
Perhaps it is because leading _ underscores are always
assumed to be special. But ideally this should be documented
somewhere nonetheless.