aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMuhammad Mahad <mahadtxt@gmail.com>2023-06-29 19:24:00 +0500
committerArthur Cohen <arthur.cohen@embecosm.com>2024-01-16 18:49:29 +0100
commit09777a69afc66fbc102bf462a9a3d6855801e817 (patch)
tree54a36ec69698593455c8d1ff5e72dfa71b6fb920 /gcc
parentb8f4ad50394e137113bde1c91f6160034882ca94 (diff)
downloadgcc-09777a69afc66fbc102bf462a9a3d6855801e817.zip
gcc-09777a69afc66fbc102bf462a9a3d6855801e817.tar.gz
gcc-09777a69afc66fbc102bf462a9a3d6855801e817.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>
Diffstat (limited to 'gcc')
-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 7854780..a740805 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 ());