From: nobu@... Date: 2015-05-19T09:35:35+00:00 Subject: [ruby-core:69229] [Ruby trunk - Bug #11143] it should always be possible to return from an if Issue #11143 has been updated by Nobuyoshi Nakada. bug hit wrote: > Nobuyoshi Nakada wrote: > > Why do you need such assignment? > > What does my "need" have to do with whether something should be a syntax error or not? I wanted to know the use-case. > Just about everything in ruby is an expression and all expressions can potentially fail to produce a value (due to some jump: raise, throw, return, etc). That does not make such expressions syntactically invalid (e.g. `a = (1; return; 2)`), except for the if? Why? Thank you, it's a bug. That `return` should be invalid too. ---------------------------------------- Bug #11143: it should always be possible to return from an if https://bugs.ruby-lang.org/issues/11143#change-52483 * Author: bug hit * Status: Rejected * Priority: Normal * Assignee: * ruby -v: * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- ``` irb(main):001:0> def foo; a = if true then return end end SyntaxError: (irb):1: void value expression ``` it should not matter that you are not producing a value for the if expression, since you are leaving the method immediately. This should also apply to other jumps. -- https://bugs.ruby-lang.org/