<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/parse.y, branch v4.0.3</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>merge revision(s) 55694ad7efc3f8dc6d5c7aefa60ded4c303ed6cf: [Backport #21945]</title>
<updated>2026-03-16T18:55:53+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2026-03-16T18:55:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1d3581e18a689f0d392686283e340058ac468ffd'/>
<id>1d3581e18a689f0d392686283e340058ac468ffd</id>
<content type='text'>
	[Bug #21945] Correctly handle `and?` and similar
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #21945] Correctly handle `and?` and similar
</pre>
</div>
</content>
</entry>
<entry>
<title>Terminate `args_tail_basic` rule with a semicolon</title>
<updated>2025-12-19T05:39:12+00:00</updated>
<author>
<name>yui-knk</name>
<email>spiketeika@gmail.com</email>
</author>
<published>2025-12-19T02:46:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f81c62be3df7b29c4c3b6adaa16599b38d0c0c46'/>
<id>f81c62be3df7b29c4c3b6adaa16599b38d0c0c46</id>
<content type='text'>
Semicolon is optional however it clarifies the end of the rule.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Semicolon is optional however it clarifies the end of the rule.
</pre>
</div>
</content>
</entry>
<entry>
<title>Adjust indents [ci skip]</title>
<updated>2025-12-14T07:11:02+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-12-14T07:11:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=711d14992e89aa922f10f62431dda6420a038979'/>
<id>711d14992e89aa922f10f62431dda6420a038979</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Binding#implicit_parameters, etc. support the implicit "it" parameter</title>
<updated>2025-12-12T14:24:50+00:00</updated>
<author>
<name>Yusuke Endoh</name>
<email>mame@ruby-lang.org</email>
</author>
<published>2025-12-12T07:43:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=129d74c96b0b8f1b93704b34e66d2c18f4835e1b'/>
<id>129d74c96b0b8f1b93704b34e66d2c18f4835e1b</id>
<content type='text'>
[Bug #21049]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Bug #21049]
</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #21712] Allow `.()` call for command with block</title>
<updated>2025-12-11T09:35:39+00:00</updated>
<author>
<name>yui-knk</name>
<email>spiketeika@gmail.com</email>
</author>
<published>2025-12-02T02:03:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c5b51bdd8c69ae038daf80cb227df854ca0110f1'/>
<id>c5b51bdd8c69ae038daf80cb227df854ca0110f1</id>
<content type='text'>
This commit allows codes like `a b do end.()` and `a b do end&amp;.()`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit allows codes like `a b do end.()` and `a b do end&amp;.()`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove needless `ruby2_keywords` field from `struct rb_args_info`</title>
<updated>2025-12-09T01:09:00+00:00</updated>
<author>
<name>yui-knk</name>
<email>spiketeika@gmail.com</email>
</author>
<published>2025-12-09T00:05:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=056997cbcdd38b062518fe54e311c964f8bfd98f'/>
<id>056997cbcdd38b062518fe54e311c964f8bfd98f</id>
<content type='text'>
`ruby2_keywords` is set only to be `0` in parse.y.
However `args-&gt;ruby2_keywords` is initialized with `0` by `MEMZERO`
in `rb_node_args_new` function and `body-&gt;param.flags.ruby2_keywords`
is initialized with `0` by `ZALLOC` in `rb_iseq_constant_body_alloc` function,
so `args-&gt;ruby2_keywords` does nothing for `body-&gt;param.flags.ruby2_keywords`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`ruby2_keywords` is set only to be `0` in parse.y.
However `args-&gt;ruby2_keywords` is initialized with `0` by `MEMZERO`
in `rb_node_args_new` function and `body-&gt;param.flags.ruby2_keywords`
is initialized with `0` by `ZALLOC` in `rb_iseq_constant_body_alloc` function,
so `args-&gt;ruby2_keywords` does nothing for `body-&gt;param.flags.ruby2_keywords`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove `FORWARD_ARGS_WITH_RUBY2_KEYWORDS` check</title>
<updated>2025-12-09T01:09:00+00:00</updated>
<author>
<name>yui-knk</name>
<email>spiketeika@gmail.com</email>
</author>
<published>2025-12-06T07:02:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=576acb950232a8d979b94117050f577505d8a167'/>
<id>576acb950232a8d979b94117050f577505d8a167</id>
<content type='text'>
Because `FORWARD_ARGS_WITH_RUBY2_KEYWORDS` definition was removed
by 4f77d8d3289ece0e3537d9273a5c745120bff59a.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Because `FORWARD_ARGS_WITH_RUBY2_KEYWORDS` definition was removed
by 4f77d8d3289ece0e3537d9273a5c745120bff59a.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove needless parse.y `new_nil` macro</title>
<updated>2025-12-04T00:39:54+00:00</updated>
<author>
<name>yui-knk</name>
<email>spiketeika@gmail.com</email>
</author>
<published>2025-12-03T06:52:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e96bbd718e4aef81c749080016a44364a2b8e8c9'/>
<id>e96bbd718e4aef81c749080016a44364a2b8e8c9</id>
<content type='text'>
In the past parse.y and ripper had different `new_nil` definition
so that `new_nil` returns `nil` for ripper.

```c
// parse.y
#define new_nil(loc) NEW_NIL(loc)

// ripper
#define new_nil(loc) Qnil
```

However Rearchitect Ripper (89cfc1520717257073012ec07105c551e4b8af7c)
removed `new_nil` definition for ripper then this commit removes
needless parse.y macro and uses `NEW_NIL` directly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the past parse.y and ripper had different `new_nil` definition
so that `new_nil` returns `nil` for ripper.

```c
// parse.y
#define new_nil(loc) NEW_NIL(loc)

// ripper
#define new_nil(loc) Qnil
```

However Rearchitect Ripper (89cfc1520717257073012ec07105c551e4b8af7c)
removed `new_nil` definition for ripper then this commit removes
needless parse.y macro and uses `NEW_NIL` directly.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove needless parse.y `value_expr` macro</title>
<updated>2025-12-04T00:39:54+00:00</updated>
<author>
<name>yui-knk</name>
<email>spiketeika@gmail.com</email>
</author>
<published>2025-12-03T02:27:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b79ef73a3bb911c8d5ac9016092eab08b146fb3a'/>
<id>b79ef73a3bb911c8d5ac9016092eab08b146fb3a</id>
<content type='text'>
In the past parse.y and ripper had different `value_expr` definition
so that `value_expr` does nothing for ripper.

```c
// parse.y
#define value_expr(node) value_expr_gen(p, (node))

// ripper
#define value_expr(node) ((void)(node))
```

However Rearchitect Ripper (89cfc1520717257073012ec07105c551e4b8af7c)
removed `value_expr` definition for ripper then this commit removes
needless parse.y macro and uses `value_expr_gen` directly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the past parse.y and ripper had different `value_expr` definition
so that `value_expr` does nothing for ripper.

```c
// parse.y
#define value_expr(node) value_expr_gen(p, (node))

// ripper
#define value_expr(node) ((void)(node))
```

However Rearchitect Ripper (89cfc1520717257073012ec07105c551e4b8af7c)
removed `value_expr` definition for ripper then this commit removes
needless parse.y macro and uses `value_expr_gen` directly.
</pre>
</div>
</content>
</entry>
<entry>
<title>Check and raise semantics errors on nested variables captures in patterns</title>
<updated>2025-12-03T01:18:22+00:00</updated>
<author>
<name>yui-knk</name>
<email>spiketeika@gmail.com</email>
</author>
<published>2025-11-26T05:11:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=dfdc5d40ec25e42ff63982958c43d425bee909fb'/>
<id>dfdc5d40ec25e42ff63982958c43d425bee909fb</id>
<content type='text'>
This commit makes these codes to be invalid.

```ruby
case 0
in [a] | 1
end

case 0
in { a: b } | 1
end

case 0
in [{ a: [{ b: [{ c: }] }] }] | 1
end
```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit makes these codes to be invalid.

```ruby
case 0
in [a] | 1
end

case 0
in { a: b } | 1
end

case 0
in [{ a: [{ b: [{ c: }] }] }] | 1
end
```
</pre>
</div>
</content>
</entry>
</feed>
