From: Arthur Cohen Date: Wed, 16 Apr 2025 15:37:31 +0000 (+0200) Subject: gccrs: ast: builder: Allow building struct ident patterns X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ba94b1e2f8fbc34f8a8689362ed372c6b5e18dca;p=thirdparty%2Fgcc.git gccrs: ast: builder: Allow building struct ident patterns gcc/rust/ChangeLog: * ast/rust-ast-builder.cc (Builder::struct_pattern_ident_pattern): New. * ast/rust-ast-builder.h: New declaration. --- diff --git a/gcc/rust/ast/rust-ast-builder.cc b/gcc/rust/ast/rust-ast-builder.cc index 08c52b155c4..ef0f92f14ce 100644 --- a/gcc/rust/ast/rust-ast-builder.cc +++ b/gcc/rust/ast/rust-ast-builder.cc @@ -442,6 +442,14 @@ Builder::field_access (std::unique_ptr &&instance, new FieldAccessExpr (std::move (instance), field, {}, loc)); } +std::unique_ptr +Builder::struct_pattern_ident_pattern (std::string field_name, + std::unique_ptr &&pattern) +{ + return std::make_unique ( + field_name, std::move (pattern), std::vector (), loc); +} + std::unique_ptr Builder::wildcard () const { diff --git a/gcc/rust/ast/rust-ast-builder.h b/gcc/rust/ast/rust-ast-builder.h index 41ce118e771..a5115b685ac 100644 --- a/gcc/rust/ast/rust-ast-builder.h +++ b/gcc/rust/ast/rust-ast-builder.h @@ -254,6 +254,10 @@ public: std::unique_ptr field_access (std::unique_ptr &&instance, std::string field) const; + std::unique_ptr + struct_pattern_ident_pattern (std::string field_name, + std::unique_ptr &&pattern); + /* Create a wildcard pattern (`_`) */ std::unique_ptr wildcard () const; /* Create a reference pattern (`&pattern`) */