From 15d1f7cffdc0b111123a6d34a356eae95af04676 Mon Sep 17 00:00:00 2001 From: Adam Perry Date: Fri, 6 Dec 2019 17:10:47 -0800 Subject: [PATCH] Add additional layer of #[track_caller] to test, avoid const prop. --- .../caller-location-intrinsic.rs | 14 ++++++++++---- 1 file 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 76e62b89ab818..0a79aea376fbc 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); }