about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdam Perry <adam.n.perry@gmail.com>2019-12-06 17:10:47 -0800
committerAdam Perry <adam.n.perry@gmail.com>2019-12-06 18:37:54 -0800
commit15d1f7cffdc0b111123a6d34a356eae95af04676 (patch)
treee21c58b0cfda1cae472db842f43fbb36b8cc8e5b
parent1c2483eb6fd679fd7f63cc0c0fb9692a2aa698aa (diff)
downloadrust-15d1f7cffdc0b111123a6d34a356eae95af04676.tar.gz
rust-15d1f7cffdc0b111123a6d34a356eae95af04676.zip
Add additional layer of #[track_caller] to test, avoid const prop.
-rw-r--r--src/test/ui/rfc-2091-track-caller/caller-location-intrinsic.rs14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/test/ui/rfc-2091-track-caller/caller-location-intrinsic.rs b/src/test/ui/rfc-2091-track-caller/caller-location-intrinsic.rs
index 76e62b89ab8..0a79aea376f 100644
--- a/src/test/ui/rfc-2091-track-caller/caller-location-intrinsic.rs
+++ b/src/test/ui/rfc-2091-track-caller/caller-location-intrinsic.rs
@@ -2,20 +2,26 @@
 
 #![feature(track_caller)]
 
+#[inline(never)]
+#[track_caller]
+fn defeat_const_prop() -> &'static core::panic::Location<'static> {
+    core::panic::Location::caller()
+}
+
 macro_rules! caller_location_from_macro {
-    () => (core::panic::Location::caller());
+    () => (defeat_const_prop());
 }
 
 fn main() {
-    let loc = core::panic::Location::caller();
+    let loc = defeat_const_prop();
     assert_eq!(loc.file(), file!());
-    assert_eq!(loc.line(), 10);
+    assert_eq!(loc.line(), 16);
     assert_eq!(loc.column(), 15);
 
     // `Location::caller()` in a macro should behave similarly to `file!` and `line!`,
     // i.e. point to where the macro was invoked, instead of the macro itself.
     let loc2 = caller_location_from_macro!();
     assert_eq!(loc2.file(), file!());
-    assert_eq!(loc2.line(), 17);
+    assert_eq!(loc2.line(), 23);
     assert_eq!(loc2.column(), 16);
 }