From: nobu@... Date: 2018-09-05T10:23:35+00:00 Subject: [ruby-core:88856] [Ruby trunk Feature#15076][Rejected] Struct to raise error when keyword arguments used but not enabled Issue #15076 has been updated by nobu (Nobuyoshi Nakada). Status changed from Open to Rejected ```ruby Info = Struct.new(:name, :country, keyword_init: true) c = Info.new(name: "myname", country: "Japan") p c #=> # ``` ---------------------------------------- Feature #15076: Struct to raise error when keyword arguments used but not enabled https://bugs.ruby-lang.org/issues/15076#change-73895 * Author: macdevign (Macdevign mac) * Status: Rejected * Priority: Normal * Assignee: * Target version: ---------------------------------------- When Struct is used to instantiate object with keyword arguments disabled and yet if instantiated using keyword arguments, the instance fields will be set incorrectly. Will it be clearer if a error is raised instead rather than assigning data incorrectly ? This is helpful and save time in nailing such issue in a large code base when there is mixture of Struct define with and without keyword arguments. For example, ~~~ ruby Info = Struct.new(:name, :country) # without keyword argument enabled c = Info.new(name: "myname", country: "Japan") # Instantiate with keywords ~~~ The c.name contains hash, and c.country is nil -- https://bugs.ruby-lang.org/ Unsubscribe: