From 96756f1b1df4729fd00ca96a59971b3997c91934 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Mon, 5 Apr 2021 22:08:16 +0200 Subject: Add Lifetime to TyKind::Ref --- crates/hir_ty/src/traits/chalk/mapping.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'crates/hir_ty/src/traits/chalk/mapping.rs') diff --git a/crates/hir_ty/src/traits/chalk/mapping.rs b/crates/hir_ty/src/traits/chalk/mapping.rs index 3047fbacb..26f8fdbdc 100644 --- a/crates/hir_ty/src/traits/chalk/mapping.rs +++ b/crates/hir_ty/src/traits/chalk/mapping.rs @@ -11,7 +11,7 @@ use hir_def::{GenericDefId, TypeAliasId}; use crate::{ chalk_ext::ProjectionTyExt, db::HirDatabase, primitive::UintTy, AliasTy, CallableDefId, - Canonical, DomainGoal, FnPointer, GenericArg, InEnvironment, OpaqueTy, ProjectionTy, + Canonical, DomainGoal, FnPointer, GenericArg, InEnvironment, Lifetime, OpaqueTy, ProjectionTy, QuantifiedWhereClause, Scalar, Substitution, TraitRef, Ty, TypeWalk, WhereClause, }; @@ -22,7 +22,7 @@ impl ToChalk for Ty { type Chalk = chalk_ir::Ty; fn to_chalk(self, db: &dyn HirDatabase) -> chalk_ir::Ty { match self.into_inner() { - TyKind::Ref(m, ty) => ref_to_chalk(db, m, ty), + TyKind::Ref(m, lt, ty) => ref_to_chalk(db, m, lt, ty), TyKind::Array(ty) => array_to_chalk(db, ty), TyKind::Function(FnPointer { sig, substitution: substs, .. }) => { let substitution = chalk_ir::FnSubst(substs.0.to_chalk(db)); @@ -167,8 +167,8 @@ impl ToChalk for Ty { } chalk_ir::TyKind::Raw(mutability, ty) => TyKind::Raw(mutability, from_chalk(db, ty)), chalk_ir::TyKind::Slice(ty) => TyKind::Slice(from_chalk(db, ty)), - chalk_ir::TyKind::Ref(mutability, _lifetime, ty) => { - TyKind::Ref(mutability, from_chalk(db, ty)) + chalk_ir::TyKind::Ref(mutability, lifetime, ty) => { + TyKind::Ref(mutability, lifetime, from_chalk(db, ty)) } chalk_ir::TyKind::Str => TyKind::Str, chalk_ir::TyKind::Never => TyKind::Never, @@ -192,10 +192,10 @@ impl ToChalk for Ty { fn ref_to_chalk( db: &dyn HirDatabase, mutability: chalk_ir::Mutability, + lifetime: Lifetime, ty: Ty, ) -> chalk_ir::Ty { let arg = ty.to_chalk(db); - let lifetime = LifetimeData::Static.intern(&Interner); chalk_ir::TyKind::Ref(mutability, lifetime, arg).intern(&Interner) } -- cgit v1.2.3 From 9da191c7e07abec9d9f056fd94ee151aef7417a7 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Mon, 5 Apr 2021 22:12:40 +0200 Subject: Add Lifetime to DynTy --- crates/hir_ty/src/traits/chalk/mapping.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'crates/hir_ty/src/traits/chalk/mapping.rs') diff --git a/crates/hir_ty/src/traits/chalk/mapping.rs b/crates/hir_ty/src/traits/chalk/mapping.rs index 26f8fdbdc..791f342a1 100644 --- a/crates/hir_ty/src/traits/chalk/mapping.rs +++ b/crates/hir_ty/src/traits/chalk/mapping.rs @@ -149,6 +149,7 @@ impl ToChalk for Ty { where_clauses.bounds.binders.clone(), crate::QuantifiedWhereClauses::from_iter(&Interner, bounds), ), + lifetime: LifetimeData::Static.intern(&Interner), }) } -- cgit v1.2.3 From b98c681cb7ede9fd6a8683b1edd83a5b18502178 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Mon, 5 Apr 2021 23:01:34 +0200 Subject: Always use Static lifetimes in chalk mapping --- crates/hir_ty/src/traits/chalk/mapping.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'crates/hir_ty/src/traits/chalk/mapping.rs') diff --git a/crates/hir_ty/src/traits/chalk/mapping.rs b/crates/hir_ty/src/traits/chalk/mapping.rs index 791f342a1..128ec166a 100644 --- a/crates/hir_ty/src/traits/chalk/mapping.rs +++ b/crates/hir_ty/src/traits/chalk/mapping.rs @@ -193,10 +193,11 @@ impl ToChalk for Ty { fn ref_to_chalk( db: &dyn HirDatabase, mutability: chalk_ir::Mutability, - lifetime: Lifetime, + _lifetime: Lifetime, ty: Ty, ) -> chalk_ir::Ty { let arg = ty.to_chalk(db); + let lifetime = LifetimeData::Static.intern(&Interner); chalk_ir::TyKind::Ref(mutability, lifetime, arg).intern(&Interner) } -- cgit v1.2.3 From 08dc69599efb4961319c0118b789d3abb264b7fa Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Tue, 6 Apr 2021 10:50:55 +0200 Subject: Use a constructor function for Static lifetimes --- crates/hir_ty/src/traits/chalk/mapping.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'crates/hir_ty/src/traits/chalk/mapping.rs') diff --git a/crates/hir_ty/src/traits/chalk/mapping.rs b/crates/hir_ty/src/traits/chalk/mapping.rs index 128ec166a..9267e32b5 100644 --- a/crates/hir_ty/src/traits/chalk/mapping.rs +++ b/crates/hir_ty/src/traits/chalk/mapping.rs @@ -3,16 +3,16 @@ //! Chalk (in both directions); plus some helper functions for more specialized //! conversions. -use chalk_ir::{cast::Cast, interner::HasInterner, LifetimeData}; +use chalk_ir::{cast::Cast, interner::HasInterner}; use chalk_solve::rust_ir; use base_db::salsa::InternKey; use hir_def::{GenericDefId, TypeAliasId}; use crate::{ - chalk_ext::ProjectionTyExt, db::HirDatabase, primitive::UintTy, AliasTy, CallableDefId, - Canonical, DomainGoal, FnPointer, GenericArg, InEnvironment, Lifetime, OpaqueTy, ProjectionTy, - QuantifiedWhereClause, Scalar, Substitution, TraitRef, Ty, TypeWalk, WhereClause, + chalk_ext::ProjectionTyExt, db::HirDatabase, primitive::UintTy, static_lifetime, AliasTy, + CallableDefId, Canonical, DomainGoal, FnPointer, GenericArg, InEnvironment, Lifetime, OpaqueTy, + ProjectionTy, QuantifiedWhereClause, Scalar, Substitution, TraitRef, Ty, TypeWalk, WhereClause, }; use super::interner::*; @@ -100,7 +100,7 @@ impl ToChalk for Ty { ); let bounded_ty = chalk_ir::DynTy { bounds: chalk_ir::Binders::new(binders, where_clauses), - lifetime: LifetimeData::Static.intern(&Interner), + lifetime: static_lifetime(), }; chalk_ir::TyKind::Dyn(bounded_ty).intern(&Interner) } @@ -149,7 +149,7 @@ impl ToChalk for Ty { where_clauses.bounds.binders.clone(), crate::QuantifiedWhereClauses::from_iter(&Interner, bounds), ), - lifetime: LifetimeData::Static.intern(&Interner), + lifetime: static_lifetime(), }) } @@ -197,7 +197,7 @@ fn ref_to_chalk( ty: Ty, ) -> chalk_ir::Ty { let arg = ty.to_chalk(db); - let lifetime = LifetimeData::Static.intern(&Interner); + let lifetime = static_lifetime(); chalk_ir::TyKind::Ref(mutability, lifetime, arg).intern(&Interner) } -- cgit v1.2.3