Skip to content

Commit 325d9fb

Browse files
Rollup merge of #46805 - estebank:unnecessary-unsafe-spans, r=arielb1
Tweak "unecessary unsafe block" error spans
2 parents 3a2becb + e1dc7ac commit 325d9fb

File tree

3 files changed

+43
-122
lines changed

3 files changed

+43
-122
lines changed

src/librustc_mir/transform/check_unsafety.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -388,12 +388,13 @@ fn is_enclosed(tcx: TyCtxt,
388388
}
389389

390390
fn report_unused_unsafe(tcx: TyCtxt, used_unsafe: &FxHashSet<ast::NodeId>, id: ast::NodeId) {
391-
let span = tcx.hir.span(id);
392-
let mut db = tcx.struct_span_lint_node(UNUSED_UNSAFE, id, span, "unnecessary `unsafe` block");
393-
db.span_label(span, "unnecessary `unsafe` block");
391+
let span = tcx.sess.codemap().def_span(tcx.hir.span(id));
392+
let msg = "unnecessary `unsafe` block";
393+
let mut db = tcx.struct_span_lint_node(UNUSED_UNSAFE, id, span, msg);
394+
db.span_label(span, msg);
394395
if let Some((kind, id)) = is_enclosed(tcx, used_unsafe, id) {
395-
db.span_note(tcx.hir.span(id),
396-
&format!("because it's nested under this `unsafe` {}", kind));
396+
db.span_label(tcx.sess.codemap().def_span(tcx.hir.span(id)),
397+
format!("because it's nested under this `unsafe` {}", kind));
397398
}
398399
db.emit();
399400
}
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,35 @@
11
error: unnecessary `unsafe` block
22
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:17:13
33
|
4-
17 | / unsafe { //~ ERROR unnecessary `unsafe`
5-
18 | | v.set_len(24);
6-
19 | | |w: &mut Vec<u32>| { unsafe { //~ ERROR unnecessary `unsafe`
7-
20 | | w.set_len(32);
8-
21 | | } };
9-
22 | | }
10-
| |_____________^ unnecessary `unsafe` block
4+
15 | unsafe {
5+
| ------ because it's nested under this `unsafe` block
6+
16 | let f = |v: &mut Vec<_>| {
7+
17 | unsafe { //~ ERROR unnecessary `unsafe`
8+
| ^^^^^^ unnecessary `unsafe` block
119
|
1210
note: lint level defined here
1311
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:11:8
1412
|
1513
11 | #[deny(unused_unsafe)]
1614
| ^^^^^^^^^^^^^
17-
note: because it's nested under this `unsafe` block
18-
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:15:5
19-
|
20-
15 | / unsafe {
21-
16 | | let f = |v: &mut Vec<_>| {
22-
17 | | unsafe { //~ ERROR unnecessary `unsafe`
23-
18 | | v.set_len(24);
24-
... |
25-
29 | | f(&mut v);
26-
30 | | }
27-
| |_____^
2815

2916
error: unnecessary `unsafe` block
3017
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:19:38
3118
|
32-
19 | |w: &mut Vec<u32>| { unsafe { //~ ERROR unnecessary `unsafe`
33-
| ______________________________________^
34-
20 | | w.set_len(32);
35-
21 | | } };
36-
| |_________________^ unnecessary `unsafe` block
37-
|
38-
note: because it's nested under this `unsafe` block
39-
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:15:5
40-
|
41-
15 | / unsafe {
42-
16 | | let f = |v: &mut Vec<_>| {
43-
17 | | unsafe { //~ ERROR unnecessary `unsafe`
44-
18 | | v.set_len(24);
45-
... |
46-
29 | | f(&mut v);
47-
30 | | }
48-
| |_____^
19+
15 | unsafe {
20+
| ------ because it's nested under this `unsafe` block
21+
...
22+
19 | |w: &mut Vec<u32>| { unsafe { //~ ERROR unnecessary `unsafe`
23+
| ^^^^^^ unnecessary `unsafe` block
4924

5025
error: unnecessary `unsafe` block
5126
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:23:34
5227
|
53-
23 | |x: &mut Vec<u32>| { unsafe { //~ ERROR unnecessary `unsafe`
54-
| __________________________________^
55-
24 | | x.set_len(40);
56-
25 | | } };
57-
| |_____________^ unnecessary `unsafe` block
58-
|
59-
note: because it's nested under this `unsafe` block
60-
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:15:5
61-
|
62-
15 | / unsafe {
63-
16 | | let f = |v: &mut Vec<_>| {
64-
17 | | unsafe { //~ ERROR unnecessary `unsafe`
65-
18 | | v.set_len(24);
66-
... |
67-
29 | | f(&mut v);
68-
30 | | }
69-
| |_____^
28+
15 | unsafe {
29+
| ------ because it's nested under this `unsafe` block
30+
...
31+
23 | |x: &mut Vec<u32>| { unsafe { //~ ERROR unnecessary `unsafe`
32+
| ^^^^^^ unnecessary `unsafe` block
7033

7134
error: aborting due to 3 previous errors
7235

src/test/ui/span/lint-unused-unsafe.stderr

+22-65
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ error: unnecessary `unsafe` block
22
--> $DIR/lint-unused-unsafe.rs:26:13
33
|
44
26 | fn bad1() { unsafe {} } //~ ERROR: unnecessary `unsafe` block
5-
| ^^^^^^^^^ unnecessary `unsafe` block
5+
| ^^^^^^ unnecessary `unsafe` block
66
|
77
note: lint level defined here
88
--> $DIR/lint-unused-unsafe.rs:14:9
@@ -14,97 +14,54 @@ error: unnecessary `unsafe` block
1414
--> $DIR/lint-unused-unsafe.rs:27:13
1515
|
1616
27 | fn bad2() { unsafe { bad1() } } //~ ERROR: unnecessary `unsafe` block
17-
| ^^^^^^^^^^^^^^^^^ unnecessary `unsafe` block
17+
| ^^^^^^ unnecessary `unsafe` block
1818

1919
error: unnecessary `unsafe` block
2020
--> $DIR/lint-unused-unsafe.rs:28:20
2121
|
2222
28 | unsafe fn bad3() { unsafe {} } //~ ERROR: unnecessary `unsafe` block
23-
| ^^^^^^^^^ unnecessary `unsafe` block
24-
|
25-
note: because it's nested under this `unsafe` fn
26-
--> $DIR/lint-unused-unsafe.rs:28:1
27-
|
28-
28 | unsafe fn bad3() { unsafe {} } //~ ERROR: unnecessary `unsafe` block
29-
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
23+
| ---------------- ^^^^^^ unnecessary `unsafe` block
24+
| |
25+
| because it's nested under this `unsafe` fn
3026

3127
error: unnecessary `unsafe` block
3228
--> $DIR/lint-unused-unsafe.rs:29:13
3329
|
3430
29 | fn bad4() { unsafe { callback(||{}) } } //~ ERROR: unnecessary `unsafe` block
35-
| ^^^^^^^^^^^^^^^^^^^^^^^^^ unnecessary `unsafe` block
31+
| ^^^^^^ unnecessary `unsafe` block
3632

3733
error: unnecessary `unsafe` block
3834
--> $DIR/lint-unused-unsafe.rs:30:20
3935
|
4036
30 | unsafe fn bad5() { unsafe { unsf() } } //~ ERROR: unnecessary `unsafe` block
41-
| ^^^^^^^^^^^^^^^^^ unnecessary `unsafe` block
42-
|
43-
note: because it's nested under this `unsafe` fn
44-
--> $DIR/lint-unused-unsafe.rs:30:1
45-
|
46-
30 | unsafe fn bad5() { unsafe { unsf() } } //~ ERROR: unnecessary `unsafe` block
47-
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
37+
| ---------------- ^^^^^^ unnecessary `unsafe` block
38+
| |
39+
| because it's nested under this `unsafe` fn
4840

4941
error: unnecessary `unsafe` block
5042
--> $DIR/lint-unused-unsafe.rs:33:9
5143
|
52-
33 | / unsafe { //~ ERROR: unnecessary `unsafe` block
53-
34 | | unsf()
54-
35 | | }
55-
| |_________^ unnecessary `unsafe` block
56-
|
57-
note: because it's nested under this `unsafe` block
58-
--> $DIR/lint-unused-unsafe.rs:32:5
59-
|
60-
32 | / unsafe { // don't put the warning here
61-
33 | | unsafe { //~ ERROR: unnecessary `unsafe` block
62-
34 | | unsf()
63-
35 | | }
64-
36 | | }
65-
| |_____^
44+
32 | unsafe { // don't put the warning here
45+
| ------ because it's nested under this `unsafe` block
46+
33 | unsafe { //~ ERROR: unnecessary `unsafe` block
47+
| ^^^^^^ unnecessary `unsafe` block
6648

6749
error: unnecessary `unsafe` block
6850
--> $DIR/lint-unused-unsafe.rs:39:5
6951
|
70-
39 | / unsafe { //~ ERROR: unnecessary `unsafe` block
71-
40 | | unsafe { //~ ERROR: unnecessary `unsafe` block
72-
41 | | unsf()
73-
42 | | }
74-
43 | | }
75-
| |_____^ unnecessary `unsafe` block
76-
|
77-
note: because it's nested under this `unsafe` fn
78-
--> $DIR/lint-unused-unsafe.rs:38:1
79-
|
80-
38 | / unsafe fn bad7() {
81-
39 | | unsafe { //~ ERROR: unnecessary `unsafe` block
82-
40 | | unsafe { //~ ERROR: unnecessary `unsafe` block
83-
41 | | unsf()
84-
42 | | }
85-
43 | | }
86-
44 | | }
87-
| |_^
52+
38 | unsafe fn bad7() {
53+
| ---------------- because it's nested under this `unsafe` fn
54+
39 | unsafe { //~ ERROR: unnecessary `unsafe` block
55+
| ^^^^^^ unnecessary `unsafe` block
8856

8957
error: unnecessary `unsafe` block
9058
--> $DIR/lint-unused-unsafe.rs:40:9
9159
|
92-
40 | / unsafe { //~ ERROR: unnecessary `unsafe` block
93-
41 | | unsf()
94-
42 | | }
95-
| |_________^ unnecessary `unsafe` block
96-
|
97-
note: because it's nested under this `unsafe` fn
98-
--> $DIR/lint-unused-unsafe.rs:38:1
99-
|
100-
38 | / unsafe fn bad7() {
101-
39 | | unsafe { //~ ERROR: unnecessary `unsafe` block
102-
40 | | unsafe { //~ ERROR: unnecessary `unsafe` block
103-
41 | | unsf()
104-
42 | | }
105-
43 | | }
106-
44 | | }
107-
| |_^
60+
38 | unsafe fn bad7() {
61+
| ---------------- because it's nested under this `unsafe` fn
62+
39 | unsafe { //~ ERROR: unnecessary `unsafe` block
63+
40 | unsafe { //~ ERROR: unnecessary `unsafe` block
64+
| ^^^^^^ unnecessary `unsafe` block
10865

10966
error: aborting due to 8 previous errors
11067

0 commit comments

Comments
 (0)