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