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 {
|
macro_rules! overly_complicated {
|
||||||
($fnname:ident, $arg:ident, $ty:ty, $body:block, $val:expr, $pat:pat, $res:path) =>
|
($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) => {
|
(ty, <$type:ty as $trait:ty>::$name:ident) => {
|
||||||
<$type as $trait>::$name
|
<$type as $trait>::$name
|
||||||
|
//~^ ERROR expected identifier, found `!`
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn main() {
|
pub fn main() {
|
||||||
let _: qpath!(path, <str as ToOwned>::Owned);
|
let _: qpath!(path, <str as ToOwned>::Owned);
|
||||||
let _: qpath!(ty, <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); },
|
assert!(overly_complicated!(f, x, Option<usize>, { return Some(x); },
|
||||||
Some(8), Some(y), y) == 8)
|
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