【问题标题】:Why isn't this Ruby syntax error detected?为什么没有检测到这个 Ruby 语法错误?
【发布时间】:2016-05-06 08:22:39
【问题描述】:

以下代码的语法无效:

# 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 上运行它。

【问题讨论】:

    标签: ruby syntax-error rubocop


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-01-11
      • 1970-01-01
      • 2018-06-28
      • 2010-10-25
      • 2020-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-05
      相关资源
      最近更新 更多