From: "mame (Yusuke Endoh) via ruby-core" Date: 2024-12-12T11:06:05+00:00 Subject: [ruby-core:120211] [Ruby master Bug#20817] Ruby 3.4.0dev emits `warning: possibly useless use of + in void context` while Ruby 3.3.5 does not Issue #20817 has been updated by mame (Yusuke Endoh). Status changed from Assigned to Rejected Discussed at the dev meeting. This incompatibility that a subtle warning is printed when code is a syntax error should be considered minor and acceptable. If the frequency or volume of the warning is high, or if it is difficult to suppress the warning, or if there are other circumstances that warrant consideration, then this may be reconsidered. ---------------------------------------- Bug #20817: Ruby 3.4.0dev emits `warning: possibly useless use of + in void context` while Ruby 3.3.5 does not https://bugs.ruby-lang.org/issues/20817#change-110974 * Author: yahonda (Yasuo Honda) * Status: Rejected * Assignee: prism * ruby -v: ruby 3.4.0dev (2024-10-25T11:52:32Z master 9c8c140d73) +PRISM [x86_64-linux] * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- Ruby 3.4.0dev emits `warning: possibly useless use of + in void context` while Ruby 3.3.5 does not This issue is based on Rails Action Pack test case against Ruby 3.4.0dev. Here is the minimum script to reproduce it. ### Steps to reproduce - Create a sample foo.rb file ``` class C class_eval "def throw_syntax_error; eval %( 'abc' + pluralize 'def' ); end", "lib/file.rb", 42 end c = C.new c.throw_syntax_error ``` - Run this foo.rb using Ruby 3.4.0dev ### Expected behavior It should report SyntaxError, but it shoud not emit any warnings as Ruby 3.3.5 does not. ``` $ ruby -v ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux] $ ruby -w foo.rb lib/file.rb:42:in `eval': (eval at lib/file.rb:42):2: syntax error, unexpected string literal, expecting `do' or '{' or '(' (SyntaxError) 'abc' + pluralize 'def' ^ from lib/file.rb:42:in `throw_syntax_error' from foo.rb:7:in `
' ``` ### Actual behavior It reports It should SyntaxError and it emits the `warning: possibly useless use of + in void context` ``` $ ruby -v ruby 3.4.0dev (2024-10-25T11:52:32Z master 9c8c140d73) +PRISM [x86_64-linux] $ ruby -w foo.rb (eval at lib/file.rb:42):2: warning: possibly useless use of + in void context lib/file.rb:42:in 'Kernel#eval': (eval at lib/file.rb:42):2: syntax error found (SyntaxError) 1 | > 2 | 'abc' + pluralize 'def' | ^ unexpected string literal, expecting end-of-input 3 | from lib/file.rb:42:in 'C#throw_syntax_error' from foo.rb:7:in '
' $ ``` -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/