add UI test
This commit is contained in:
parent
c73bcf043e
commit
bcd1fedf03
4 changed files with 72 additions and 3 deletions
|
@ -795,8 +795,11 @@ impl EmitterWriter {
|
|||
if spans_updated {
|
||||
children.push(SubDiagnostic {
|
||||
level: Level::Note,
|
||||
message: vec![("this error originates in a macro outside of the current crate (run with RUST_MACRO_BACKTRACE=1 for more info)"
|
||||
.to_string(), Style::NoStyle)],
|
||||
message: vec![
|
||||
(["this error originates in a macro outside of the current crate",
|
||||
"(run with RUST_MACRO_BACKTRACE=1 for more info)"].join(" "),
|
||||
Style::NoStyle),
|
||||
],
|
||||
span: MultiSpan::new(),
|
||||
render_span: None,
|
||||
});
|
||||
|
@ -1242,7 +1245,7 @@ impl EmitterWriter {
|
|||
if let Some(ref cm) = self.cm {
|
||||
for trace in sp.macro_backtrace().iter().rev() {
|
||||
let line_offset = buffer.num_lines();
|
||||
|
||||
|
||||
let mut diag_string =
|
||||
format!("in this expansion of {}", trace.macro_decl_name);
|
||||
if let Some(def_site_span) = trace.def_site_span {
|
||||
|
|
20
src/test/ui/macro_backtrace/auxiliary/ping.rs
Normal file
20
src/test/ui/macro_backtrace/auxiliary/ping.rs
Normal file
|
@ -0,0 +1,20 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// Test that the macro backtrace facility works (supporting file)
|
||||
|
||||
// a non-local macro
|
||||
#[macro_export]
|
||||
macro_rules! ping {
|
||||
() => {
|
||||
pong!();
|
||||
}
|
||||
}
|
||||
|
25
src/test/ui/macro_backtrace/main.rs
Normal file
25
src/test/ui/macro_backtrace/main.rs
Normal file
|
@ -0,0 +1,25 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// Test that the macro backtrace facility works
|
||||
// aux-build:ping.rs
|
||||
// rustc-env:RUST_MACRO_BACKTRACE
|
||||
|
||||
#[macro_use] extern crate ping;
|
||||
|
||||
// a local macro
|
||||
macro_rules! pong {
|
||||
() => { syntax error };
|
||||
}
|
||||
|
||||
fn main() {
|
||||
pong!();
|
||||
ping!();
|
||||
}
|
21
src/test/ui/macro_backtrace/main.stderr
Normal file
21
src/test/ui/macro_backtrace/main.stderr
Normal file
|
@ -0,0 +1,21 @@
|
|||
error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error`
|
||||
--> $DIR/main.rs:19:20
|
||||
|
|
||||
19 | () => { syntax error };
|
||||
| -^^^^^ unexpected token
|
||||
| |
|
||||
| expected one of 8 possible tokens here
|
||||
$DIR/main.rs:23:5: 23:13 note: in this expansion of pong! (defined in $DIR/main.rs)
|
||||
|
||||
error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error`
|
||||
--> $DIR/main.rs:19:20
|
||||
|
|
||||
19 | () => { syntax error };
|
||||
| -^^^^^ unexpected token
|
||||
| |
|
||||
| expected one of 8 possible tokens here
|
||||
$DIR/main.rs:24:5: 24:13 note: in this expansion of ping! (defined in <ping macros>)
|
||||
<ping macros>:1:11: 1:24 note: in this expansion of pong! (defined in $DIR/main.rs)
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
Loading…
Reference in a new issue