タイプミスがありました (まあ、Python のルーチンです) が、奇妙なことに、Ruby はそれについて文句を言いませんでした:
> if false; put "NO"; elif true; puts "YE"; end
=> nil
> if false; puts "NO"; elsif true; puts "YE"; end #proper way
YE
それが完璧な Ruby 構文であることに気付いたとき、私は 30 分ほど考えなければなりませんでした。if
Ruby はそれを最初の節のコマンドの一部として解釈します。elif
コマンドは存在しませんが、コンパイル時には認識されません。警告フラグがオンになっていても、Ruby はそれについて警告しませんでした。
これらの問題について警告する方法はありますか? そのようなタイプミスについては、すべてのソースを grep する必要がありますか? どうにかしてこれを強制的にコンパイル時エラーにすることはできますか?
(動的言語であることはわかっています。単体テストでこれらの問題を検出する必要がありますが、新しいコードを作成している間はまだ面倒です。)