From 97d6e36dbe56a08d9767760d0935e9d7bb78e621 Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sun, 11 Apr 2021 11:42:54 +0200 Subject: Remove assertion in impl collection This condition should always be true for *valid* code, but of course there might be invalid code or things that we can't currently resolve. Fixes #8464. --- crates/hir_ty/src/method_resolution.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'crates/hir_ty') diff --git a/crates/hir_ty/src/method_resolution.rs b/crates/hir_ty/src/method_resolution.rs index 6178b36c8..3693e3284 100644 --- a/crates/hir_ty/src/method_resolution.rs +++ b/crates/hir_ty/src/method_resolution.rs @@ -13,7 +13,6 @@ use hir_def::{ }; use hir_expand::name::Name; use rustc_hash::{FxHashMap, FxHashSet}; -use stdx::always; use crate::{ autoderef, @@ -22,8 +21,8 @@ use crate::{ primitive::{self, FloatTy, IntTy, UintTy}, static_lifetime, utils::all_super_traits, - AdtId, Canonical, CanonicalVarKinds, DebruijnIndex, ForeignDefId, HirDisplay, InEnvironment, - Interner, Scalar, Substitution, TraitEnvironment, TraitRefExt, Ty, TyBuilder, TyExt, TyKind, + AdtId, Canonical, CanonicalVarKinds, DebruijnIndex, ForeignDefId, InEnvironment, Interner, + Scalar, Substitution, TraitEnvironment, TraitRefExt, Ty, TyBuilder, TyExt, TyKind, }; /// This is used as a key for indexing impls. @@ -259,10 +258,10 @@ impl InherentImpls { let self_ty = db.impl_self_ty(impl_id); let fp = TyFingerprint::for_inherent_impl(self_ty.skip_binders()); - always!(fp.is_some(), "no fingerprint for {}", self_ty.skip_binders().display(db)); if let Some(fp) = fp { map.entry(fp).or_default().push(impl_id); } + // `fp` should only be `None` in error cases (either erroneous code or incomplete name resolution) } } -- cgit v1.2.3