1
Fork 0

Fix ICE in -Zsave-analysis

This commit is contained in:
Nathan Corbyn 2020-05-18 22:48:06 +01:00
parent 9e2a6a29ce
commit ef3f2c0a7c
3 changed files with 27 additions and 1 deletions

View file

@ -620,7 +620,11 @@ impl<'l, 'tcx> SaveContext<'l, 'tcx> {
} }
pub fn get_path_res(&self, id: NodeId) -> Res { pub fn get_path_res(&self, id: NodeId) -> Res {
let hir_id = self.tcx.hir().node_id_to_hir_id(id); // FIXME(#71104)
let hir_id = match self.tcx.hir().opt_node_id_to_hir_id(id) {
Some(id) => id,
None => return Res::Err,
};
match self.tcx.hir().get(hir_id) { match self.tcx.hir().get(hir_id) {
Node::TraitRef(tr) => tr.path.res, Node::TraitRef(tr) => tr.path.res,

View file

@ -0,0 +1,7 @@
// compile-flags: -Z save-analysis
fn main() {
let _: Box<(dyn ?Sized)>;
//~^ ERROR `?Trait` is not permitted in trait object types
//~| ERROR at least one trait is required for an object type
}

View file

@ -0,0 +1,15 @@
error: `?Trait` is not permitted in trait object types
--> $DIR/issue-72267.rs:4:21
|
LL | let _: Box<(dyn ?Sized)>;
| ^^^^^^
error[E0224]: at least one trait is required for an object type
--> $DIR/issue-72267.rs:4:17
|
LL | let _: Box<(dyn ?Sized)>;
| ^^^^^^^^^^
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0224`.