I'd like to contribute here but I'm new to this so please forgive me if this is a stupid question: we basically just need to change ruby2_keywords_hash? to return false if the argument is not an Hash instead of raising a TypeError ?
I'm a bit afraid if changing the behavior would bring confusion rather than trivial usability. It is easy to workaround the issue.
Anyway, if it is changed, we need to backport the patch to ruby_2_7. If ruby_2_7 and master are inconsistent, it is more confusing. @nagachika (Tomoyuki Chikanaga) -san, will you backport it if it is accepted?
Anyways I'd wait for the devs meeting outcome and see if we can move this forward.
My comment #7 is the meeting outcome. Some committers including matz discussed this issue, but we were not sure if the change is really needed. Even if we change it in Ruby 2.7.3 and 3.0.0, people cannot depend on the new behavior if they care users of Ruby 2.7.2. Also, while it is trivial to workaround the issue, changing the behavior may bring new confusion.
I don't think we will be able to decide this issue by Ruby 3.0.0. But changing it after Ruby 3.0.0 seems more confusing. I vote for WONTFIX if there is no strong reason.