summaryrefslogtreecommitdiff
path: root/struct.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-09-09 18:58:07 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-09-09 18:58:07 +0900
commitcfe10e482e0657195cadf01f0be72e11b7fb62b4 (patch)
treecfbfdfabada7821fe09ce533f39c828ab8a26c88 /struct.c
parentaff6534e32b5e46036808ed0579d31a8dbad8190 (diff)
[DOC] Update `Struct#new` behavior with `keyword_init: true`
Diffstat (limited to 'struct.c')
-rw-r--r--struct.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/struct.c b/struct.c
index 7085042b43..1e7294eb5e 100644
--- a/struct.c
+++ b/struct.c
@@ -471,8 +471,8 @@ rb_struct_define_under(VALUE outer, const char *name, ...)
*
* - May be anonymous, or may have the name given by +class_name+.
* - May have members as given by +member_names+.
- * - May have initialization via ordinary arguments (the default)
- * or via keyword arguments (if <tt>keyword_init: true</tt> is given).
+ * - May have initialization via ordinary arguments (unless
+ * <tt>keyword_init: true</tt> is given), or via keyword arguments
*
* The new subclass has its own method <tt>::new</tt>; thus:
*
@@ -557,7 +557,7 @@ rb_struct_define_under(VALUE outer, const char *name, ...)
* By default, the arguments for initializing an instance of the new subclass
* are ordinary arguments (not keyword arguments).
* With optional keyword argument <tt>keyword_init: true</tt>,
- * the new subclass is initialized with keyword arguments:
+ * the new subclass must be initialized with keyword arguments:
*
* # Without keyword_init: true.
* Foo = Struct.new('Foo', :foo, :bar)
@@ -567,6 +567,7 @@ rb_struct_define_under(VALUE outer, const char *name, ...)
* Bar = Struct.new(:foo, :bar, keyword_init: true)
* Bar # => # => Bar(keyword_init: true)
* Bar.new(bar: 1, foo: 0) # => #<struct Bar foo=0, bar=1>
+ * Bar.new(0, 1) # Raises ArgumentError: wrong number of arguments
*
*/