为什么未检测到此 Ruby 语法错误?
Why isn't this Ruby syntax error detected?
以下代码语法无效:
# bad_code.rb
def foo
next
end
$ ruby bad_code.rb
bad_code.rb:2: Invalid next
bad_code.rb: compile error (SyntaxError)
但是,运行 ruby -c bad_code.rb
没有检测到任何问题:
$ ruby -c bad_code.rb
Syntax OK
然而 ruby -c
应该用于检查语法:
-c check syntax only
为什么它没有检测到这个错误?
rubocop bad_code.rb
也没有检测到这个:
$ rubocop bad_code.rb
Inspecting 1 file
.
1 file inspected, no offenses detected
我 运行 这个在 Ruby 2.1.10.
它在句法上是正确的,但是当 ruby 解释器试图为它生成代码时,它发现 next
没有目标
以下代码语法无效:
# bad_code.rb
def foo
next
end
$ ruby bad_code.rb
bad_code.rb:2: Invalid next
bad_code.rb: compile error (SyntaxError)
但是,运行 ruby -c bad_code.rb
没有检测到任何问题:
$ ruby -c bad_code.rb
Syntax OK
然而 ruby -c
应该用于检查语法:
-c check syntax only
为什么它没有检测到这个错误?
rubocop bad_code.rb
也没有检测到这个:
$ rubocop bad_code.rb
Inspecting 1 file
.
1 file inspected, no offenses detected
我 运行 这个在 Ruby 2.1.10.
它在句法上是正确的,但是当 ruby 解释器试图为它生成代码时,它发现 next