diff options
author | Mahmoud Mohamed <mahadelr19@gmail.com> | 2023-03-13 02:26:13 +0300 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2023-03-13 18:09:26 +0000 |
commit | f31fc7b0f6fb22e84a27dc68f69cb0fca9707879 (patch) | |
tree | 642382443b409b18df09eb1c5d981c0ca2cef5f5 /gcc/rust | |
parent | 2c1e7b55dab5564f92d890c4953f9fd387bb30d7 (diff) | |
download | gcc-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.cc | 10 |
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 |