mirror of https://github.com/rust-lang/rust.git
Add a failing case to `tests/ui/macros/macro-interpolation`.
This test currently tests the successful paths for the `Interpolated`/`NtTy`/`Path` case in `parse_path_inner`, but it doesn't test the failure path.
This commit is contained in:
parent
e8f733370f
commit
4ab3e9d5b9
|
@ -1,5 +1,3 @@
|
|||
// run-pass
|
||||
|
||||
macro_rules! overly_complicated {
|
||||
($fnname:ident, $arg:ident, $ty:ty, $body:block, $val:expr, $pat:pat, $res:path) =>
|
||||
({
|
||||
|
@ -21,12 +19,14 @@ macro_rules! qpath {
|
|||
|
||||
(ty, <$type:ty as $trait:ty>::$name:ident) => {
|
||||
<$type as $trait>::$name
|
||||
//~^ ERROR expected identifier, found `!`
|
||||
};
|
||||
}
|
||||
|
||||
pub fn main() {
|
||||
let _: qpath!(path, <str as ToOwned>::Owned);
|
||||
let _: qpath!(ty, <str as ToOwned>::Owned);
|
||||
let _: qpath!(ty, <str as !>::Owned);
|
||||
|
||||
assert!(overly_complicated!(f, x, Option<usize>, { return Some(x); },
|
||||
Some(8), Some(y), y) == 8)
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
error: expected identifier, found `!`
|
||||
--> $DIR/macro-interpolation.rs:21:19
|
||||
|
|
||||
LL | <$type as $trait>::$name
|
||||
| ^^^^^^ expected identifier
|
||||
...
|
||||
LL | let _: qpath!(ty, <str as !>::Owned);
|
||||
| -----------------------------
|
||||
| |
|
||||
| this macro call doesn't expand to a type
|
||||
| in this macro invocation
|
||||
|
|
||||
= note: this error originates in the macro `qpath` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to previous error
|
||||
|
Loading…
Reference in New Issue