From dae69e86c0feafd4e67bec2309c8e14b82f935ac Mon Sep 17 00:00:00 2001 From: Owen Avery Date: Tue, 27 Feb 2024 16:34:23 -0500 Subject: Ensure TupleStructPattern and TuplePattern have items Note that instances of both classes which have been moved from will have (items == nullptr). gcc/rust/ChangeLog: * ast/rust-pattern.h (class TupleStructPattern): Assert that items != nullptr. (class TuplePattern): Likewise. (TupleStructPattern::has_items): Remove. (TuplePattern::has_tuple_pattern_items): Likewise. * parse/rust-parse-impl.h (Parser::parse_ident_leading_pattern): Prevent construction of TupleStructPattern with (items == nullptr). (Parser::parse_pattern_no_alt): Likewise. * ast/rust-ast-collector.cc (TokenCollector::visit): Remove usage of TupleStructPattern::has_items. * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise. * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise. gcc/testsuite/ChangeLog: * rust/compile/pattern-struct.rs: Fix test. Signed-off-by: Owen Avery --- gcc/rust/resolve/rust-early-name-resolver.cc | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'gcc/rust/resolve') diff --git a/gcc/rust/resolve/rust-early-name-resolver.cc b/gcc/rust/resolve/rust-early-name-resolver.cc index d70f9ca..5447084 100644 --- a/gcc/rust/resolve/rust-early-name-resolver.cc +++ b/gcc/rust/resolve/rust-early-name-resolver.cc @@ -558,16 +558,6 @@ EarlyNameResolver::visit (AST::StructPattern &) void EarlyNameResolver::visit (AST::TupleStructPattern &pattern) { - if (!pattern.has_items ()) - { - rich_location rich_locus (line_table, pattern.get_locus ()); - rich_locus.add_fixit_replace ( - "function calls are not allowed in patterns"); - rust_error_at ( - rich_locus, ErrorCode::E0164, - "expected tuple struct or tuple variant, found associated function"); - return; - } pattern.get_items ()->accept_vis (*this); } -- cgit v1.1