运行 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
更新。也许更新会解决您的问题。
我第一次尝试 运行 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
更新。也许更新会解决您的问题。