From: daniel@...42.com Date: 2020-02-22T02:26:26+00:00 Subject: [ruby-core:97238] [Ruby master Misc#16645] Non-warned change of behavior in 2.7 for non-symbol keys Issue #16645 has been updated by Dan0042 (Daniel DeLorme). > treating non-Symbol keys as keywords if the method accepts arbitrary keywords is expected behavior Yes, I was aware of that, it's just that I always thought of this as simply an _additional_ behavior; previously `**hash` would raise an error if it contained non-symbol keys and now it doesn't. I've tried to stay up to date on the keyword separation development, but until now it never occured to me this could cause regressions. Oh well, at this point second thoughts about compatibility are pretty much pointless. ---------------------------------------- Misc #16645: Non-warned change of behavior in 2.7 for non-symbol keys https://bugs.ruby-lang.org/issues/16645#change-84348 * Author: Dan0042 (Daniel DeLorme) * Status: Rejected * Priority: Normal ---------------------------------------- In ruby 2.7 non-symbol keys are now accepted as keywords, resulting in the following change in behavior: ```ruby def foo(*a,**h) p [a,h] end foo("a"=>42) # [[{"a"=>42}], {}] in 2.6 # [[], {"a"=>42}] in 2.7 ``` Given that the general plan for 2.7 was to be backward compatible while warning about upcoming changes, I just wanted to confirm if it was ok to change this _without a deprecation phase_? I couldn't find any reference or discussion about this in the dev meeting logs. -- https://bugs.ruby-lang.org/ Unsubscribe: