1
1
use super :: ERR_EXPECT ;
2
- use clippy_utils:: { diagnostics:: span_lint_and_help, meets_msrv, msrvs, ty:: is_type_diagnostic_item} ;
2
+ use clippy_utils:: { meets_msrv, msrvs, ty:: is_type_diagnostic_item} ;
3
+ use clippy_utils:: diagnostics:: span_lint_and_sugg;
3
4
use clippy_utils:: ty:: implements_trait;
5
+ use rustc_errors:: Applicability ;
4
6
use rustc_lint:: LateContext ;
5
7
use rustc_middle:: ty;
6
8
use rustc_middle:: ty:: Ty ;
7
9
use rustc_semver:: RustcVersion ;
8
- use rustc_span:: sym;
10
+ use rustc_span:: { Span , sym} ;
9
11
10
- pub ( super ) fn check ( cx : & LateContext < ' _ > , expr : & rustc_hir:: Expr < ' _ > , recv : & rustc_hir:: Expr < ' _ > , msrv : Option < & RustcVersion > ) {
12
+ pub ( super ) fn check ( cx : & LateContext < ' _ > , _expr : & rustc_hir:: Expr < ' _ > , recv : & rustc_hir:: Expr < ' _ > , msrv : Option < & RustcVersion > , span : Span ) {
11
13
if_chain ! {
12
14
if is_type_diagnostic_item( cx, cx. typeck_results( ) . expr_ty( recv) , sym:: Result ) ;
13
15
if meets_msrv( msrv, & msrvs:: EXPECT_ERR ) ;
@@ -17,16 +19,17 @@ pub(super) fn check(cx: &LateContext<'_>, expr: &rustc_hir::Expr<'_>, recv: &rus
17
19
if has_debug_impl( error_type, cx) ;
18
20
19
21
then {
20
- span_lint_and_help (
22
+ span_lint_and_sugg (
21
23
cx,
22
24
ERR_EXPECT ,
23
- expr . span,
25
+ span,
24
26
"called `.err().expect()` on a `Result` value" ,
25
- None ,
26
- "`.expect_err()` can be called instead" ,
27
+ "try" ,
28
+ "expect_err" . to_string( ) ,
29
+ Applicability :: MachineApplicable
27
30
) ;
28
31
}
29
- }
32
+ } ;
30
33
}
31
34
32
35
/// Given a `Result<T, E>` type, return its error type (`E`).
0 commit comments