Point only at generic arguments when they are unexpected
This commit is contained in:
parent
7907345e58
commit
2e846d6f61
5 changed files with 29 additions and 12 deletions
|
@ -133,7 +133,15 @@ impl<'a> Parser<'a> {
|
||||||
maybe_whole!(self, NtPath, |path| {
|
maybe_whole!(self, NtPath, |path| {
|
||||||
if style == PathStyle::Mod && path.segments.iter().any(|segment| segment.args.is_some())
|
if style == PathStyle::Mod && path.segments.iter().any(|segment| segment.args.is_some())
|
||||||
{
|
{
|
||||||
self.struct_span_err(path.span, "unexpected generic arguments in path").emit();
|
self.struct_span_err(
|
||||||
|
path.segments
|
||||||
|
.iter()
|
||||||
|
.filter_map(|segment| segment.args.as_ref())
|
||||||
|
.map(|arg| arg.span())
|
||||||
|
.collect::<Vec<_>>(),
|
||||||
|
"unexpected generic arguments in path",
|
||||||
|
)
|
||||||
|
.emit();
|
||||||
}
|
}
|
||||||
path
|
path
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
error: unexpected generic arguments in path
|
error: unexpected generic arguments in path
|
||||||
--> $DIR/issue-43424.rs:10:4
|
--> $DIR/issue-43424.rs:10:10
|
||||||
|
|
|
|
||||||
LL | m!(inline<u8>);
|
LL | m!(inline<u8>);
|
||||||
| ^^^^^^^^^^
|
| ^^^^
|
||||||
|
|
||||||
error: aborting due to previous error
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
|
|
@ -16,5 +16,8 @@ fn f1() {
|
||||||
fn f2() {
|
fn f2() {
|
||||||
import! { a::b::c::S<> } //~ ERROR unexpected generic arguments in path
|
import! { a::b::c::S<> } //~ ERROR unexpected generic arguments in path
|
||||||
}
|
}
|
||||||
|
fn f3() {
|
||||||
|
import! { a::b<>::c<u8>::S<> } //~ ERROR unexpected generic arguments in path
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
|
|
@ -1,14 +1,20 @@
|
||||||
error: unexpected generic arguments in path
|
error: unexpected generic arguments in path
|
||||||
--> $DIR/import-ty-params.rs:14:15
|
--> $DIR/import-ty-params.rs:14:25
|
||||||
|
|
|
|
||||||
LL | import! { a::b::c::S<u8> }
|
LL | import! { a::b::c::S<u8> }
|
||||||
| ^^^^^^^^^^^^^^
|
| ^^^^
|
||||||
|
|
||||||
error: unexpected generic arguments in path
|
error: unexpected generic arguments in path
|
||||||
--> $DIR/import-ty-params.rs:17:15
|
--> $DIR/import-ty-params.rs:17:25
|
||||||
|
|
|
|
||||||
LL | import! { a::b::c::S<> }
|
LL | import! { a::b::c::S<> }
|
||||||
| ^^^^^^^^^^^^
|
| ^^
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
error: unexpected generic arguments in path
|
||||||
|
--> $DIR/import-ty-params.rs:20:19
|
||||||
|
|
|
||||||
|
LL | import! { a::b<>::c<u8>::S<> }
|
||||||
|
| ^^ ^^^^ ^^
|
||||||
|
|
||||||
|
error: aborting due to 3 previous errors
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
error: unexpected generic arguments in path
|
error: unexpected generic arguments in path
|
||||||
--> $DIR/visibility-ty-params.rs:6:5
|
--> $DIR/visibility-ty-params.rs:6:6
|
||||||
|
|
|
|
||||||
LL | m!{ S<u8> }
|
LL | m!{ S<u8> }
|
||||||
| ^^^^^
|
| ^^^^
|
||||||
|
|
||||||
error[E0577]: expected module, found struct `S`
|
error[E0577]: expected module, found struct `S`
|
||||||
--> $DIR/visibility-ty-params.rs:6:5
|
--> $DIR/visibility-ty-params.rs:6:5
|
||||||
|
@ -11,10 +11,10 @@ LL | m!{ S<u8> }
|
||||||
| ^^^^^ not a module
|
| ^^^^^ not a module
|
||||||
|
|
||||||
error: unexpected generic arguments in path
|
error: unexpected generic arguments in path
|
||||||
--> $DIR/visibility-ty-params.rs:10:9
|
--> $DIR/visibility-ty-params.rs:10:10
|
||||||
|
|
|
|
||||||
LL | m!{ m<> }
|
LL | m!{ m<> }
|
||||||
| ^^^
|
| ^^
|
||||||
|
|
||||||
error: aborting due to 3 previous errors
|
error: aborting due to 3 previous errors
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue