aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust
diff options
context:
space:
mode:
authorMahmoud Mohamed <mahadelr19@gmail.com>2023-03-13 02:26:13 +0300
committerPhilip Herron <philip.herron@embecosm.com>2023-03-13 18:09:26 +0000
commitf31fc7b0f6fb22e84a27dc68f69cb0fca9707879 (patch)
tree642382443b409b18df09eb1c5d981c0ca2cef5f5 /gcc/rust
parent2c1e7b55dab5564f92d890c4953f9fd387bb30d7 (diff)
downloadgcc-f31fc7b0f6fb22e84a27dc68f69cb0fca9707879.zip
gcc-f31fc7b0f6fb22e84a27dc68f69cb0fca9707879.tar.gz
gcc-f31fc7b0f6fb22e84a27dc68f69cb0fca9707879.tar.bz2
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/rust')
-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 cd0dbef..228d2dd 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