
Issue #20441 has been updated by zverok (Victor Shepelev). `super` just passes the arguments with EXACTLY the same signature as the method it is in has. Whether or not `super` is in the method, calling method defined as `foo(*)` with hash-like arguments without braced will implicitly convert them to the Hash as the last positional argument, and it is unlikely to change. What exactly has `super` to do with it?.. ---------------------------------------- Misc #20441: Should passing keyword args to method_name(*) be an error? https://bugs.ruby-lang.org/issues/20441#change-108040 * Author: ozydingo (Andrew Schwartz) * Status: Open ---------------------------------------- In the following method: ```rb def foo(*) super end ``` it is apparently the intended ruby 3 behavior to pass keyword args as a positional Hash to `super`. I believe this is confusing and can lead to hidden and hard-to-discover bugs (e.g. #20440). Since `*` is meant to only represent positional args, should it be an ArgumentError to pass keyword args at all to this method? Similar to how it is an error to pass positions args to `bar(**)`. -- https://bugs.ruby-lang.org/