Fix dev book

fix `implements_trait` and `in_external_macro` import path

Remove example using `match_trait_method` since its deprecated
This commit is contained in:
kraktus 2022-09-09 22:43:19 +02:00
parent 5652ccbc0f
commit cea10f74b7

View File

@ -123,7 +123,8 @@ There are three ways to do this, depending on if the target trait has a
diagnostic item, lang item or neither. diagnostic item, lang item or neither.
```rust ```rust
use clippy_utils::{implements_trait, is_trait_method, match_trait_method, paths}; use clippy_utils::ty::implements_trait;
use clippy_utils::is_trait_method;
use rustc_span::symbol::sym; use rustc_span::symbol::sym;
impl LateLintPass<'_> for MyStructLint { impl LateLintPass<'_> for MyStructLint {
@ -143,13 +144,6 @@ impl LateLintPass<'_> for MyStructLint {
.map_or(false, |id| implements_trait(cx, ty, id, &[])) { .map_or(false, |id| implements_trait(cx, ty, id, &[])) {
// `expr` implements `Drop` trait // `expr` implements `Drop` trait
} }
// 3. Using the type path with the expression
// we use `match_trait_method` function from Clippy's utils
// (This method should be avoided if possible)
if match_trait_method(cx, expr, &paths::INTO) {
// `expr` implements `Into` trait
}
} }
} }
``` ```
@ -233,8 +227,9 @@ functions to deal with macros:
crates crates
```rust ```rust
#[macro_use] use rustc_middle::lint::in_external_macro;
extern crate a_crate_with_macros;
use a_crate_with_macros::foo;
// `foo` is defined in `a_crate_with_macros` // `foo` is defined in `a_crate_with_macros`
foo!("bar"); foo!("bar");