diff options
author | Kevin Newton <[email protected]> | 2024-02-14 10:32:09 -0500 |
---|---|---|
committer | Kevin Newton <[email protected]> | 2024-02-16 11:56:48 -0500 |
commit | 8414c26f0d858d343686825e58afa323fe90f4a2 (patch) | |
tree | 91621e3ed15df37d115749a7959821340085f116 | |
parent | f5801e2bf404cbb0f673a6ebb040b0ba6cd01b77 (diff) |
[PRISM] Make prism compiler warning experimental
-rw-r--r-- | ruby.c | 14 | ||||
-rw-r--r-- | test/ruby/test_rubyoptions.rb | 2 |
2 files changed, 11 insertions, 5 deletions
@@ -1408,10 +1408,6 @@ proc_long_options(ruby_cmdline_options_t *opt, const char *s, long argc, char ** else if (is_option_with_arg("parser", Qfalse, Qtrue)) { if (strcmp("prism", s) == 0) { (*rb_ruby_prism_ptr()) = true; - rb_warn("The compiler based on the Prism parser is currently experimental and " - "compatibility with the compiler based on parse.y " - "is not yet complete. Please report any issues you " - "find on the `ruby/prism` issue tracker."); } else if (strcmp("parse.y", s) == 0) { // default behavior @@ -2089,6 +2085,16 @@ prism_script(ruby_cmdline_options_t *opt, pm_parse_result_t *result) { ruby_opt_init(opt); + if (rb_warning_category_enabled_p(RB_WARN_CATEGORY_EXPERIMENTAL)) { + rb_category_warn( + RB_WARN_CATEGORY_EXPERIMENTAL, + "The compiler based on the Prism parser is currently experimental " + "and compatibility with the compiler based on parse.y is not yet " + "complete. Please report any issues you find on the `ruby/prism` " + "issue tracker." + ); + } + memset(result, 0, sizeof(*result)); result->options.line = 1; diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb index 0406efea79..6bf94fed32 100644 --- a/test/ruby/test_rubyoptions.rb +++ b/test/ruby/test_rubyoptions.rb @@ -302,7 +302,7 @@ class TestRubyOptions < Test::Unit::TestCase assert_in_out_err(%w(--parser=notreal -e) + ["puts :hi"], "", [], /unknown parser notreal/) - assert_in_out_err(%w(--parser=prism --version), "", /\+PRISM/, warning) + assert_in_out_err(%w(--parser=prism --version), "", /\+PRISM/, []) end def test_eval |