From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1643) id 009C93858C33; Tue, 14 Mar 2023 11:44:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 009C93858C33 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1678794260; bh=b2X1um3td/hvT3XC24wqGHruJKgu5nAQS5QmlB+U8jA=; h=From:To:Subject:Date:From; b=r/Yc5PIJfU4eHeaip427QFPu3k03UKpGDDZgimGcEh7DprcHAUGl9TVozWApTwC1N p+Z84Y6u1d1hXVFmm7S9V0DwJ0TXK0MPkEhLoWNMx3h96Kl+NUL5jIOX5AjxiDclzj OZKCanXzq6zmpW7EsGm14saw0l0s+BktxWj7QDWQ= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Thomas Schwinge To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/rust/master] hir: Fix ReferencePattern typechecking X-Act-Checkin: gcc X-Git-Author: Mahmoud Mohamed X-Git-Refname: refs/heads/devel/rust/master X-Git-Oldrev: 2c1e7b55dab5564f92d890c4953f9fd387bb30d7 X-Git-Newrev: f31fc7b0f6fb22e84a27dc68f69cb0fca9707879 Message-Id: <20230314114420.009C93858C33@sourceware.org> Date: Tue, 14 Mar 2023 11:44:19 +0000 (GMT) List-Id: https://gcc.gnu.org/g:f31fc7b0f6fb22e84a27dc68f69cb0fca9707879 commit f31fc7b0f6fb22e84a27dc68f69cb0fca9707879 Author: Mahmoud Mohamed Date: Mon Mar 13 02:26:13 2023 +0300 hir: Fix ReferencePattern typechecking The visit for TypeCheckPattern::visit (HIR::ReferencePattern) was missing an assignment to infered gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Add the missing infered type assignment Signed-off-by: Mahmoud Mohamed Diff: --- gcc/rust/typecheck/rust-hir-type-check-pattern.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/rust/typecheck/rust-hir-type-check-pattern.cc b/gcc/rust/typecheck/rust-hir-type-check-pattern.cc index cd0dbef40fe..228d2dd2443 100644 --- a/gcc/rust/typecheck/rust-hir-type-check-pattern.cc +++ b/gcc/rust/typecheck/rust-hir-type-check-pattern.cc @@ -355,8 +355,14 @@ TypeCheckPattern::visit (HIR::ReferencePattern &pattern) parent->as_string ().c_str ()); TyTy::ReferenceType *ref_ty_ty = static_cast (parent); - TypeCheckPattern::Resolve (pattern.get_referenced_pattern ().get (), - ref_ty_ty->get_base ()); + TyTy::BaseType *infered_base + = TypeCheckPattern::Resolve (pattern.get_referenced_pattern ().get (), + ref_ty_ty->get_base ()); + infered + = new TyTy::ReferenceType (pattern.get_pattern_mappings ().get_hirid (), + TyTy::TyVar (infered_base->get_ref ()), + pattern.is_mut () ? Mutability::Mut + : Mutability::Imm); } void