aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMuhammad Mahad <mahadtxt@gmail.com>2023-06-29 19:24:00 +0500
committerCohenArthur <arthur.cohen@embecosm.com>2023-06-30 09:05:46 +0000
commit2e1f190573aab7b4c055999dda3f857233fd50a9 (patch)
treedfbc943843193bcaaba66587493a33c11fa28a31
parent40b4f94e9597627fa57d77a87fd8ac0a187f4a7d (diff)
downloadgcc-2e1f190573aab7b4c055999dda3f857233fd50a9.zip
gcc-2e1f190573aab7b4c055999dda3f857233fd50a9.tar.gz
gcc-2e1f190573aab7b4c055999dda3f857233fd50a9.tar.bz2
gccrs: refactored field error function
Refactored field error function into one funciton Fixes #2336 gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-pattern.cc (emit_invalid_field_error): Refactored Field Error Function (TypeCheckPattern::visit): called emit_invalid_field_error function Signed-off-by: Muhammad Mahad <mahadtxt@gmail.com>
-rw-r--r--gcc/rust/typecheck/rust-hir-type-check-pattern.cc21
1 files changed, 13 insertions, 8 deletions
diff --git a/gcc/rust/typecheck/rust-hir-type-check-pattern.cc b/gcc/rust/typecheck/rust-hir-type-check-pattern.cc
index 73a1fee..7cc269e 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-pattern.cc
+++ b/gcc/rust/typecheck/rust-hir-type-check-pattern.cc
@@ -140,6 +140,15 @@ TypeCheckPattern::visit (HIR::TupleStructPattern &pattern)
}
void
+emit_invalid_field_error (Location loc, Rust::TyTy::VariantDef *variant,
+ const std::string &name)
+{
+ rust_error_at (loc, ErrorCode ("E0026"),
+ "variant %s does not have a field named %s",
+ variant->get_identifier ().c_str (), name.c_str ());
+}
+
+void
TypeCheckPattern::visit (HIR::StructPattern &pattern)
{
TyTy::BaseType *pattern_ty = TypeCheckExpr::Resolve (&pattern.get_path ());
@@ -204,10 +213,8 @@ TypeCheckPattern::visit (HIR::StructPattern &pattern)
if (!variant->lookup_field (ident.get_identifier ().as_string (),
&field, nullptr))
{
- rust_error_at (ident.get_locus (), ErrorCode ("E0026"),
- "variant %s does not have a field named %s",
- variant->get_identifier ().c_str (),
- ident.get_identifier ().as_string ().c_str ());
+ emit_invalid_field_error (ident.get_locus (), variant,
+ ident.get_identifier ().as_string ());
break;
}
named_fields.push_back (ident.get_identifier ().as_string ());
@@ -225,10 +232,8 @@ TypeCheckPattern::visit (HIR::StructPattern &pattern)
if (!variant->lookup_field (ident.get_identifier ().as_string (),
&field, nullptr))
{
- rust_error_at (ident.get_locus (), ErrorCode ("E0026"),
- "variant %s does not have a field named %s",
- variant->get_identifier ().c_str (),
- ident.get_identifier ().as_string ().c_str ());
+ emit_invalid_field_error (ident.get_locus (), variant,
+ ident.get_identifier ().as_string ());
break;
}
named_fields.push_back (ident.get_identifier ().as_string ());