Do not ICE in type-alias-impl-trait with save-analysis

This commit is contained in:
Yuki Okushi 2020-02-02 06:39:50 +09:00
parent 64184a3288
commit 9d8058fb42
3 changed files with 30 additions and 2 deletions

View file

@ -837,8 +837,11 @@ fn has_typeck_tables(tcx: TyCtxt<'_>, def_id: DefId) -> bool {
return tcx.has_typeck_tables(outer_def_id);
}
let id = tcx.hir().as_local_hir_id(def_id).unwrap();
primary_body_of(tcx, id).is_some()
if let Some(id) = tcx.hir().as_local_hir_id(def_id) {
primary_body_of(tcx, id).is_some()
} else {
false
}
}
fn used_trait_imports(tcx: TyCtxt<'_>, def_id: DefId) -> &DefIdSet {

View file

@ -0,0 +1,17 @@
// compile-flags: -Zsave-analysis
#![feature(type_alias_impl_trait)]
trait Trait {}
trait Service {
type Future: Trait;
}
struct Struct;
impl Service for Struct {
type Future = impl Trait; //~ ERROR: could not find defining uses
}
fn main() {}

View file

@ -0,0 +1,8 @@
error: could not find defining uses
--> $DIR/issue-68621.rs:14:5
|
LL | type Future = impl Trait;
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error