Project

General

Profile

Actions

Bug #16856

closed

Structs accepting keyword arguments issue a warning with Ruby 2.7

Added by iGEL (Johannes Barre) almost 4 years ago. Updated almost 4 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]
[ruby-core:98327]

Description

This code is issuing a warning with Ruby 2.7, but should not:

class NotFine < Struct.new(:x)
  def initialize(x, arg:)
  end
end

class Fine
  def initialize(x, arg:)
  end
end

NotFine.new(1, arg: 1) # This is causing the warning
Fine.new(1, arg: 1)    # This is not
$ ruby test.rb
test.rb:11: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
test.rb:2: warning: The called method `initialize' is defined here

Updated by jeremyevans0 (Jeremy Evans) almost 4 years ago

  • Status changed from Open to Closed

I believe this was fixed in #16801, which is already marked as required for backport to 2.7. With the master branch, there is no warning for the code.

Actions

Also available in: Atom PDF

Like0
Like0