😊
[Bug #20571] for 文で or を使うとコンパイルエラーになるバグ報告
[Bug #20571] Compile error on for loop
- 以下のようなコードを実行するとコンパイルエラーになるというバグ報告
for _ in 1.5 or _ in []
end
__END__
output:
-- raw disasm--------
trace: 1
<L000> [sp: 0, unremovable: 1, refcnt: 1]
0000 putobject 1.5 ( 1)
0002 jump <L002> ( 1)
<L006> [sp: 1, unremovable: 1, refcnt: 1]
<L004> [sp: 1, unremovable: 0, refcnt: 0]
0004 pop ( 1)
* 0005 pop ( 1)
0006 putobject false ( 1)
<L002> [sp: 1, unremovable: 0, refcnt: 1]
0008 send <calldata:each, 0>, nil ( 1)
<L001> [sp: -1, unremovable: 0, refcnt: 2]
0011 leave ( 1)
---------------------
test.rb:1: argument stack underflow (-1)
test.rb: compile error (SyntaxError)
- これ、各演算子(構文)の優先順位ってどういう扱いになるべきなんですかね…
Discussion