I'm trying to run clippy for the first time (I know.. I really should have done it by now eh?) and I am facing some errors.
The project I'm trying to lint depends on Piston and it compiles and runs successfully. However, when I run clippy as described in the README:
rustup run nightly cargo clippy
It looks like it starts trying to build Piston and reports errors like this:
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`
How can I tell clippy to not build Piston and/or lint it? How can I just have it build my project and lint my code?
cargo build
builds the project successfully from the same folder.
I haven't dug deep into clippy's code, but I assumed it worked off an AST and didn't actually build the binaries... it seems I was incorrect?
How can I tell clippy to not build Piston and/or lint it?
You can't.
Clippy needs to build all dependencies to be able to lint your project. This is because only a few lints run solely on the AST. Most lints run on the HIR and also require type information.
Unfortunately I cannot reproduce your error on piston_window v0.57.0
, but that version pulls in piston2d-gfx_graphics v0.33.1
, which is newer than the 0.31.2
that you are using. Maybe updating will solve your issues.