2019-07-26 21:54:25 +00:00
|
|
|
// run-pass
|
2020-01-31 22:02:31 +00:00
|
|
|
// ignore-pretty
|
2017-08-02 01:05:08 +00:00
|
|
|
// aux-build:span-api-tests.rs
|
|
|
|
// aux-build:span-test-macros.rs
|
|
|
|
|
|
|
|
#[macro_use]
|
|
|
|
extern crate span_test_macros;
|
|
|
|
|
|
|
|
extern crate span_api_tests;
|
|
|
|
|
2020-03-06 13:35:21 +00:00
|
|
|
// FIXME(69775): Investigate `assert_fake_source_file`.
|
|
|
|
|
2020-02-10 16:38:51 +00:00
|
|
|
use span_api_tests::{reemit, assert_source_file, macro_stringify};
|
2017-08-02 01:05:08 +00:00
|
|
|
|
|
|
|
macro_rules! say_hello {
|
|
|
|
($macname:ident) => ( $macname! { "Hello, world!" })
|
|
|
|
}
|
|
|
|
|
|
|
|
assert_source_file! { "Hello, world!" }
|
|
|
|
|
|
|
|
say_hello! { assert_source_file }
|
|
|
|
|
|
|
|
reemit_legacy! {
|
|
|
|
assert_source_file! { "Hello, world!" }
|
|
|
|
}
|
|
|
|
|
2020-02-10 16:38:51 +00:00
|
|
|
say_hello_extern! { assert_source_file }
|
2017-08-02 01:05:08 +00:00
|
|
|
|
|
|
|
reemit! {
|
|
|
|
assert_source_file! { "Hello, world!" }
|
|
|
|
}
|
|
|
|
|
2018-11-08 09:07:02 +00:00
|
|
|
fn main() {
|
|
|
|
let s = macro_stringify!(Hello, world!);
|
|
|
|
assert_eq!(s, "Hello, world!");
|
|
|
|
assert_eq!(macro_stringify!(Hello, world!), "Hello, world!");
|
|
|
|
assert_eq!(reemit_legacy!(macro_stringify!(Hello, world!)), "Hello, world!");
|
|
|
|
reemit_legacy!(assert_eq!(macro_stringify!(Hello, world!), "Hello, world!"));
|
|
|
|
// reemit change the span to be that of the call site
|
|
|
|
assert_eq!(
|
|
|
|
reemit!(macro_stringify!(Hello, world!)),
|
|
|
|
"reemit!(macro_stringify!(Hello, world!))"
|
|
|
|
);
|
2021-10-14 18:28:28 +00:00
|
|
|
let r = "reemit!(assert_eq!(macro_stringify!(Hello, world!), r))";
|
2018-11-08 09:07:02 +00:00
|
|
|
reemit!(assert_eq!(macro_stringify!(Hello, world!), r));
|
|
|
|
|
|
|
|
assert_eq!(macro_stringify!(
|
|
|
|
Hello,
|
|
|
|
world!
|
|
|
|
), "Hello,\n world!");
|
|
|
|
|
|
|
|
assert_eq!(macro_stringify!(Hello, /*world */ !), "Hello, /*world */ !");
|
|
|
|
assert_eq!(macro_stringify!(
|
|
|
|
Hello,
|
|
|
|
// comment
|
|
|
|
world!
|
|
|
|
), "Hello,\n // comment\n world!");
|
|
|
|
|
|
|
|
assert_eq!(say_hello! { macro_stringify }, "\"Hello, world!\"");
|
|
|
|
assert_eq!(say_hello_extern! { macro_stringify }, "\"Hello, world!\"");
|
|
|
|
}
|