]> git.lizzy.rs Git - rust.git/blob - src/test/ui/rfc-2091-track-caller/const-caller-location.rs
Rollup merge of #99064 - lyming2007:issue-97687-fix, r=estebank
[rust.git] / src / test / ui / rfc-2091-track-caller / const-caller-location.rs
1 // run-pass
2 // revisions: default mir-opt
3 //[mir-opt] compile-flags: -Zmir-opt-level=4
4
5 #![feature(const_caller_location)]
6
7 use std::panic::Location;
8
9 const LOCATION: &Location = Location::caller();
10
11 const TRACKED: &Location = tracked();
12 #[track_caller]
13 const fn tracked() -> &'static Location <'static> {
14     Location::caller()
15 }
16
17 const NESTED: &Location = nested_location();
18 const fn nested_location() -> &'static Location<'static> {
19     Location::caller()
20 }
21
22 const CONTAINED: &Location = contained();
23 const fn contained() -> &'static Location<'static> {
24     tracked()
25 }
26
27 fn main() {
28     assert_eq!(LOCATION.file(), file!());
29     assert_eq!(LOCATION.line(), 9);
30     assert_eq!(LOCATION.column(), 29);
31
32     assert_eq!(TRACKED.file(), file!());
33     assert_eq!(TRACKED.line(), 11);
34     assert_eq!(TRACKED.column(), 28);
35
36     assert_eq!(NESTED.file(), file!());
37     assert_eq!(NESTED.line(), 19);
38     assert_eq!(NESTED.column(), 5);
39
40     assert_eq!(CONTAINED.file(), file!());
41     assert_eq!(CONTAINED.line(), 24);
42     assert_eq!(CONTAINED.column(), 5);
43 }