From 9faea2364dee4fbc9391ad233c570b70256ef002 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 13 Mar 2020 16:05:46 +0100 Subject: Use `dyn Trait` for working with databse It improves compile time in `--release` mode quite a bit, it doesn't really slow things down and, conceptually, it seems closer to what we want the physical architecture to look like (we don't want to monomorphise EVERYTHING in a single leaf crate). --- crates/ra_hir_ty/src/infer/pat.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'crates/ra_hir_ty/src/infer/pat.rs') diff --git a/crates/ra_hir_ty/src/infer/pat.rs b/crates/ra_hir_ty/src/infer/pat.rs index 7a84e47f8..baed6225b 100644 --- a/crates/ra_hir_ty/src/infer/pat.rs +++ b/crates/ra_hir_ty/src/infer/pat.rs @@ -12,9 +12,9 @@ use hir_expand::name::Name; use test_utils::tested_by; use super::{BindingMode, InferenceContext}; -use crate::{db::HirDatabase, utils::variant_data, Substs, Ty, TypeCtor}; +use crate::{utils::variant_data, Substs, Ty, TypeCtor}; -impl<'a, D: HirDatabase> InferenceContext<'a, D> { +impl<'a> InferenceContext<'a> { fn infer_tuple_struct_pat( &mut self, path: Option<&Path>, @@ -23,7 +23,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { default_bm: BindingMode, ) -> Ty { let (ty, def) = self.resolve_variant(path); - let var_data = def.map(|it| variant_data(self.db, it)); + let var_data = def.map(|it| variant_data(self.db.upcast(), it)); self.unify(&ty, expected); let substs = ty.substs().unwrap_or_else(Substs::empty); @@ -51,7 +51,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { id: PatId, ) -> Ty { let (ty, def) = self.resolve_variant(path); - let var_data = def.map(|it| variant_data(self.db, it)); + let var_data = def.map(|it| variant_data(self.db.upcast(), it)); if let Some(variant) = def { self.write_variant_resolution(id.into(), variant); } -- cgit v1.2.3