wrong "void value expression" error for 'next' or 'break' statements inside an 'if' assignment
When a 'next' or 'break' statement for block/loop control is placed inside an 'if' assignment, the parser outputs an error "void value expression". The same parsing error raises for the ternary operator in the same conditions.
I think, the the correct behavior should be consistent with the behavior of the 'case' statement, that is parsing such a code without errors and leaving the right-side variable with 'nil' value.
Examples of code giving a "void value expression" error:
begin a = if false 'A' else next end end while false
begin a = false ? 'A' : next end while false
Example of code running without errors:
begin a = case false when true 'A' else next end end while false
begin a = (false or next) end while false
Updated by nobu (Nobuyoshi Nakada) about 2 years ago
- Status changed from Open to Closed