From: eregontp@... Date: 2020-12-17T13:52:26+00:00 Subject: [ruby-core:101496] [Ruby master Bug#17398] SyntaxError in endless method Issue #17398 has been updated by Eregon (Benoit Daloze). Conceptually, according to the typical definition in computer science, both `puts("bar")` and `puts "bar"` are expressions (i.e., they return a value, and if it was some other method than `puts` it would also not always be `nil`). It might be slightly less clear for e.g. `a = 42` (it's still an expression, it still returns a value), but I think `puts "bar"` is clear that it should be the same as `puts("bar")`, except for precedence. So it's probably going to be very difficult to explain the actual condition, other than showing specific examples. ---------------------------------------- Bug #17398: SyntaxError in endless method https://bugs.ruby-lang.org/issues/17398#change-89276 * Author: zverok (Victor Shepelev) * Status: Open * Priority: Normal * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- This works: ```ruby def foo() = puts("bar") ``` This does not: ```ruby def foo() = puts "bar" # ^ syntax error, unexpected string literal, expecting `do' or '{' or '(' ``` Is this intentional or accidental? Not sure how it is reasoned. -- https://bugs.ruby-lang.org/ Unsubscribe: