From: nobu@... Date: 2018-05-25T05:46:39+00:00 Subject: [ruby-core:87258] [Ruby trunk Feature#14785] Parse guard statements like regular conditionals Issue #14785 has been updated by nobu (Nobuyoshi Nakada). ```ruby def test result = calculate_result and return result # ... end ``` ---------------------------------------- Feature #14785: Parse guard statements like regular conditionals https://bugs.ruby-lang.org/issues/14785#change-72248 * Author: jacobevelyn (Jacob Evelyn) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- I just learned that these two pieces of code are not the same: ~~~ ruby def test if result = calculate_result return result end ... end ~~~ ~~~ ruby def test return result if result = calculate_result ... end ~~~ The second one will give this unhelpful error message: ~~~ NameError: undefined local variable or method `result' for main:Object Did you mean? result ~~~ I think this is confusing, especially since tools like RuboCop sometimes encourage users to change conditionals to inline ones ("guard statements"). I'd like to propose that Ruby be changed to treat these as the same. -- https://bugs.ruby-lang.org/ Unsubscribe: