From a9430865b319ab2fc28602fe98df21146e54b7bf Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Wed, 29 Jan 2020 22:32:37 +0100 Subject: Fix crash --- crates/ra_hir_ty/src/lower.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/crates/ra_hir_ty/src/lower.rs b/crates/ra_hir_ty/src/lower.rs index 25c894c95..459b96280 100644 --- a/crates/ra_hir_ty/src/lower.rs +++ b/crates/ra_hir_ty/src/lower.rs @@ -140,10 +140,13 @@ impl Ty { ImplTraitLoweringMode::Variable => { let idx = ctx.impl_trait_counter.get(); ctx.impl_trait_counter.set(idx + 1); - let generics = - generics(ctx.db, ctx.resolver.generic_def().expect("generics in scope")); - let (self_params, list_params, impl_trait_params) = generics.provenance_split(); - assert!((idx as usize) < impl_trait_params); + let (self_params, list_params, _impl_trait_params) = if let Some(def) = ctx.resolver.generic_def() { + let generics = generics(ctx.db, def); + generics.provenance_split() + } else { + (0, 0, 0) + }; + // assert!((idx as usize) < impl_trait_params); // TODO return position impl trait Ty::Bound(idx as u32 + self_params as u32 + list_params as u32) } ImplTraitLoweringMode::Disallowed => { -- cgit v1.2.3