summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Newton <[email protected]>2024-02-14 10:32:09 -0500
committerKevin Newton <[email protected]>2024-02-16 11:56:48 -0500
commit8414c26f0d858d343686825e58afa323fe90f4a2 (patch)
tree91621e3ed15df37d115749a7959821340085f116
parentf5801e2bf404cbb0f673a6ebb040b0ba6cd01b77 (diff)
[PRISM] Make prism compiler warning experimental
-rw-r--r--ruby.c14
-rw-r--r--test/ruby/test_rubyoptions.rb2
2 files changed, 11 insertions, 5 deletions
diff --git a/ruby.c b/ruby.c
index 5dda452c89..3d8823c0f3 100644
--- a/ruby.c
+++ b/ruby.c
@@ -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