https://gcc.gnu.org/g:6614915cf4cca6d875a018587096af4519b548ac
commit r17-3104-g6614915cf4cca6d875a018587096af4519b548ac Author: Egas Ribeiro <[email protected]> Date: Tue May 19 17:52:48 2026 +0100 gccrs: rust: Add const getter overloads for HIR pattern fields These const overloads are needed by the type-aware refutability check in HIR pattern nodes, which accesses pattern fields through const references. Addresses: Rust-GCC#2082 gcc/rust/ChangeLog: * hir/tree/rust-hir-pattern.h: Add const overloads. Co-authored-by: João Novo <[email protected]> Signed-off-by: Egas Ribeiro <[email protected]> Diff: --- gcc/rust/hir/tree/rust-hir-pattern.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gcc/rust/hir/tree/rust-hir-pattern.h b/gcc/rust/hir/tree/rust-hir-pattern.h index c5997c11d6f9..bc9c63fae0a1 100644 --- a/gcc/rust/hir/tree/rust-hir-pattern.h +++ b/gcc/rust/hir/tree/rust-hir-pattern.h @@ -586,8 +586,13 @@ public: void accept_vis (HIRFullVisitor &vis) override; TupleIndex get_index () { return index; } + + TupleIndex get_index () const { return index; } + Pattern &get_tuple_pattern () { return *tuple_pattern; } + const Pattern &get_tuple_pattern () const { return *tuple_pattern; } + ItemType get_item_type () const override final { return ItemType::TUPLE_PAT; } protected: @@ -645,6 +650,7 @@ public: Identifier get_identifier () const { return ident; } Pattern &get_pattern () { return *ident_pattern; } + Pattern &get_pattern () const { return *ident_pattern; } protected: /* Use covariance to implement clone function as returning this object rather @@ -754,6 +760,12 @@ public: { return fields; } + + const std::vector<std::unique_ptr<StructPatternField>> & + get_struct_pattern_fields () const + { + return fields; + } }; // Struct pattern HIR node representation
