Skip to content

Commit

Permalink
resolve: Fix ICE in macro import error recovery
Browse files Browse the repository at this point in the history
  • Loading branch information
petrochenkov committed Oct 29, 2018
1 parent d586d5d commit dd68685
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/librustc_resolve/macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,9 @@ impl<'a, 'cl> Resolver<'a, 'cl> {
return Err(Determinacy::Determined);
}
}
Def::Err => {
return Err(Determinacy::Determined);
}
_ => panic!("expected `Def::Macro` or `Def::NonMacroAttr`"),
}

Expand Down
8 changes: 8 additions & 0 deletions src/test/ui/imports/issue-55457.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
use NonExistent; //~ ERROR unresolved import `NonExistent`
use non_existent::non_existent; //~ ERROR unresolved import `non_existent`

#[non_existent] //~ ERROR cannot determine resolution for the attribute macro `non_existent`
#[derive(NonExistent)] //~ ERROR cannot determine resolution for the derive macro `NonExistent`
struct S;

fn main() {}
31 changes: 31 additions & 0 deletions src/test/ui/imports/issue-55457.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
error[E0432]: unresolved import `NonExistent`
--> $DIR/issue-55457.rs:1:5
|
LL | use NonExistent; //~ ERROR unresolved import `NonExistent`
| ^^^^^^^^^^^ no `NonExistent` in the root. Did you mean to use `non_existent`?

error[E0432]: unresolved import `non_existent`
--> $DIR/issue-55457.rs:2:5
|
LL | use non_existent::non_existent; //~ ERROR unresolved import `non_existent`
| ^^^^^^^^^^^^ Maybe a missing `extern crate non_existent;`?

error: cannot determine resolution for the derive macro `NonExistent`
--> $DIR/issue-55457.rs:5:10
|
LL | #[derive(NonExistent)] //~ ERROR cannot determine resolution for the derive macro `NonExistent`
| ^^^^^^^^^^^
|
= note: import resolution is stuck, try simplifying macro imports

error: cannot determine resolution for the attribute macro `non_existent`
--> $DIR/issue-55457.rs:4:3
|
LL | #[non_existent] //~ ERROR cannot determine resolution for the attribute macro `non_existent`
| ^^^^^^^^^^^^
|
= note: import resolution is stuck, try simplifying macro imports

error: aborting due to 4 previous errors

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

0 comments on commit dd68685

Please sign in to comment.