Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide a PathSegment.res in more cases #98269

Merged
merged 1 commit into from
Jun 24, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions compiler/rustc_resolve/src/ident.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1502,6 +1502,7 @@ impl<'a> Resolver<'a> {
return PathResult::NonModule(PartialRes::new(Res::Err));
} else if opt_ns.is_some() && (is_last || maybe_assoc) {
self.lint_if_path_starts_with_module(finalize, path, second_binding);
record_segment_res(self, res);
return PathResult::NonModule(PartialRes::with_unresolved_segments(
res,
path.len() - i - 1,
Expand Down
4 changes: 2 additions & 2 deletions src/test/ui/error-codes/E0109.stderr
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
error[E0109]: type arguments are not allowed on this type
error[E0109]: type arguments are not allowed on builtin type `u32`
--> $DIR/E0109.rs:1:14
|
LL | type X = u32<i32>;
| --- ^^^ type argument not allowed
| |
| not allowed on this type
| not allowed on builtin type `u32`
|
help: primitive type `u32` doesn't have generic parameters
|
Expand Down
4 changes: 2 additions & 2 deletions src/test/ui/error-codes/E0110.stderr
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
error[E0109]: lifetime arguments are not allowed on this type
error[E0109]: lifetime arguments are not allowed on builtin type `u32`
--> $DIR/E0110.rs:1:14
|
LL | type X = u32<'static>;
| --- ^^^^^^^ lifetime argument not allowed
| |
| not allowed on this type
| not allowed on builtin type `u32`
|
help: primitive type `u32` doesn't have generic parameters
|
Expand Down
4 changes: 2 additions & 2 deletions src/test/ui/inference/cannot-infer-closure-circular.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ fn main() {
// error handles this gracefully, and in particular doesn't generate an extra
// note about the `?` operator in the closure body, which isn't relevant to
// the inference.
let x = |r| {
let x = |r| { //~ ERROR type annotations needed for `Result<(), E>`
let v = r?;
Ok(v)
};

let _ = x(x(Ok(()))); //~ ERROR type annotations needed for `Result<(), E>`
let _ = x(x(Ok(())));
}
12 changes: 6 additions & 6 deletions src/test/ui/inference/cannot-infer-closure-circular.stderr
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
error[E0282]: type annotations needed for `Result<(), E>`
--> $DIR/cannot-infer-closure-circular.rs:12:9
--> $DIR/cannot-infer-closure-circular.rs:7:14
|
LL | let _ = x(x(Ok(())));
| ^
LL | let x = |r| {
| ^
|
help: consider giving this pattern a type, where the type for type parameter `E` is specified
help: consider giving this closure parameter an explicit type, where the type for type parameter `E` is specified
|
LL | let _: Result<(), E> = x(x(Ok(())));
| +++++++++++++++
LL | let x = |r: Result<(), E>| {
| +++++++++++++++

error: aborting due to previous error

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ fn main() {
// Tuple struct variant

Enum::<()>::TSVariant::<()>(());
//~^ ERROR type arguments are not allowed on this type [E0109]
//~^ ERROR type arguments are not allowed on tuple variant `TSVariant` [E0109]

Alias::TSVariant::<()>(());
//~^ ERROR type arguments are not allowed on this type [E0109]
Expand All @@ -70,7 +70,7 @@ fn main() {
// Struct variant

Enum::<()>::SVariant::<()> { v: () };
//~^ ERROR type arguments are not allowed on this type [E0109]
//~^ ERROR type arguments are not allowed on variant `SVariant` [E0109]

Alias::SVariant::<()> { v: () };
//~^ ERROR type arguments are not allowed on this type [E0109]
Expand All @@ -88,7 +88,7 @@ fn main() {
// Unit variant

Enum::<()>::UVariant::<()>;
//~^ ERROR type arguments are not allowed on this type [E0109]
//~^ ERROR type arguments are not allowed on unit variant `UVariant` [E0109]

Alias::UVariant::<()>;
//~^ ERROR type arguments are not allowed on this type [E0109]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -272,13 +272,13 @@ LL | Self::<()>::UVariant::<()>;
| |
| not allowed on this type

error[E0109]: type arguments are not allowed on this type
error[E0109]: type arguments are not allowed on tuple variant `TSVariant`
--> $DIR/enum-variant-generic-args.rs:54:29
|
LL | Enum::<()>::TSVariant::<()>(());
| --------- ^^ type argument not allowed
| |
| not allowed on this type
| not allowed on tuple variant `TSVariant`

error[E0109]: type arguments are not allowed on this type
--> $DIR/enum-variant-generic-args.rs:57:24
Expand Down Expand Up @@ -340,13 +340,13 @@ LL | AliasFixed::<()>::TSVariant::<()>(());
| |
| not allowed on this type

error[E0109]: type arguments are not allowed on this type
error[E0109]: type arguments are not allowed on variant `SVariant`
--> $DIR/enum-variant-generic-args.rs:72:28
|
LL | Enum::<()>::SVariant::<()> { v: () };
| -------- ^^ type argument not allowed
| |
| not allowed on this type
| not allowed on variant `SVariant`
|
= note: enum variants can't have type parameters

Expand Down Expand Up @@ -438,13 +438,13 @@ LL - AliasFixed::<()>::SVariant::<()> { v: () };
LL + AliasFixed::<()>::SVariant { v: () };
|

error[E0109]: type arguments are not allowed on this type
error[E0109]: type arguments are not allowed on unit variant `UVariant`
--> $DIR/enum-variant-generic-args.rs:90:28
|
LL | Enum::<()>::UVariant::<()>;
| -------- ^^ type argument not allowed
| |
| not allowed on this type
| not allowed on unit variant `UVariant`

error[E0109]: type arguments are not allowed on this type
--> $DIR/enum-variant-generic-args.rs:93:23
Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/type/issue-91268.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// error-pattern: this file contains an unclosed delimiter
// error-pattern: cannot find type `ţ` in this scope
// error-pattern: parenthesized type parameters may only be used with a `Fn` trait
// error-pattern: type arguments are not allowed on this type
// error-pattern: type arguments are not allowed on builtin type `u8`
// error-pattern: mismatched types
// ignore-tidy-trailing-newlines
// `ţ` must be the last character in this file, it cannot be followed by a newline
Expand Down
4 changes: 2 additions & 2 deletions src/test/ui/type/issue-91268.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@ help: use angle brackets instead
LL | 0: u8<ţ>
| ~ +

error[E0109]: type arguments are not allowed on this type
error[E0109]: type arguments are not allowed on builtin type `u8`
--> $DIR/issue-91268.rs:9:11
|
LL | 0: u8(ţ
| -- ^ type argument not allowed
| |
| not allowed on this type
| not allowed on builtin type `u8`
|
help: primitive type `u8` doesn't have generic parameters
|
Expand Down
44 changes: 22 additions & 22 deletions src/test/ui/typeck/prim-with-args.fixed
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
// run-rustfix
fn main() {

let _x: isize; //~ ERROR type arguments are not allowed on this type
let _x: i8; //~ ERROR type arguments are not allowed on this type
let _x: i16; //~ ERROR type arguments are not allowed on this type
let _x: i32; //~ ERROR type arguments are not allowed on this type
let _x: i64; //~ ERROR type arguments are not allowed on this type
let _x: usize; //~ ERROR type arguments are not allowed on this type
let _x: u8; //~ ERROR type arguments are not allowed on this type
let _x: u16; //~ ERROR type arguments are not allowed on this type
let _x: u32; //~ ERROR type arguments are not allowed on this type
let _x: u64; //~ ERROR type arguments are not allowed on this type
let _x: char; //~ ERROR type arguments are not allowed on this type
let _x: isize; //~ ERROR type arguments are not allowed on builtin type
let _x: i8; //~ ERROR type arguments are not allowed on builtin type
let _x: i16; //~ ERROR type arguments are not allowed on builtin type
let _x: i32; //~ ERROR type arguments are not allowed on builtin type
let _x: i64; //~ ERROR type arguments are not allowed on builtin type
let _x: usize; //~ ERROR type arguments are not allowed on builtin type
let _x: u8; //~ ERROR type arguments are not allowed on builtin type
let _x: u16; //~ ERROR type arguments are not allowed on builtin type
let _x: u32; //~ ERROR type arguments are not allowed on builtin type
let _x: u64; //~ ERROR type arguments are not allowed on builtin type
let _x: char; //~ ERROR type arguments are not allowed on builtin type

let _x: isize; //~ ERROR lifetime arguments are not allowed on this type
let _x: i8; //~ ERROR lifetime arguments are not allowed on this type
let _x: i16; //~ ERROR lifetime arguments are not allowed on this type
let _x: i32; //~ ERROR lifetime arguments are not allowed on this type
let _x: i64; //~ ERROR lifetime arguments are not allowed on this type
let _x: usize; //~ ERROR lifetime arguments are not allowed on this type
let _x: u8; //~ ERROR lifetime arguments are not allowed on this type
let _x: u16; //~ ERROR lifetime arguments are not allowed on this type
let _x: u32; //~ ERROR lifetime arguments are not allowed on this type
let _x: u64; //~ ERROR lifetime arguments are not allowed on this type
let _x: char; //~ ERROR lifetime arguments are not allowed on this type
let _x: isize; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: i8; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: i16; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: i32; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: i64; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: usize; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: u8; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: u16; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: u32; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: u64; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: char; //~ ERROR lifetime arguments are not allowed on builtin type

}
44 changes: 22 additions & 22 deletions src/test/ui/typeck/prim-with-args.rs
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
// run-rustfix
fn main() {

let _x: isize<isize>; //~ ERROR type arguments are not allowed on this type
let _x: i8<isize>; //~ ERROR type arguments are not allowed on this type
let _x: i16<isize>; //~ ERROR type arguments are not allowed on this type
let _x: i32<isize>; //~ ERROR type arguments are not allowed on this type
let _x: i64<isize>; //~ ERROR type arguments are not allowed on this type
let _x: usize<isize>; //~ ERROR type arguments are not allowed on this type
let _x: u8<isize>; //~ ERROR type arguments are not allowed on this type
let _x: u16<isize>; //~ ERROR type arguments are not allowed on this type
let _x: u32<isize>; //~ ERROR type arguments are not allowed on this type
let _x: u64<isize>; //~ ERROR type arguments are not allowed on this type
let _x: char<isize>; //~ ERROR type arguments are not allowed on this type
let _x: isize<isize>; //~ ERROR type arguments are not allowed on builtin type
let _x: i8<isize>; //~ ERROR type arguments are not allowed on builtin type
let _x: i16<isize>; //~ ERROR type arguments are not allowed on builtin type
let _x: i32<isize>; //~ ERROR type arguments are not allowed on builtin type
let _x: i64<isize>; //~ ERROR type arguments are not allowed on builtin type
let _x: usize<isize>; //~ ERROR type arguments are not allowed on builtin type
let _x: u8<isize>; //~ ERROR type arguments are not allowed on builtin type
let _x: u16<isize>; //~ ERROR type arguments are not allowed on builtin type
let _x: u32<isize>; //~ ERROR type arguments are not allowed on builtin type
let _x: u64<isize>; //~ ERROR type arguments are not allowed on builtin type
let _x: char<isize>; //~ ERROR type arguments are not allowed on builtin type

let _x: isize<'static>; //~ ERROR lifetime arguments are not allowed on this type
let _x: i8<'static>; //~ ERROR lifetime arguments are not allowed on this type
let _x: i16<'static>; //~ ERROR lifetime arguments are not allowed on this type
let _x: i32<'static>; //~ ERROR lifetime arguments are not allowed on this type
let _x: i64<'static>; //~ ERROR lifetime arguments are not allowed on this type
let _x: usize<'static>; //~ ERROR lifetime arguments are not allowed on this type
let _x: u8<'static>; //~ ERROR lifetime arguments are not allowed on this type
let _x: u16<'static>; //~ ERROR lifetime arguments are not allowed on this type
let _x: u32<'static>; //~ ERROR lifetime arguments are not allowed on this type
let _x: u64<'static>; //~ ERROR lifetime arguments are not allowed on this type
let _x: char<'static>; //~ ERROR lifetime arguments are not allowed on this type
let _x: isize<'static>; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: i8<'static>; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: i16<'static>; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: i32<'static>; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: i64<'static>; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: usize<'static>; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: u8<'static>; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: u16<'static>; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: u32<'static>; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: u64<'static>; //~ ERROR lifetime arguments are not allowed on builtin type
let _x: char<'static>; //~ ERROR lifetime arguments are not allowed on builtin type

}
Loading