]> git.lizzy.rs Git - rust.git/blob - src/test/ui/rfc-2091-track-caller/intrinsic-wrapper.rs
Rollup merge of #101189 - daxpedda:ready-into-inner, r=joshtriplett
[rust.git] / src / test / ui / rfc-2091-track-caller / intrinsic-wrapper.rs
1 // run-pass
2 // revisions: default mir-opt
3 //[mir-opt] compile-flags: -Zmir-opt-level=4
4
5 macro_rules! caller_location_from_macro {
6     () => (core::panic::Location::caller());
7 }
8
9 fn main() {
10     let loc = core::panic::Location::caller();
11     assert_eq!(loc.file(), file!());
12     assert_eq!(loc.line(), 10);
13     assert_eq!(loc.column(), 15);
14
15     // `Location::caller()` in a macro should behave similarly to `file!` and `line!`,
16     // i.e. point to where the macro was invoked, instead of the macro itself.
17     let loc2 = caller_location_from_macro!();
18     assert_eq!(loc2.file(), file!());
19     assert_eq!(loc2.line(), 17);
20     assert_eq!(loc2.column(), 16);
21 }