-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Count unsafe operations and macro calls once towards the innermost unsafe block #16117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
Lintcheck changes for 5a7ea1d
This comment will be updated if you push new changes |
|
The actual issue is nested unsafe f1() {}
unsafe f2() {}
fn f3() {
unsafe {
f1();
unsafe { f2(); }
}
}This only has one unsafe operation in each block, just one of them happens to be nested in another. We should still be considering a macro call to be a single thing. A macro expanding to multiple unsafe calls without an unsafe block shouldn't trigger the lint. |
e7ee98d to
181cb9c
Compare
|
Done. |
| note: macro call expanded to unsafe operation here | ||
| --> tests/ui/multiple_unsafe_ops_per_block.rs:328:17 | ||
| | | ||
| LL | let _ = format!("{}", foo()); | ||
| | ^^^^^^^^^^^^^^^^^^^^ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can also see the effect here with the macro being blamed for the foo call even though it's unrelated.
Also, macro calls are counted as at most one unsafe operation.
181cb9c to
5a7ea1d
Compare
…ro calls once towards the innermost unsafe block
changelog: [
multiple_unsafe_ops_per_block]: count unsafe operations only towards the innermost unsafe blockFixes #16116
r? Jarcho