aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend/rust-compile-pattern.h
diff options
context:
space:
mode:
authorDave Evans <dave@dmetwo.org>2023-08-24 14:10:42 -0500
committerPhilip Herron <philip.herron@embecosm.com>2023-09-12 10:20:21 +0000
commitd574b41ea1e6bfc2dff98ff01a284d72d5dd82eb (patch)
treeb4680433e02f9c3f1f99e7532472809f16af5943 /gcc/rust/backend/rust-compile-pattern.h
parent1ee78b3892f45b3a57ee3357ef8c988ad354a183 (diff)
downloadgcc-d574b41ea1e6bfc2dff98ff01a284d72d5dd82eb.zip
gcc-d574b41ea1e6bfc2dff98ff01a284d72d5dd82eb.tar.gz
gcc-d574b41ea1e6bfc2dff98ff01a284d72d5dd82eb.tar.bz2
Fix typechecking (and compilation) error for alt patterns in match expressions.
gcc/rust/ChangeLog: * backend/rust-compile-pattern.cc (CompilePatternCaseLabelExpr::visit): Add AltPattern visitor function * backend/rust-compile-pattern.h: Update CompilePatternCaseLabelExpr::visit(AltPattern&). * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Update AltPattern visitor gcc/testsuite/ChangeLog: * rust/compile/issue-2431.rs: New test. Signed-off-by: Dave Evans <dave@dmetwo.org>
Diffstat (limited to 'gcc/rust/backend/rust-compile-pattern.h')
-rw-r--r--gcc/rust/backend/rust-compile-pattern.h16
1 files changed, 2 insertions, 14 deletions
diff --git a/gcc/rust/backend/rust-compile-pattern.h b/gcc/rust/backend/rust-compile-pattern.h
index 5f02a74..78121e5 100644
--- a/gcc/rust/backend/rust-compile-pattern.h
+++ b/gcc/rust/backend/rust-compile-pattern.h
@@ -39,13 +39,7 @@ public:
void visit (HIR::TupleStructPattern &pattern) override;
void visit (HIR::WildcardPattern &pattern) override;
void visit (HIR::RangePattern &pattern) override;
-
- // unsupported
- void visit (HIR::AltPattern &pattern) override
- {
- rust_sorry_at (pattern.get_locus (),
- "alternate pattern case labels not supported");
- }
+ void visit (HIR::AltPattern &pattern) override;
// Empty visit for unused Pattern HIR nodes.
void visit (HIR::IdentifierPattern &) override {}
@@ -80,14 +74,8 @@ public:
void visit (HIR::ReferencePattern &pattern) override;
void visit (HIR::IdentifierPattern &) override;
- // unsupported
- void visit (HIR::AltPattern &pattern) override
- {
- rust_sorry_at (pattern.get_locus (),
- "alternate pattern bindings not supported");
- }
-
// Empty visit for unused Pattern HIR nodes.
+ void visit (HIR::AltPattern &) override {}
void visit (HIR::LiteralPattern &) override {}
void visit (HIR::PathInExpression &) override {}
void visit (HIR::QualifiedPathInExpression &) override {}