Tweak "unecessary unsafe block" error spans
This commit is contained in:
parent
3cc68bac7c
commit
e1dc7ac33c
|
@ -388,12 +388,13 @@ fn is_enclosed(tcx: TyCtxt,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn report_unused_unsafe(tcx: TyCtxt, used_unsafe: &FxHashSet<ast::NodeId>, id: ast::NodeId) {
|
fn report_unused_unsafe(tcx: TyCtxt, used_unsafe: &FxHashSet<ast::NodeId>, id: ast::NodeId) {
|
||||||
let span = tcx.hir.span(id);
|
let span = tcx.sess.codemap().def_span(tcx.hir.span(id));
|
||||||
let mut db = tcx.struct_span_lint_node(UNUSED_UNSAFE, id, span, "unnecessary `unsafe` block");
|
let msg = "unnecessary `unsafe` block";
|
||||||
db.span_label(span, "unnecessary `unsafe` block");
|
let mut db = tcx.struct_span_lint_node(UNUSED_UNSAFE, id, span, msg);
|
||||||
|
db.span_label(span, msg);
|
||||||
if let Some((kind, id)) = is_enclosed(tcx, used_unsafe, id) {
|
if let Some((kind, id)) = is_enclosed(tcx, used_unsafe, id) {
|
||||||
db.span_note(tcx.hir.span(id),
|
db.span_label(tcx.sess.codemap().def_span(tcx.hir.span(id)),
|
||||||
&format!("because it's nested under this `unsafe` {}", kind));
|
format!("because it's nested under this `unsafe` {}", kind));
|
||||||
}
|
}
|
||||||
db.emit();
|
db.emit();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,72 +1,35 @@
|
||||||
error: unnecessary `unsafe` block
|
error: unnecessary `unsafe` block
|
||||||
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:17:13
|
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:17:13
|
||||||
|
|
|
|
||||||
17 | / unsafe { //~ ERROR unnecessary `unsafe`
|
15 | unsafe {
|
||||||
18 | | v.set_len(24);
|
| ------ because it's nested under this `unsafe` block
|
||||||
19 | | |w: &mut Vec<u32>| { unsafe { //~ ERROR unnecessary `unsafe`
|
16 | let f = |v: &mut Vec<_>| {
|
||||||
20 | | w.set_len(32);
|
17 | unsafe { //~ ERROR unnecessary `unsafe`
|
||||||
21 | | } };
|
| ^^^^^^ unnecessary `unsafe` block
|
||||||
22 | | }
|
|
||||||
| |_____________^ unnecessary `unsafe` block
|
|
||||||
|
|
|
|
||||||
note: lint level defined here
|
note: lint level defined here
|
||||||
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:11:8
|
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:11:8
|
||||||
|
|
|
|
||||||
11 | #[deny(unused_unsafe)]
|
11 | #[deny(unused_unsafe)]
|
||||||
| ^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^
|
||||||
note: because it's nested under this `unsafe` block
|
|
||||||
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:15:5
|
|
||||||
|
|
|
||||||
15 | / unsafe {
|
|
||||||
16 | | let f = |v: &mut Vec<_>| {
|
|
||||||
17 | | unsafe { //~ ERROR unnecessary `unsafe`
|
|
||||||
18 | | v.set_len(24);
|
|
||||||
... |
|
|
||||||
29 | | f(&mut v);
|
|
||||||
30 | | }
|
|
||||||
| |_____^
|
|
||||||
|
|
||||||
error: unnecessary `unsafe` block
|
error: unnecessary `unsafe` block
|
||||||
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:19:38
|
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:19:38
|
||||||
|
|
|
|
||||||
19 | |w: &mut Vec<u32>| { unsafe { //~ ERROR unnecessary `unsafe`
|
15 | unsafe {
|
||||||
| ______________________________________^
|
| ------ because it's nested under this `unsafe` block
|
||||||
20 | | w.set_len(32);
|
...
|
||||||
21 | | } };
|
19 | |w: &mut Vec<u32>| { unsafe { //~ ERROR unnecessary `unsafe`
|
||||||
| |_________________^ unnecessary `unsafe` block
|
| ^^^^^^ unnecessary `unsafe` block
|
||||||
|
|
|
||||||
note: because it's nested under this `unsafe` block
|
|
||||||
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:15:5
|
|
||||||
|
|
|
||||||
15 | / unsafe {
|
|
||||||
16 | | let f = |v: &mut Vec<_>| {
|
|
||||||
17 | | unsafe { //~ ERROR unnecessary `unsafe`
|
|
||||||
18 | | v.set_len(24);
|
|
||||||
... |
|
|
||||||
29 | | f(&mut v);
|
|
||||||
30 | | }
|
|
||||||
| |_____^
|
|
||||||
|
|
||||||
error: unnecessary `unsafe` block
|
error: unnecessary `unsafe` block
|
||||||
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:23:34
|
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:23:34
|
||||||
|
|
|
|
||||||
23 | |x: &mut Vec<u32>| { unsafe { //~ ERROR unnecessary `unsafe`
|
15 | unsafe {
|
||||||
| __________________________________^
|
| ------ because it's nested under this `unsafe` block
|
||||||
24 | | x.set_len(40);
|
...
|
||||||
25 | | } };
|
23 | |x: &mut Vec<u32>| { unsafe { //~ ERROR unnecessary `unsafe`
|
||||||
| |_____________^ unnecessary `unsafe` block
|
| ^^^^^^ unnecessary `unsafe` block
|
||||||
|
|
|
||||||
note: because it's nested under this `unsafe` block
|
|
||||||
--> $DIR/issue-45107-unnecessary-unsafe-in-closure.rs:15:5
|
|
||||||
|
|
|
||||||
15 | / unsafe {
|
|
||||||
16 | | let f = |v: &mut Vec<_>| {
|
|
||||||
17 | | unsafe { //~ ERROR unnecessary `unsafe`
|
|
||||||
18 | | v.set_len(24);
|
|
||||||
... |
|
|
||||||
29 | | f(&mut v);
|
|
||||||
30 | | }
|
|
||||||
| |_____^
|
|
||||||
|
|
||||||
error: aborting due to 3 previous errors
|
error: aborting due to 3 previous errors
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ error: unnecessary `unsafe` block
|
||||||
--> $DIR/lint-unused-unsafe.rs:26:13
|
--> $DIR/lint-unused-unsafe.rs:26:13
|
||||||
|
|
|
|
||||||
26 | fn bad1() { unsafe {} } //~ ERROR: unnecessary `unsafe` block
|
26 | fn bad1() { unsafe {} } //~ ERROR: unnecessary `unsafe` block
|
||||||
| ^^^^^^^^^ unnecessary `unsafe` block
|
| ^^^^^^ unnecessary `unsafe` block
|
||||||
|
|
|
|
||||||
note: lint level defined here
|
note: lint level defined here
|
||||||
--> $DIR/lint-unused-unsafe.rs:14:9
|
--> $DIR/lint-unused-unsafe.rs:14:9
|
||||||
|
@ -14,97 +14,54 @@ error: unnecessary `unsafe` block
|
||||||
--> $DIR/lint-unused-unsafe.rs:27:13
|
--> $DIR/lint-unused-unsafe.rs:27:13
|
||||||
|
|
|
|
||||||
27 | fn bad2() { unsafe { bad1() } } //~ ERROR: unnecessary `unsafe` block
|
27 | fn bad2() { unsafe { bad1() } } //~ ERROR: unnecessary `unsafe` block
|
||||||
| ^^^^^^^^^^^^^^^^^ unnecessary `unsafe` block
|
| ^^^^^^ unnecessary `unsafe` block
|
||||||
|
|
||||||
error: unnecessary `unsafe` block
|
error: unnecessary `unsafe` block
|
||||||
--> $DIR/lint-unused-unsafe.rs:28:20
|
--> $DIR/lint-unused-unsafe.rs:28:20
|
||||||
|
|
|
|
||||||
28 | unsafe fn bad3() { unsafe {} } //~ ERROR: unnecessary `unsafe` block
|
28 | unsafe fn bad3() { unsafe {} } //~ ERROR: unnecessary `unsafe` block
|
||||||
| ^^^^^^^^^ unnecessary `unsafe` block
|
| ---------------- ^^^^^^ unnecessary `unsafe` block
|
||||||
|
|
| |
|
||||||
note: because it's nested under this `unsafe` fn
|
| because it's nested under this `unsafe` fn
|
||||||
--> $DIR/lint-unused-unsafe.rs:28:1
|
|
||||||
|
|
|
||||||
28 | unsafe fn bad3() { unsafe {} } //~ ERROR: unnecessary `unsafe` block
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: unnecessary `unsafe` block
|
error: unnecessary `unsafe` block
|
||||||
--> $DIR/lint-unused-unsafe.rs:29:13
|
--> $DIR/lint-unused-unsafe.rs:29:13
|
||||||
|
|
|
|
||||||
29 | fn bad4() { unsafe { callback(||{}) } } //~ ERROR: unnecessary `unsafe` block
|
29 | fn bad4() { unsafe { callback(||{}) } } //~ ERROR: unnecessary `unsafe` block
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ unnecessary `unsafe` block
|
| ^^^^^^ unnecessary `unsafe` block
|
||||||
|
|
||||||
error: unnecessary `unsafe` block
|
error: unnecessary `unsafe` block
|
||||||
--> $DIR/lint-unused-unsafe.rs:30:20
|
--> $DIR/lint-unused-unsafe.rs:30:20
|
||||||
|
|
|
|
||||||
30 | unsafe fn bad5() { unsafe { unsf() } } //~ ERROR: unnecessary `unsafe` block
|
30 | unsafe fn bad5() { unsafe { unsf() } } //~ ERROR: unnecessary `unsafe` block
|
||||||
| ^^^^^^^^^^^^^^^^^ unnecessary `unsafe` block
|
| ---------------- ^^^^^^ unnecessary `unsafe` block
|
||||||
|
|
| |
|
||||||
note: because it's nested under this `unsafe` fn
|
| because it's nested under this `unsafe` fn
|
||||||
--> $DIR/lint-unused-unsafe.rs:30:1
|
|
||||||
|
|
|
||||||
30 | unsafe fn bad5() { unsafe { unsf() } } //~ ERROR: unnecessary `unsafe` block
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: unnecessary `unsafe` block
|
error: unnecessary `unsafe` block
|
||||||
--> $DIR/lint-unused-unsafe.rs:33:9
|
--> $DIR/lint-unused-unsafe.rs:33:9
|
||||||
|
|
|
|
||||||
33 | / unsafe { //~ ERROR: unnecessary `unsafe` block
|
32 | unsafe { // don't put the warning here
|
||||||
34 | | unsf()
|
| ------ because it's nested under this `unsafe` block
|
||||||
35 | | }
|
33 | unsafe { //~ ERROR: unnecessary `unsafe` block
|
||||||
| |_________^ unnecessary `unsafe` block
|
| ^^^^^^ unnecessary `unsafe` block
|
||||||
|
|
|
||||||
note: because it's nested under this `unsafe` block
|
|
||||||
--> $DIR/lint-unused-unsafe.rs:32:5
|
|
||||||
|
|
|
||||||
32 | / unsafe { // don't put the warning here
|
|
||||||
33 | | unsafe { //~ ERROR: unnecessary `unsafe` block
|
|
||||||
34 | | unsf()
|
|
||||||
35 | | }
|
|
||||||
36 | | }
|
|
||||||
| |_____^
|
|
||||||
|
|
||||||
error: unnecessary `unsafe` block
|
error: unnecessary `unsafe` block
|
||||||
--> $DIR/lint-unused-unsafe.rs:39:5
|
--> $DIR/lint-unused-unsafe.rs:39:5
|
||||||
|
|
|
|
||||||
39 | / unsafe { //~ ERROR: unnecessary `unsafe` block
|
38 | unsafe fn bad7() {
|
||||||
40 | | unsafe { //~ ERROR: unnecessary `unsafe` block
|
| ---------------- because it's nested under this `unsafe` fn
|
||||||
41 | | unsf()
|
39 | unsafe { //~ ERROR: unnecessary `unsafe` block
|
||||||
42 | | }
|
| ^^^^^^ unnecessary `unsafe` block
|
||||||
43 | | }
|
|
||||||
| |_____^ unnecessary `unsafe` block
|
|
||||||
|
|
|
||||||
note: because it's nested under this `unsafe` fn
|
|
||||||
--> $DIR/lint-unused-unsafe.rs:38:1
|
|
||||||
|
|
|
||||||
38 | / unsafe fn bad7() {
|
|
||||||
39 | | unsafe { //~ ERROR: unnecessary `unsafe` block
|
|
||||||
40 | | unsafe { //~ ERROR: unnecessary `unsafe` block
|
|
||||||
41 | | unsf()
|
|
||||||
42 | | }
|
|
||||||
43 | | }
|
|
||||||
44 | | }
|
|
||||||
| |_^
|
|
||||||
|
|
||||||
error: unnecessary `unsafe` block
|
error: unnecessary `unsafe` block
|
||||||
--> $DIR/lint-unused-unsafe.rs:40:9
|
--> $DIR/lint-unused-unsafe.rs:40:9
|
||||||
|
|
|
|
||||||
40 | / unsafe { //~ ERROR: unnecessary `unsafe` block
|
38 | unsafe fn bad7() {
|
||||||
41 | | unsf()
|
| ---------------- because it's nested under this `unsafe` fn
|
||||||
42 | | }
|
39 | unsafe { //~ ERROR: unnecessary `unsafe` block
|
||||||
| |_________^ unnecessary `unsafe` block
|
40 | unsafe { //~ ERROR: unnecessary `unsafe` block
|
||||||
|
|
| ^^^^^^ unnecessary `unsafe` block
|
||||||
note: because it's nested under this `unsafe` fn
|
|
||||||
--> $DIR/lint-unused-unsafe.rs:38:1
|
|
||||||
|
|
|
||||||
38 | / unsafe fn bad7() {
|
|
||||||
39 | | unsafe { //~ ERROR: unnecessary `unsafe` block
|
|
||||||
40 | | unsafe { //~ ERROR: unnecessary `unsafe` block
|
|
||||||
41 | | unsf()
|
|
||||||
42 | | }
|
|
||||||
43 | | }
|
|
||||||
44 | | }
|
|
||||||
| |_^
|
|
||||||
|
|
||||||
error: aborting due to 8 previous errors
|
error: aborting due to 8 previous errors
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue