From 7072f59fc61b8b487f301df1fe5eefbcc84672aa Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Mon, 1 Mar 2021 19:30:34 +0100 Subject: Use chalk_ir::Mutability --- crates/hir_ty/src/lower.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'crates/hir_ty/src/lower.rs') diff --git a/crates/hir_ty/src/lower.rs b/crates/hir_ty/src/lower.rs index ca06c9fe2..1b5843d48 100644 --- a/crates/hir_ty/src/lower.rs +++ b/crates/hir_ty/src/lower.rs @@ -8,6 +8,7 @@ use std::{iter, sync::Arc}; use base_db::CrateId; +use chalk_ir::Mutability; use hir_def::{ adt::StructKind, builtin_type::BuiltinType, @@ -157,7 +158,7 @@ impl Ty { } TypeRef::RawPtr(inner, mutability) => { let inner_ty = Ty::from_hir(ctx, inner); - Ty::Raw(*mutability, Substs::single(inner_ty)) + Ty::Raw(lower_to_chalk_mutability(*mutability), Substs::single(inner_ty)) } TypeRef::Array(inner) => { let inner_ty = Ty::from_hir(ctx, inner); @@ -169,7 +170,7 @@ impl Ty { } TypeRef::Reference(inner, _, mutability) => { let inner_ty = Ty::from_hir(ctx, inner); - Ty::Ref(*mutability, Substs::single(inner_ty)) + Ty::Ref(lower_to_chalk_mutability(*mutability), Substs::single(inner_ty)) } TypeRef::Placeholder => Ty::Unknown, TypeRef::Fn(params, is_varargs) => { @@ -1259,3 +1260,10 @@ pub(crate) fn return_type_impl_traits( Some(Arc::new(Binders::new(num_binders, return_type_impl_traits))) } } + +pub(crate) fn lower_to_chalk_mutability(m: hir_def::type_ref::Mutability) -> Mutability { + match m { + hir_def::type_ref::Mutability::Shared => Mutability::Not, + hir_def::type_ref::Mutability::Mut => Mutability::Mut, + } +} -- cgit v1.2.3