aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-12-20 23:51:17 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-12-20 23:51:17 +0900
commit484c1be8956b7bb7a0253c6d6c7a740c341487fa (patch)
tree716f1a5feee4bd490b43ecf52da09acd08010914
parent07e595fdbd75ed44473073cdf8cd758572d11709 (diff)
downloadruby-484c1be8956b7bb7a0253c6d6c7a740c341487fa.tar.gz
Added `-W:experimental` command line option
[Feature #16420]
-rw-r--r--ruby.c3
-rw-r--r--test/ruby/test_rubyoptions.rb6
2 files changed, 9 insertions, 0 deletions
diff --git a/ruby.c b/ruby.c
index f6785e4736..e0ef3e946e 100644
--- a/ruby.c
+++ b/ruby.c
@@ -1078,6 +1078,9 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt)
if (NAME_MATCH_P("deprecated", s, len)) {
bits = 1U << RB_WARN_CATEGORY_DEPRECATED;
}
+ else if (NAME_MATCH_P("experimental", s, len)) {
+ bits = 1U << RB_WARN_CATEGORY_EXPERIMENTAL;
+ }
else {
rb_warn("unknown warning category: `%s'", s);
}
diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb
index 04a7016ae9..cac420422d 100644
--- a/test/ruby/test_rubyoptions.rb
+++ b/test/ruby/test_rubyoptions.rb
@@ -77,6 +77,8 @@ class TestRubyOptions < Test::Unit::TestCase
assert_in_out_err(%w(-w -W0 -e) + ['p $-W'], "", %w(0), [])
assert_in_out_err(%w(-W:deprecated -e) + ['p Warning[:deprecated]'], "", %w(true), [])
assert_in_out_err(%w(-W:no-deprecated -e) + ['p Warning[:deprecated]'], "", %w(false), [])
+ assert_in_out_err(%w(-W:experimental -e) + ['p Warning[:experimental]'], "", %w(true), [])
+ assert_in_out_err(%w(-W:no-experimental -e) + ['p Warning[:experimental]'], "", %w(false), [])
assert_in_out_err(%w(-W:qux), "", [], /unknown warning category: `qux'/)
ensure
ENV['RUBYOPT'] = save_rubyopt
@@ -335,6 +337,10 @@ class TestRubyOptions < Test::Unit::TestCase
assert_in_out_err(%w(), "p Warning[:deprecated]", ["true"])
ENV['RUBYOPT'] = '-W:no-deprecated'
assert_in_out_err(%w(), "p Warning[:deprecated]", ["false"])
+ ENV['RUBYOPT'] = '-W:experimental'
+ assert_in_out_err(%w(), "p Warning[:experimental]", ["true"])
+ ENV['RUBYOPT'] = '-W:no-experimental'
+ assert_in_out_err(%w(), "p Warning[:experimental]", ["false"])
ENV['RUBYOPT'] = '-W:qux'
assert_in_out_err(%w(), "", [], /unknown warning category: `qux'/)
ensure