From 5ca71a19903cea277ed8a347b36cffeca6b99922 Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sun, 13 Jun 2021 13:00:34 +0200 Subject: Make block-local trait impls work As long as either the trait or the implementing type are defined in the same block. --- crates/hir_ty/src/db.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'crates/hir_ty/src/db.rs') diff --git a/crates/hir_ty/src/db.rs b/crates/hir_ty/src/db.rs index be5b9110e..b9003c413 100644 --- a/crates/hir_ty/src/db.rs +++ b/crates/hir_ty/src/db.rs @@ -5,8 +5,8 @@ use std::sync::Arc; use base_db::{impl_intern_key, salsa, CrateId, Upcast}; use hir_def::{ - db::DefDatabase, expr::ExprId, ConstParamId, DefWithBodyId, FunctionId, GenericDefId, ImplId, - LifetimeParamId, LocalFieldId, TypeParamId, VariantId, + db::DefDatabase, expr::ExprId, BlockId, ConstParamId, DefWithBodyId, FunctionId, GenericDefId, + ImplId, LifetimeParamId, LocalFieldId, TypeParamId, VariantId, }; use la_arena::ArenaMap; @@ -79,6 +79,9 @@ pub trait HirDatabase: DefDatabase + Upcast { #[salsa::invoke(TraitImpls::trait_impls_in_crate_query)] fn trait_impls_in_crate(&self, krate: CrateId) -> Arc; + #[salsa::invoke(TraitImpls::trait_impls_in_block_query)] + fn trait_impls_in_block(&self, krate: BlockId) -> Option>; + #[salsa::invoke(TraitImpls::trait_impls_in_deps_query)] fn trait_impls_in_deps(&self, krate: CrateId) -> Arc; -- cgit v1.2.3