aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Cohen <arthur.cohen@embecosm.com>2025-04-16 17:39:28 +0200
committerCohenArthur <arthur.cohen@embecosm.com>2025-04-30 10:35:43 +0000
commit92323dd3bb16f21194891ce463fc865598c6980f (patch)
tree116fcc9608b1cbd16bff89e905efd8ff3a339057
parent515e1692ffe87852ae68fab2715a64e6bf0477a2 (diff)
downloadgcc-92323dd3bb16f21194891ce463fc865598c6980f.zip
gcc-92323dd3bb16f21194891ce463fc865598c6980f.tar.gz
gcc-92323dd3bb16f21194891ce463fc865598c6980f.tar.bz2
backend: Remove checks on StructFieldIdentPattern
gcc/rust/ChangeLog: * backend/rust-compile-pattern.cc (CompilePatternCheckExpr::visit): Remove old invalid checks.
-rw-r--r--gcc/rust/backend/rust-compile-pattern.cc32
1 files changed, 7 insertions, 25 deletions
diff --git a/gcc/rust/backend/rust-compile-pattern.cc b/gcc/rust/backend/rust-compile-pattern.cc
index 94844fe..671025a 100644
--- a/gcc/rust/backend/rust-compile-pattern.cc
+++ b/gcc/rust/backend/rust-compile-pattern.cc
@@ -259,34 +259,16 @@ CompilePatternCheckExpr::visit (HIR::StructPattern &pattern)
}
break;
- case HIR::StructPatternField::ItemType::IDENT_PAT: {
- HIR::StructPatternFieldIdentPat &ident
- = static_cast<HIR::StructPatternFieldIdentPat &> (*field.get ());
-
- size_t offs = 0;
- ok = variant->lookup_field (ident.get_identifier ().as_string (),
- nullptr, &offs);
- rust_assert (ok);
-
- // we may be offsetting by + 1 here since the first field in the
- // record is always the discriminator
- offs += adt->is_enum ();
- tree field_expr
- = Backend::struct_field_expression (match_scrutinee_expr, offs,
- ident.get_locus ());
+ case HIR::StructPatternField::ItemType::IDENT_PAT:
+ // we only support rebinding patterns at the moment, which always
+ // match - so do nothing
- tree check_expr_sub
- = CompilePatternCheckExpr::Compile (ident.get_pattern (),
- field_expr, ctx);
- check_expr = Backend::arithmetic_or_logical_expression (
- ArithmeticOrLogicalOperator::BITWISE_AND, check_expr,
- check_expr_sub, ident.get_pattern ().get_locus ());
- }
+ // this needs to change once we actually check that the field
+ // matches a certain value, either a literal value or a const one
break;
- case HIR::StructPatternField::ItemType::IDENT: {
- // ident pattern always matches - do nothing
- }
+ case HIR::StructPatternField::ItemType::IDENT:
+ // ident pattern always matches - do nothing
break;
}
}