From b4c20e3589372ba1536cec1bfe7de6acd2f40a4d Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Wed, 24 Mar 2021 23:07:54 +0100 Subject: Fix chalk_ir assertion Fixes #8150. --- crates/hir_ty/src/traits/chalk.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'crates/hir_ty/src/traits') diff --git a/crates/hir_ty/src/traits/chalk.rs b/crates/hir_ty/src/traits/chalk.rs index 4019fdf17..011bef6f6 100644 --- a/crates/hir_ty/src/traits/chalk.rs +++ b/crates/hir_ty/src/traits/chalk.rs @@ -21,8 +21,8 @@ use crate::{ method_resolution::{TyFingerprint, ALL_FLOAT_FPS, ALL_INT_FPS}, to_assoc_type_id, to_chalk_trait_id, utils::generics, - AliasEq, AliasTy, BoundVar, CallableDefId, CallableSig, DebruijnIndex, FnDefId, ProjectionTy, - Substitution, TraitRef, Ty, TyKind, WhereClause, + AliasEq, AliasTy, BoundVar, CallableDefId, DebruijnIndex, FnDefId, ProjectionTy, Substitution, + TraitRef, Ty, TyKind, WhereClause, }; use mapping::{ convert_where_clauses, generic_predicate_to_inline_bound, make_binders, TypeAliasAsValue, @@ -288,9 +288,7 @@ impl<'a> chalk_solve::RustIrDatabase for ChalkContext<'a> { ) -> chalk_ir::Binders> { let sig_ty: Ty = from_chalk(self.db, substs.at(&Interner, 0).assert_ty_ref(&Interner).clone()); - let sig = CallableSig::from_substs( - &sig_ty.substs().expect("first closure param should be fn ptr"), - ); + let sig = &sig_ty.callable_sig(self.db).expect("first closure param should be fn ptr"); let io = rust_ir::FnDefInputsAndOutputDatum { argument_types: sig.params().iter().map(|ty| ty.clone().to_chalk(self.db)).collect(), return_type: sig.ret().clone().to_chalk(self.db), -- cgit v1.2.3