【问题标题】:Rust Analyzer doesn't create warning for undefined variablesRust Analyzer 不会为未定义的变量创建警告
【发布时间】:2023-02-10 17:48:33
【问题描述】:

出于某种原因,Rust Analyzer 没有为未定义的变量生成警告。我需要在某处调整一些设置吗?

我也没有收到未使用的变量、未导入的板条箱等的警告。

编辑:使用新的工作区对此进行了测试。 cargo check 和 Rust Analyzer 都可以工作。它报告一个故意错误。当我在第一个工作空间中运行cargo check时,它在~/.cargo目录中报告了很多错误,而在当前工作空间中没有。也许我正在使用的板条箱有错误并且在它可以检查我的目录中的文件之前锁定了cargo check

【问题讨论】:

  • 我无法复制,你能提供更多细节吗?
  • @JaredSmith 不确定 - 我在根目录中使用带有 Cargo.toml 的 monorepo,其中包含 [workspace],后跟 members = ["apps/project1", "apps/project2", "packages/crate1", etc. ]
  • cargo check 是否显示错误?
  • 什么版本的 rust-analyzer 和哪个文本编辑器?
  • @JaredSmith v0.3.1301 与 VSCode

标签: rust rust-analyzer


【解决方案1】:

运行cargo check 时的日志显示~/.cargo/registry/src/github.com-xx..xx/rppal-0.12.0 存在一些问题。这来自我列为依赖项的板条箱rust_gpiozero。据我所知,cargo check 在这方面失败了,然后停止分析我的文件。删除此依赖项后,cargo check 和 Rust Analyzer 都按预期运行。

为所有回复此主题以寻求指导的人干杯。

【讨论】:

    【解决方案2】:

    Rust-analyzer 本身不会为此产生错误或警告。

    如果您想要警告和错误,请在 rust-analyzer 扩展中启用“检查启用”选项。每次保存 Rust 文件并在文件中显示发出的警告和错误时,这将运行 cargo check

    【讨论】:

    • 也许启用“检查保存”?这已经启用,我收到了一些警告,比如不完整的语句(例如 let x = 抛出错误。),但是对于更复杂的事情,我没有收到任何错误。在您和@PitaJ 的回复之间,这似乎是货物错误而不是 Rust 分析器错误。
    【解决方案3】:

    另一个可能的原因:试试cargo clean

    升级我的工具链版本后,这个问题发生在我身上。正如其他答案中提到的,运行cargo check 产生了许多错误。最上面的错误提到了一个板条箱“由不兼容的 rustc 版本编译”。运行 cargo clean 后跟 cargo check 修复了所有错误。

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 2023-01-11
      • 2012-07-29
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多