| //@ check-pass |
| |
| // This test covers similar crashes from both #126521 and #126751. |
| |
| macro_rules! foo { |
| ($val:ident) => { |
| true; |
| }; |
| } |
| |
| macro_rules! bar { |
| ($val:ident) => { |
| (5_i32.overflowing_sub(3)); |
| }; |
| } |
| |
| fn allow() { |
| #[allow(semicolon_in_expressions_from_macros)] |
| let _ = foo!(x); |
| |
| #[allow(semicolon_in_expressions_from_macros)] |
| let _ = bar!(x); |
| } |
| |
| // The `semicolon_in_expressions_from_macros` lint seems to be emitted even if the |
| // lint level is `allow` as shown in the function above. The behavior of `expect` |
| // should mirror this behavior. However, no `unfulfilled_lint_expectation` lint |
| // is emitted, since the expectation is theoretically fulfilled. |
| fn expect() { |
| #[expect(semicolon_in_expressions_from_macros)] |
| let _ = foo!(x); |
| |
| #[expect(semicolon_in_expressions_from_macros)] |
| let _ = bar!(x); |
| } |
| |
| fn main() { |
| } |