@main[] 1. return in method string param ^test1[] 2. return in method code param ^test2[] 3. return in variable in code ^test3[] 4. return from getter ^test4[] "$o.v" 5. return from setter ^test5[] "$o.v" 6. return from constructor 6.0 ^test6[] "$x.v" 6.1 ^test6-1[] "$y.CLASS_NAME" 7. return in method name (unusial, but still possible) ^test7[] 8. return in expression or parser method expression param is allowed 8.0 ^test8[] 8.1 ^test8-1[] 9. return is not allowed in expression passed to native method ^test9[] 10. testing return value ^test10[] "$v" 11. testing return value ^test11[] 12. testing return value ^test12[] 13. testing return value ^test13[] 14. testing continue replacing return ^test14[] 15. testing continue replacing return, but result is set ^test15[] 16. testing continue in finally replacing return ^test16[] 17. testing finally not replacing return ^test17[] [eof] @test1[] =^method1[%^return[]%;^throw[;should not be called]]= @method1[arg1;arg2] [should not be called] @test2[] =^method2{%^return[]%;^throw[;should not be called]}= [should not be shown] @method2[arg1;arg2] arg: [$arg1] [$arg2] @test3[] $code{%^return[]%} |$code| @test4[] $o[^O::create[]] =$o.property= @test5[] $o[^O::create[]] =$o.property[value]= @test6[] =$x[^O::create-with-return[]]= @test6-1[] =$y[^O::create-with-code{^return[]}]= @test7[] $code{%^return[]%} =^code[]= @test8[] %$x(1+^return[])% @test8-1[] =^method8(^return[])= @method8[cond] %$x($cond)% @test9[] $r{1 ^return[]} ^try-catch{ =^if($r){yes}{no}= } @test10[] =^method10{%^return[result value]%}= @method10[arg1] $v[before] arg: [$arg1] $v[after] @test11[] $result[result set] =^method10{%^return[]%}= @test12[] $result[result set] =^method10{%^return[result replaced]%}= @test13[] $result[result set ^return[result replaced]] @test14[] ^for[i](1;8){body $i =^if($i>4){%^return[]%}= }{, [$i] ^continue[]} @test15[] ^for[i](1;8){body $i =^if($i>4){%^return[$i]%}= }{, [$i] ^continue[]} @test16[] =^method16{%^return[]%}= @method16[code] ^for[i](1;2){ [$i] ^try{ try =$code= }{}{ ups ^continue[] } } @test17[] =^method17{%^return[]%}= @method17[code] ^for[i](1;2){ [$i] ^try{ try =$code= }{}{ ups } } @CLASS O @create[] $v[] @create-with-return[] $v[before] ^return[] $v[after] @create-with-code[code] $v[before] $code $v[after] @GET_property[] $v[before] %^return[]% $v[after] @SET_property[value] $v[before] %^return[]% $v[after]