为什么没有检测到这个Ruby语法错误?

时间:2016-05-06 08:22:40

标签: ruby syntax-error rubocop

以下代码的语法无效:

# 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仅检查语法

为什么不检测到这个错误?

rubocop bad_code.rb也没有检测到这一点:

$ rubocop bad_code.rb 
Inspecting 1 file
.

1 file inspected, no offenses detected

我在Ruby 2.1.10上运行它。

1 个答案:

答案 0 :(得分:5)

它在语法上是正确的,但是当ruby解释器尝试为它生成代码时,它会识别出next

没有目标