ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:122501] [Ruby Bug#21402] ruby2_keywords affects methods/procs with post arguments
@ 2025-06-09 21:30 jeremyevans0 (Jeremy Evans) via ruby-core
  2025-08-21 15:47 ` [ruby-core:123032] " jeremyevans0 (Jeremy Evans) via ruby-core
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: jeremyevans0 (Jeremy Evans) via ruby-core @ 2025-06-09 21:30 UTC (permalink / raw)
  To: ruby-core; +Cc: jeremyevans0 (Jeremy Evans)

Issue #21402 has been reported by jeremyevans0 (Jeremy Evans).

----------------------------------------
Bug #21402: ruby2_keywords affects methods/procs with post arguments
https://bugs.ruby-lang.org/issues/21402

* Author: jeremyevans0 (Jeremy Evans)
* Status: Open
* Backport: 3.2: REQUIRED, 3.3: REQUIRED, 3.4: REQUIRED
----------------------------------------
I believe this is an oversight.  We forgot to consider post arguments during the development of `ruby2_keywords`.  I believe we should not allow `ruby2_keywords` on methods/procs with post arguments. Example:

```ruby
def a(*c, **kw) [c, kw] end
def b(*a, b) a(*a, b) end
ruby2_keywords(:b)

b({foo: 1}, bar: 1)
# Currently: [[{foo: 1}], {bar: 1}]
#  Expected: [[{foo: 1}, {bar: 1}], {}]
```

I think the current behavior is unexpected and undesired, because instead of flagging the last element in the splat array, it flags a post argument.

I've submitted a pull request to fix this: https://github.com/ruby/ruby/pull/13475



-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [ruby-core:123032] [Ruby Bug#21402] ruby2_keywords affects methods/procs with post arguments
  2025-06-09 21:30 [ruby-core:122501] [Ruby Bug#21402] ruby2_keywords affects methods/procs with post arguments jeremyevans0 (Jeremy Evans) via ruby-core
@ 2025-08-21 15:47 ` jeremyevans0 (Jeremy Evans) via ruby-core
  2025-08-27 21:51 ` [ruby-core:123093] " alanwu (Alan Wu) via ruby-core
  2025-09-14  4:13 ` [ruby-core:123247] " nagachika (Tomoyuki Chikanaga) via ruby-core
  2 siblings, 0 replies; 4+ messages in thread
From: jeremyevans0 (Jeremy Evans) via ruby-core @ 2025-08-21 15:47 UTC (permalink / raw)
  To: ruby-core; +Cc: jeremyevans0 (Jeremy Evans)

Issue #21402 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Open to Closed

Fixed by commit:acb29f7fa1497463ed3bdd65549ef20b61beda64

----------------------------------------
Bug #21402: ruby2_keywords affects methods/procs with post arguments
https://bugs.ruby-lang.org/issues/21402#change-114342

* Author: jeremyevans0 (Jeremy Evans)
* Status: Closed
* Backport: 3.2: REQUIRED, 3.3: REQUIRED, 3.4: REQUIRED
----------------------------------------
I believe this is an oversight.  We forgot to consider post arguments during the development of `ruby2_keywords`.  I believe we should not allow `ruby2_keywords` on methods/procs with post arguments. Example:

```ruby
def a(*c, **kw) [c, kw] end
def b(*a, b) a(*a, b) end
ruby2_keywords(:b)

b({foo: 1}, bar: 1)
# Currently: [[{foo: 1}], {bar: 1}]
#  Expected: [[{foo: 1}, {bar: 1}], {}]
```

I think the current behavior is unexpected and undesired, because instead of flagging the last element in the splat array, it flags a post argument.

I've submitted a pull request to fix this: https://github.com/ruby/ruby/pull/13475



-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [ruby-core:123093] [Ruby Bug#21402] ruby2_keywords affects methods/procs with post arguments
  2025-06-09 21:30 [ruby-core:122501] [Ruby Bug#21402] ruby2_keywords affects methods/procs with post arguments jeremyevans0 (Jeremy Evans) via ruby-core
  2025-08-21 15:47 ` [ruby-core:123032] " jeremyevans0 (Jeremy Evans) via ruby-core
@ 2025-08-27 21:51 ` alanwu (Alan Wu) via ruby-core
  2025-09-14  4:13 ` [ruby-core:123247] " nagachika (Tomoyuki Chikanaga) via ruby-core
  2 siblings, 0 replies; 4+ messages in thread
From: alanwu (Alan Wu) via ruby-core @ 2025-08-27 21:51 UTC (permalink / raw)
  To: ruby-core; +Cc: alanwu (Alan Wu)

Issue #21402 has been updated by alanwu (Alan Wu).

Backport changed from 3.2: REQUIRED, 3.3: REQUIRED, 3.4: REQUIRED to 3.2: REQUIRED, 3.3: REQUIRED, 3.4: DONE

3.4 backport done in commit:fd036dbc3f39e6bdce735edf9ca187a690fe2079

----------------------------------------
Bug #21402: ruby2_keywords affects methods/procs with post arguments
https://bugs.ruby-lang.org/issues/21402#change-114407

* Author: jeremyevans0 (Jeremy Evans)
* Status: Closed
* Backport: 3.2: REQUIRED, 3.3: REQUIRED, 3.4: DONE
----------------------------------------
I believe this is an oversight.  We forgot to consider post arguments during the development of `ruby2_keywords`.  I believe we should not allow `ruby2_keywords` on methods/procs with post arguments. Example:

```ruby
def a(*c, **kw) [c, kw] end
def b(*a, b) a(*a, b) end
ruby2_keywords(:b)

b({foo: 1}, bar: 1)
# Currently: [[{foo: 1}], {bar: 1}]
#  Expected: [[{foo: 1}, {bar: 1}], {}]
```

I think the current behavior is unexpected and undesired, because instead of flagging the last element in the splat array, it flags a post argument.

I've submitted a pull request to fix this: https://github.com/ruby/ruby/pull/13475



-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [ruby-core:123247] [Ruby Bug#21402] ruby2_keywords affects methods/procs with post arguments
  2025-06-09 21:30 [ruby-core:122501] [Ruby Bug#21402] ruby2_keywords affects methods/procs with post arguments jeremyevans0 (Jeremy Evans) via ruby-core
  2025-08-21 15:47 ` [ruby-core:123032] " jeremyevans0 (Jeremy Evans) via ruby-core
  2025-08-27 21:51 ` [ruby-core:123093] " alanwu (Alan Wu) via ruby-core
@ 2025-09-14  4:13 ` nagachika (Tomoyuki Chikanaga) via ruby-core
  2 siblings, 0 replies; 4+ messages in thread
From: nagachika (Tomoyuki Chikanaga) via ruby-core @ 2025-09-14  4:13 UTC (permalink / raw)
  To: ruby-core; +Cc: nagachika (Tomoyuki Chikanaga)

Issue #21402 has been updated by nagachika (Tomoyuki Chikanaga).

Backport changed from 3.2: REQUIRED, 3.3: REQUIRED, 3.4: DONE to 3.2: REQUIRED, 3.3: DONE, 3.4: DONE

ruby_3_3 commit:e39a0a19c03fbb37d1c9d1e050bb551dccfc11c6 merged revision(s) commit:ce849d565bf6aae8e0179fffb04eb1f665f17347, commit:acb29f7fa1497463ed3bdd65549ef20b61beda64.

----------------------------------------
Bug #21402: ruby2_keywords affects methods/procs with post arguments
https://bugs.ruby-lang.org/issues/21402#change-114580

* Author: jeremyevans0 (Jeremy Evans)
* Status: Closed
* Backport: 3.2: REQUIRED, 3.3: DONE, 3.4: DONE
----------------------------------------
I believe this is an oversight.  We forgot to consider post arguments during the development of `ruby2_keywords`.  I believe we should not allow `ruby2_keywords` on methods/procs with post arguments. Example:

```ruby
def a(*c, **kw) [c, kw] end
def b(*a, b) a(*a, b) end
ruby2_keywords(:b)

b({foo: 1}, bar: 1)
# Currently: [[{foo: 1}], {bar: 1}]
#  Expected: [[{foo: 1}, {bar: 1}], {}]
```

I think the current behavior is unexpected and undesired, because instead of flagging the last element in the splat array, it flags a post argument.

I've submitted a pull request to fix this: https://github.com/ruby/ruby/pull/13475



-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-09-14  4:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-06-09 21:30 [ruby-core:122501] [Ruby Bug#21402] ruby2_keywords affects methods/procs with post arguments jeremyevans0 (Jeremy Evans) via ruby-core
2025-08-21 15:47 ` [ruby-core:123032] " jeremyevans0 (Jeremy Evans) via ruby-core
2025-08-27 21:51 ` [ruby-core:123093] " alanwu (Alan Wu) via ruby-core
2025-09-14  4:13 ` [ruby-core:123247] " nagachika (Tomoyuki Chikanaga) via ruby-core

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).