Skip to content

Commit dc5ee5a

Browse files
authored
Merge pull request #3010 from mikerite/issue2971
Fix #2971
2 parents a4b08fc + a3d7698 commit dc5ee5a

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

clippy_lints/src/identity_conversion.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for IdentityConversion {
8585
let a = cx.tables.expr_ty(e);
8686
let b = cx.tables.expr_ty(&args[0]);
8787
if same_tys(cx, a, b) {
88-
let sugg = snippet(cx, args[0].span, "<expr>").into_owned();
88+
let sugg = snippet(cx, args[0].span.source_callsite(), "<expr>").into_owned();
8989
let sugg_msg = format!("consider removing `{}()`", snippet(cx, path.span, "From::from"));
9090
span_lint_and_then(cx, IDENTITY_CONVERSION, e.span, "identical conversion", |db| {
9191
db.span_suggestion(e.span, &sugg_msg, sugg);

tests/ui/identity_conversion.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ fn main() {
3838
let _: String = "foo".to_string().into();
3939
let _: String = From::from("foo".to_string());
4040
let _ = String::from("foo".to_string());
41+
let _ = String::from(format!("A: {:04}", 123));
4142
let _ = "".lines().into_iter();
4243
let _ = vec![1, 2, 3].into_iter().into_iter();
4344
}

tests/ui/identity_conversion.stderr

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,20 @@ error: identical conversion
4343
error: identical conversion
4444
--> $DIR/identity_conversion.rs:41:13
4545
|
46-
41 | let _ = "".lines().into_iter();
47-
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `"".lines()`
46+
41 | let _ = String::from(format!("A: {:04}", 123));
47+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("A: {:04}", 123)`
4848

4949
error: identical conversion
5050
--> $DIR/identity_conversion.rs:42:13
5151
|
52-
42 | let _ = vec![1, 2, 3].into_iter().into_iter();
52+
42 | let _ = "".lines().into_iter();
53+
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `"".lines()`
54+
55+
error: identical conversion
56+
--> $DIR/identity_conversion.rs:43:13
57+
|
58+
43 | let _ = vec![1, 2, 3].into_iter().into_iter();
5359
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `vec![1, 2, 3].into_iter()`
5460

55-
error: aborting due to 8 previous errors
61+
error: aborting due to 9 previous errors
5662

0 commit comments

Comments
 (0)