aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/code_model.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2020-01-24 13:32:47 +0000
committerFlorian Diebold <[email protected]>2020-02-07 17:28:10 +0000
commit22a65b11b3a69b3dae561b34c6b28cb2107169d1 (patch)
treedd4a2174d664267fbfe93f0d737975670d3030d0 /crates/ra_hir/src/code_model.rs
parent5397f05bfe7f3b18229a65040c6685e762b2f9a3 (diff)
Introduce TyLoweringContext
Diffstat (limited to 'crates/ra_hir/src/code_model.rs')
-rw-r--r--crates/ra_hir/src/code_model.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs
index eaacf8c9e..837a3ed6d 100644
--- a/crates/ra_hir/src/code_model.rs
+++ b/crates/ra_hir/src/code_model.rs
@@ -733,7 +733,8 @@ impl Local {
733 let ty = infer[self.pat_id].clone(); 733 let ty = infer[self.pat_id].clone();
734 let resolver = def.resolver(db); 734 let resolver = def.resolver(db);
735 let krate = def.module(db).krate; 735 let krate = def.module(db).krate;
736 let environment = TraitEnvironment::lower(db, &resolver); 736 let ctx = hir_ty::TyLoweringContext { db, resolver: &resolver };
737 let environment = TraitEnvironment::lower(&ctx);
737 Type { krate, ty: InEnvironment { value: ty, environment } } 738 Type { krate, ty: InEnvironment { value: ty, environment } }
738 } 739 }
739 740
@@ -789,8 +790,9 @@ impl ImplBlock {
789 pub fn target_ty(&self, db: &impl HirDatabase) -> Type { 790 pub fn target_ty(&self, db: &impl HirDatabase) -> Type {
790 let impl_data = db.impl_data(self.id); 791 let impl_data = db.impl_data(self.id);
791 let resolver = self.id.resolver(db); 792 let resolver = self.id.resolver(db);
792 let environment = TraitEnvironment::lower(db, &resolver); 793 let ctx = hir_ty::TyLoweringContext { db, resolver: &resolver };
793 let ty = Ty::from_hir(db, &resolver, &impl_data.target_type); 794 let environment = TraitEnvironment::lower(&ctx);
795 let ty = Ty::from_hir(&ctx, &impl_data.target_type);
794 Type { 796 Type {
795 krate: self.id.lookup(db).container.module(db).krate, 797 krate: self.id.lookup(db).container.module(db).krate,
796 ty: InEnvironment { value: ty, environment }, 798 ty: InEnvironment { value: ty, environment },
@@ -844,7 +846,8 @@ pub struct Type {
844impl Type { 846impl Type {
845 fn new(db: &impl HirDatabase, krate: CrateId, lexical_env: impl HasResolver, ty: Ty) -> Type { 847 fn new(db: &impl HirDatabase, krate: CrateId, lexical_env: impl HasResolver, ty: Ty) -> Type {
846 let resolver = lexical_env.resolver(db); 848 let resolver = lexical_env.resolver(db);
847 let environment = TraitEnvironment::lower(db, &resolver); 849 let ctx = hir_ty::TyLoweringContext { db, resolver: &resolver };
850 let environment = TraitEnvironment::lower(&ctx);
848 Type { krate, ty: InEnvironment { value: ty, environment } } 851 Type { krate, ty: InEnvironment { value: ty, environment } }
849 } 852 }
850 853