Issue #16522 has been updated by jeremyevans0 (Jeremy Evans).


This no longer applies to the master branch, as the warnings have been removed.

Fixing this in 2.7 could be challenging, as the function to deduplicate warnings is static in `vm_args.c`.  That function would have to be made non-static at least.  The function also requires access to `ec` and `iseq`, and while I think `ec` is possible to get access to, I'm not sure about `iseq`.

You can work around the issue using the `warning` gem and using `Warning.dedup`.

----------------------------------------
Bug #16522: Ruby 2.7 logs deprecation warning when Warning[:deprecated] is set to false.  
https://bugs.ruby-lang.org/issues/16522#change-84040

* Author: snehasomwanshi / gmail.com (Sneha Somwanshi)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 2.7
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Hi 

While upgrading our monolithic app to ruby 2.7, we realised that ruby 2.7 is not suppressing all deprecation warnings. 

Here is the test case:

```
~/dev/freeagent (ruby_2_7_0 *%) $ ruby -W:no-deprecated -e 'require "json"; JSON::Ext::Parser.new("hello", {})'
-e:1: warning: Using the last argument as keyword parameters is deprecated
```

The warning is originating from https://github.com/ruby/ruby/blob/647ee6f091eafcce70ffb75ddf7e121e192ab217/class.c#L2054 and setting  `Warning[:deprecated] = false` or `RUBYOPT=-W:no-deprecated -W:no-experimental` does not suppress this warning.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>