运行 Clippy 时排除依赖项

Exclude dependencies when running Clippy

我第一次尝试 运行 clippy(我知道..我现在真的应该做到了吗?)但我遇到了一些错误。

我尝试 lint 的项目依赖于 Piston,它编译并 运行s 成功。然而,当我 运行 剪辑 as described in the README:

rustup run nightly cargo clippy

看起来它开始尝试构建 Piston 并报告如下错误:

error[E0433]: failed to resolve. Use of undeclared type or module `gfx`
  --> /Users/Simon/.cargo/registry/src/github.com-    1ecc6299db9ec823/piston2d-gfx_graphics-0.31.2/src/back_end.rs:31:10
   |
31 |     pos: gfx::VertexBuffer<PositionFormat>,
   |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use of undeclared type or module `gfx`

error[E0433]: failed to resolve. Use of undeclared type or module     `gfx`
  --> /Users/Simon/.cargo/registry/src/github.com-    1ecc6299db9ec823/piston2d-gfx_graphics-0.31.2/src/back_end.rs:32:12
   |
32 |     color: gfx::VertexBuffer<ColorFormat>,
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use of undeclared type or module `gfx`

error[E0433]: failed to resolve. Use of undeclared type or module `gfx`
  --> /Users/Simon/.cargo/registry/src/github.com-1ecc6299db9ec823/piston2d-gfx_graphics-0.31.2/src/back_end.rs:33:19
   |
33 |     blend_target: gfx::BlendTarget<gfx::format::Srgba8>,
   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use of undeclared type or module `gfx`

error[E0433]: failed to resolve. Use of undeclared type or module `gfx`
  --> /Users/Simon/.cargo/registry/src/github.com-1ecc6299db9ec823/piston2d-gfx_graphics-0.31.2/src/back_end.rs:33:36
   |
33 |     blend_target: gfx::BlendTarget<gfx::format::Srgba8>,
   |                                    ^^^^^^^^^^^^^^^^^^^ Use of undeclared type or module `gfx`

error[E0433]: failed to resolve. Use of undeclared type or module `gfx`
  --> /Users/Simon/.cargo/registry/src/github.com-1ecc6299db9ec823/piston2d-gfx_graphics-0.31.2/src/back_end.rs:34:21
   |
34 |     stencil_target: gfx::StencilTarget<gfx::format::DepthStencil>,
   |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use of undeclared type or module `gfx`

如何告诉 clippy 不要构建 Piston and/or lint 呢?我怎样才能让它构建我的项目并检查我的代码?

cargo build 从同一文件夹成功构建项目。

我没有深入研究 clippy 的代码,但我假设它是通过 AST 运行的,实际上并没有构建二进制文件……我好像错了?

How can I tell clippy to not build Piston and/or lint it?

你不能。

Clippy 需要构建所有依赖项才能检查您的项目。这是因为只有几个 lints 运行 仅在 AST 上。 HIR 上的大多数 lints 运行 并且还需要类型信息。

不幸的是,我无法在 piston_window v0.57.0 上重现您的错误,但是那个版本引入了 piston2d-gfx_graphics v0.33.1,它比您正在使用的 0.31.2 更新。也许更新会解决您的问题。