Make def_key and HIR parenting consistent.
This commit is contained in:
parent
17a07d71bf
commit
445b4e379c
11 changed files with 177 additions and 54 deletions
20
src/test/ui/impl-trait/impl-trait-in-macro.rs
Normal file
20
src/test/ui/impl-trait/impl-trait-in-macro.rs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
use std::fmt::Debug;
|
||||
|
||||
macro_rules! i {
|
||||
($($tr:tt)*) => { impl $($tr)* };
|
||||
}
|
||||
|
||||
fn foo(x: i!(Debug), y: i!(Debug)) -> String {
|
||||
let mut a = x;
|
||||
a = y; //~ ERROR mismatched
|
||||
format!("{:?}", a)
|
||||
}
|
||||
|
||||
trait S<T> {}
|
||||
|
||||
fn much_universe<T: S<i!(Debug)>, U: IntoIterator<Item = i!(Iterator<Item = i!(Clone)>)>>(
|
||||
_: i!(Debug + Clone),
|
||||
) {
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
20
src/test/ui/impl-trait/impl-trait-in-macro.stderr
Normal file
20
src/test/ui/impl-trait/impl-trait-in-macro.stderr
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
error[E0308]: mismatched types
|
||||
--> $DIR/impl-trait-in-macro.rs:9:9
|
||||
|
|
||||
LL | ($($tr:tt)*) => { impl $($tr)* };
|
||||
| ----
|
||||
| |
|
||||
| expected type parameter
|
||||
| found type parameter
|
||||
...
|
||||
LL | a = y;
|
||||
| ^ expected type parameter `impl Debug`, found a different type parameter `impl Debug`
|
||||
|
|
||||
= note: expected type parameter `impl Debug` (type parameter `impl Debug`)
|
||||
found type parameter `impl Debug` (type parameter `impl Debug`)
|
||||
= note: a type parameter was expected, but a different one was found; you might be missing a type parameter or trait bound
|
||||
= note: for more information, visit https://doc.rust-lang.org/book/ch10-02-traits.html#traits-as-parameters
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0308`.
|
||||
|
|
@ -6,4 +6,11 @@ fn foo(x: impl Debug, y: impl Debug) -> String {
|
|||
format!("{:?}", a)
|
||||
}
|
||||
|
||||
fn main() { }
|
||||
trait S<T> {}
|
||||
|
||||
fn much_universe<T: S<impl Debug>, U: IntoIterator<Item = impl Iterator<Item = impl Clone>>>(
|
||||
_: impl Debug + Clone,
|
||||
) {
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue