Skip to content

Commit

Permalink
Rollup merge of rust-lang#82259 - osa1:issue82156, r=petrochenkov
Browse files Browse the repository at this point in the history
Fix popping singleton paths in when generating E0433

Fixes rust-lang#82156

---

This was introduced with rust-lang#72923, so pinging `@Patryk27` for reviews.
  • Loading branch information
Dylan-DPC authored Feb 19, 2021
2 parents c244546 + 9889e44 commit cc01bbe
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 6 deletions.
11 changes: 5 additions & 6 deletions compiler/rustc_resolve/src/late.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1801,7 +1801,7 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
crate_lint: CrateLint,
) -> PartialRes {
tracing::debug!(
"smart_resolve_path_fragment(id={:?},qself={:?},path={:?}",
"smart_resolve_path_fragment(id={:?}, qself={:?}, path={:?})",
id,
qself,
path
Expand Down Expand Up @@ -1841,11 +1841,10 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {

// Before we start looking for candidates, we have to get our hands
// on the type user is trying to perform invocation on; basically:
// we're transforming `HashMap::new` into just `HashMap`
let path = if let Some((_, path)) = path.split_last() {
path
} else {
return Some(parent_err);
// we're transforming `HashMap::new` into just `HashMap`.
let path = match path.split_last() {
Some((_, path)) if !path.is_empty() => path,
_ => return Some(parent_err),
};

let (mut err, candidates) =
Expand Down
3 changes: 3 additions & 0 deletions src/test/ui/resolve/issue-82156.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
fn main() {
super(); //~ ERROR failed to resolve: there are too many leading `super` keywords
}
9 changes: 9 additions & 0 deletions src/test/ui/resolve/issue-82156.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
error[E0433]: failed to resolve: there are too many leading `super` keywords
--> $DIR/issue-82156.rs:2:5
|
LL | super();
| ^^^^^ there are too many leading `super` keywords

error: aborting due to previous error

For more information about this error, try `rustc --explain E0433`.

0 comments on commit cc01bbe

Please sign in to comment.