diff options
author | Muhammad Mahad <mahadtxt@gmail.com> | 2023-06-29 19:24:00 +0500 |
---|---|---|
committer | CohenArthur <arthur.cohen@embecosm.com> | 2023-06-30 09:05:46 +0000 |
commit | 2e1f190573aab7b4c055999dda3f857233fd50a9 (patch) | |
tree | dfbc943843193bcaaba66587493a33c11fa28a31 /gcc | |
parent | 40b4f94e9597627fa57d77a87fd8ac0a187f4a7d (diff) | |
download | gcc-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>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/typecheck/rust-hir-type-check-pattern.cc | 21 |
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 ()); |