Project

General

Profile

Actions

Bug #20817

open

Ruby 3.4.0dev emits `warning: possibly useless use of + in void context` while Ruby 3.3.5 does not

Added by yahonda (Yasuo Honda) 10 days ago. Updated 7 days ago.

Status:
Open
Target version:
-
ruby -v:
ruby 3.4.0dev (2024-10-25T11:52:32Z master 9c8c140d73) +PRISM [x86_64-linux]
[ruby-core:119622]

Description

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 `<main>'

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 '<main>'
$

Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #20736: prism emits wrong warnings in syntax-error codeFeedbackkddnewton (Kevin Newton)Actions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0