[#121215] [Ruby master Bug#21166] Fiber Scheduler is unable to be interrupted by `IO#close`. — "ioquatix (Samuel Williams) via ruby-core" <ruby-core@...>

Issue #21166 has been reported by ioquatix (Samuel Williams).

13 messages 2025/03/02

[#121222] [Ruby master Bug#21167] Visual Studio 2022 17.13.x couldn't build ruby.exe — "hsbt (Hiroshi SHIBATA) via ruby-core" <ruby-core@...>

Issue #21167 has been reported by hsbt (Hiroshi SHIBATA).

8 messages 2025/03/03

[#121234] [Ruby master Bug#21168] Prism doesn't require argument parentheses (in some cases) when a block is present but parse.y does — "Earlopain (Earlopain _) via ruby-core" <ruby-core@...>

Issue #21168 has been reported by Earlopain (Earlopain _).

8 messages 2025/03/04

[#121389] [Ruby Bug#21187] Strings concatenated with `\` getting frozen with literal hashes (PRISM only) — LocoDelAssembly via ruby-core <ruby-core@...>

Issue #21187 has been reported by LocoDelAssembly (Hern=E1n Pereira).

12 messages 2025/03/17

[#121413] [Ruby Bug#21193] Inherited callback returns `nil` for `Object.const_source_location` — "eileencodes (Eileen Uchitelle) via ruby-core" <ruby-core@...>

Issue #21193 has been reported by eileencodes (Eileen Uchitelle).

15 messages 2025/03/20

[#121451] [Ruby Bug#21201] Performance regression when defining methods inside `refine` blocks — "alpaca-tc (Hiroyuki Ishii) via ruby-core" <ruby-core@...>

Issue #21201 has been reported by alpaca-tc (Hiroyuki Ishii).

8 messages 2025/03/27

[ruby-core:121258] [Ruby master Bug#21168] Prism doesn't require argument parentheses (in some cases) when a block is present but parse.y does

From: "eileencodes (Eileen Uchitelle) via ruby-core" <ruby-core@...>
Date: 2025-03-07 19:41:04 UTC
List: ruby-core #121258
Issue #21168 has been updated by eileencodes (Eileen Uchitelle).


I took a look at this and I'm not sure any of these cases should fail - which would mean the consistently rejected cases are incorrect.

If the argument is wrapped in parenthesis it passes the syntax check (in all cases provided in this report). Prism can parse the first example without error, and if all the methods are defined it runs and produces correct results.

So I'd argue that `parse.y` is incorrect in all cases and Prism should be fixed for the last two.

Also for what it's worth, with `parse.y` the last two examples point to the passed argument as where the syntax error is occurring, whereas the first example points to the `do` keyword. If it's decided these should all error, I think the error should be consistent in which part of these examples are incorrect (ie is it the argument passes to `bar` or is it the `do` keyword that's unexpected?)

Syntax error at the `1` argument with parse.y.

```
[
  bar 1 do
  end 
]
=> ./miniruby: test.rb:2: syntax error, unexpected integer literal, expecting 'do' or '{' or '(' (SyntaxError)
  bar 1 do
      ^
```

Syntax error at the `do` keyword with parse.y:

```
foo(
  bar 1 do
  end
)
=> ./miniruby: test2.rb:2: syntax error, unexpected 'do' for block, expecting ')' (SyntaxError)
  bar 1 do
        ^~
```

----------------------------------------
Bug #21168: Prism doesn't require argument parentheses (in some cases) when a block is present but parse.y does
https://bugs.ruby-lang.org/issues/21168#change-112213

* Author: Earlopain (Earlopain _)
* Status: Open
* Assignee: prism
* ruby -v: ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [x86_64-linux]
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
It's a bit more than that but explaining it in full would be a bit much. Instead, see this:

```rb
foo(
  bar baz do
  end
)
```

```sh
$ ruby -c --parser=prism test.rb
Syntax OK
$ ruby -c --parser=parse.y test.rb
ruby: test.rb:2: syntax error, unexpected 'do' for block, expecting ')' (SyntaxError)
  bar baz do
          ^~
```

OTOH, this is consistently rejected:
```rb
[
  foo bar do
  end,
]
# And also
foo || bar baz do
end
```



-- 
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/


In This Thread