[ruby-core:94948] [Ruby master Bug#16169] rescue in a method argument

From: shevegen@...
Date: 2019-09-17 18:49:33 UTC
List: ruby-core #94948
Issue #16169 has been updated by shevegen (Robert A. Heiler).


mame explained that the behaviour is correct (in the context).

Perhaps the documentation could explain that, because I agree
with zverok at the least initially to assume that there should
not be a difference in behaviour between the two. At the least
I think that it would be better to have this explained in the
documentation as-is, similar to how mame explained that.

----------------------------------------
Bug #16169: rescue in a method argument
https://bugs.ruby-lang.org/issues/16169#change-81564

* Author: zverok (Victor Shepelev)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
At 2.4, #12686 was introduced, allowing code like this:

```ruby
foo (Integer(ENV['FOO']) rescue nil)
```

Though, I noticed that in current Ruby correctness of this syntax depends on space after the method name:
```ruby
foo (Integer(ENV['FOO']) rescue nil) # => OK

foo(Integer(ENV['FOO']) rescue nil)
# SyntaxError ((irb):4: syntax error, unexpected modifier_rescue, expecting ')')
# foo(Integer(ENV['FOO']) rescue nil)
#                         ^~~~~~
```
I wonder, whether it is just a bug or a parser limitation (I can't guess which ambiguity the space-less version produces, but I could be missing something)?..



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next