diff options
author | Owen Avery <powerboat9.gamer@gmail.com> | 2024-02-27 16:34:23 -0500 |
---|---|---|
committer | CohenArthur <arthur.cohen@embecosm.com> | 2024-03-04 11:22:29 +0000 |
commit | dae69e86c0feafd4e67bec2309c8e14b82f935ac (patch) | |
tree | c19c10d15ccd16767d4048ba4877df8a64a2253c /gcc/rust/parse | |
parent | ede65c2801c05b3c60f13b1f7fb434567fb97447 (diff) | |
download | gcc-dae69e86c0feafd4e67bec2309c8e14b82f935ac.zip gcc-dae69e86c0feafd4e67bec2309c8e14b82f935ac.tar.gz gcc-dae69e86c0feafd4e67bec2309c8e14b82f935ac.tar.bz2 |
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 <powerboat9.gamer@gmail.com>
Diffstat (limited to 'gcc/rust/parse')
-rw-r--r-- | gcc/rust/parse/rust-parse-impl.h | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h index ac17545..9d9722e 100644 --- a/gcc/rust/parse/rust-parse-impl.h +++ b/gcc/rust/parse/rust-parse-impl.h @@ -10631,14 +10631,6 @@ Parser<ManagedTokenSource>::parse_pattern_no_alt () // tuple struct lexer.skip_token (); - // check if empty tuple - if (lexer.peek_token ()->get_id () == RIGHT_PAREN) - { - lexer.skip_token (); - return std::unique_ptr<AST::TupleStructPattern> ( - new AST::TupleStructPattern (std::move (path), nullptr)); - } - // parse items std::unique_ptr<AST::TupleStructItems> items = parse_tuple_struct_items (); @@ -11094,14 +11086,6 @@ Parser<ManagedTokenSource>::parse_ident_leading_pattern () // DEBUG rust_debug ("parsing tuple struct pattern"); - // check if empty tuple - if (lexer.peek_token ()->get_id () == RIGHT_PAREN) - { - lexer.skip_token (); - return std::unique_ptr<AST::TupleStructPattern> ( - new AST::TupleStructPattern (std::move (path), nullptr)); - } - // parse items std::unique_ptr<AST::TupleStructItems> items = parse_tuple_struct_items (); |