]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: hir: Fix ReferencePattern typechecking
authorMahmoud Mohamed <mahadelr19@gmail.com>
Sun, 12 Mar 2023 23:26:13 +0000 (02:26 +0300)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 16 Jan 2024 17:21:09 +0000 (18:21 +0100)
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>
gcc/rust/typecheck/rust-hir-type-check-pattern.cc

index e4cf1a8ac9824ae888380e9e5730cfeeb775b67b..c2c39c962277af11c5171513843305ff05e6f658 100644 (file)
@@ -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