Add test for incorrect macro span replacement
This commit is contained in:
parent
198328ad79
commit
507b67f457
2 changed files with 45 additions and 0 deletions
16
tests/ui/span/macro-span-caller-replacement.rs
Normal file
16
tests/ui/span/macro-span-caller-replacement.rs
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
macro_rules! macro_with_format { () => {
|
||||
fn check_5(arg : usize) -> String {
|
||||
let s : &str;
|
||||
if arg < 5 {
|
||||
s = format!("{arg}");
|
||||
} else {
|
||||
s = String::new(); //~ ERROR mismatched types
|
||||
}
|
||||
String::from(s)
|
||||
}
|
||||
}}
|
||||
|
||||
fn main() {
|
||||
macro_with_format!(); //~ ERROR mismatched types
|
||||
println!( "{}", check_5(6) );
|
||||
}
|
||||
29
tests/ui/span/macro-span-caller-replacement.stderr
Normal file
29
tests/ui/span/macro-span-caller-replacement.stderr
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
error[E0308]: mismatched types
|
||||
--> $DIR/macro-span-caller-replacement.rs:5:17
|
||||
|
|
||||
LL | macro_with_format!();
|
||||
| ^^^^^^^^^^^^^^^^^^^^ expected `&str`, found `String`
|
||||
|
|
||||
= note: this error originates in the macro `format` which comes from the expansion of the macro `macro_with_format` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/macro-span-caller-replacement.rs:7:17
|
||||
|
|
||||
LL | let s : &str;
|
||||
| ---- expected due to this type
|
||||
...
|
||||
LL | s = String::new();
|
||||
| ^^^^^^^^^^^^^ expected `&str`, found `String`
|
||||
...
|
||||
LL | macro_with_format!();
|
||||
| -------------------- in this macro invocation
|
||||
|
|
||||
= note: this error originates in the macro `macro_with_format` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider borrowing here
|
||||
|
|
||||
LL | s = &String::new();
|
||||
| +
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0308`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue