aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMahmoud Mohamed <mahadelr19@gmail.com>2023-03-13 02:26:13 +0300
committerArthur Cohen <arthur.cohen@embecosm.com>2024-01-16 18:21:09 +0100
commita042b4954051709014d88a814185e4d33ba3afa8 (patch)
tree475bec5cd3c46b7338c2392ddc0e2f6f7db8af69 /gcc
parent2046aec032f743023a5e353735255d951e2e54d6 (diff)
downloadgcc-a042b4954051709014d88a814185e4d33ba3afa8.zip
gcc-a042b4954051709014d88a814185e4d33ba3afa8.tar.gz
gcc-a042b4954051709014d88a814185e4d33ba3afa8.tar.bz2
gccrs: 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 <mahadelr19@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/typecheck/rust-hir-type-check-pattern.cc10
1 files 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 e4cf1a8..c2c39c9 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<TyTy::ReferenceType *> (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