get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.2/patches/2223285/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2223285,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2223285/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260414231905.191063-17-arthur.cohen@embecosm.com/",
    "project": {
        "id": 17,
        "url": "http://patchwork.ozlabs.org/api/1.2/projects/17/?format=api",
        "name": "GNU Compiler Collection",
        "link_name": "gcc",
        "list_id": "gcc-patches.gcc.gnu.org",
        "list_email": "gcc-patches@gcc.gnu.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260414231905.191063-17-arthur.cohen@embecosm.com>",
    "list_archive_url": null,
    "date": "2026-04-14T23:18:38",
    "name": "[COMMITTED,17/43] gccrs: Deduplicate some functions within PointerVisitor",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "6bcb752c84155354b7dd6cd806e12093cd242242",
    "submitter": {
        "id": 83476,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/83476/?format=api",
        "name": "Arthur Cohen",
        "email": "arthur.cohen@embecosm.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260414231905.191063-17-arthur.cohen@embecosm.com/mbox/",
    "series": [
        {
            "id": 499900,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/499900/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=499900",
            "date": "2026-04-14T23:18:24",
            "name": "[COMMITTED,01/43] gccrs: testsuite:Add a testcase for setup_associated_types",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/499900/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2223285/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2223285/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "gcc-patches@gcc.gnu.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "gcc-patches@gcc.gnu.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=embecosm.com header.i=@embecosm.com header.a=rsa-sha256\n header.s=google header.b=DeHmENzM;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)",
            "sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=embecosm.com header.i=@embecosm.com header.a=rsa-sha256\n header.s=google header.b=DeHmENzM",
            "sourceware.org;\n dmarc=none (p=none dis=none) header.from=embecosm.com",
            "sourceware.org; spf=pass smtp.mailfrom=embecosm.com",
            "server2.sourceware.org;\n arc=none smtp.remote-ip=209.85.128.44"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fwL0j3TQ1z1yHM\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 15 Apr 2026 09:22:45 +1000 (AEST)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id ADCA24BA23EE\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 14 Apr 2026 23:22:43 +0000 (GMT)",
            "from mail-wm1-f44.google.com (mail-wm1-f44.google.com\n [209.85.128.44])\n by sourceware.org (Postfix) with ESMTPS id 321044BA2E1C\n for <gcc-patches@gcc.gnu.org>; Tue, 14 Apr 2026 23:14:34 +0000 (GMT)",
            "by mail-wm1-f44.google.com with SMTP id\n 5b1f17b1804b1-488b8bc6bc9so44108125e9.3\n for <gcc-patches@gcc.gnu.org>; Tue, 14 Apr 2026 16:14:34 -0700 (PDT)",
            "from platypus.localdomain (176-147-231-59.abo.bbox.fr.\n [176.147.231.59]) by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-488f1dd8806sm3325945e9.3.2026.04.14.16.14.31\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 14 Apr 2026 16:14:31 -0700 (PDT)"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org ADCA24BA23EE",
            "OpenDKIM Filter v2.11.0 sourceware.org 321044BA2E1C"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 321044BA2E1C",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 321044BA2E1C",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776208474; cv=none;\n b=aMdi2HaCdUSY3b1t9AapRQlQUOiM1dIzd65ojVwV7W2j5bFE1vtHczxHP6SRCEt/aIS854pt6Z8tdHEYbwrXKjxD72MO2etmeyGqCT6pq66ErePBzPCwzsaN/uPRMSObEKWnVsFI437M92dj6D2fkVITqahi54WA4Gw601u7GqI=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776208474; c=relaxed/simple;\n bh=Cn3krLYYa7cqyMBJkSNw7jQa6tgo2mEheiGBX3yin8U=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=QGcUF9ii8WieFl0h6QWx9hTjuEec+Vs2kbvayEApkDQAR5TLD+vSIKjh3uFpXSGqYPNNxQ9zN5WiDyPXSp9CD73+oTjHubuuIFUDgU6kgnzKAQyCuSrOZUG2XuTAWlRlL4PL+ZN2kdLoZuHZ4FYFu1BgRgzJrZk2Vf+b7qVznF4=",
        "ARC-Authentication-Results": "i=1; server2.sourceware.org",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=embecosm.com; s=google; t=1776208473; x=1776813273; darn=gcc.gnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=xpy2BHCVg9POfIQWDCouc8mInuKoi/QLSoY2JPbrpaU=;\n b=DeHmENzMFAY0r9DO41JV8f6YNbx1xn8WPZuuHE6UfBhpTEnCWAmZ/mJkcGqNarzyd/\n s1xTwLVFlYHAzESEGc2isqwG86Ja3VbYfSPupolvASmRgNbz6fv83EeSQWpdyvXxuUMc\n h1GaXUS8oV2O/LnshGIG7v721dJxsKxWnJ2bZ2IHv8hcLs+8vkcKxCi9HC4XX29cQy+Y\n g1TPIb5OsB23gO065WESromHQ2iSKjXk0fsw4alSnKCQVLfsEmonp16oikAYIkQg4Opj\n amNueNSMcOVILeM2O9hsCQfIi6lzhVm5gbkTQ74F18jRhTKtKb/Ebe+4TK7Y68glrBsQ\n JdFg==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776208473; x=1776813273;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=xpy2BHCVg9POfIQWDCouc8mInuKoi/QLSoY2JPbrpaU=;\n b=RM6UkvpGAd9sn8S+BnGNZ26zMXSUxjocfC2INc/h1njiKRyPRheDeVoruSyBH8jWGg\n ztHgg6IA665WRSL/AR3KaMHyWTQlwtA7n23FzID3v/MfTVVW9Gqrbfi+yCJtI1Y25UGv\n CcRqL64gVdVTFpSpf25PmjAxTE7H2xOuNsElFZWGCxpCe76qDX5GU6pH/Lp0KRLcaKa+\n djzX2HdHS8a1xSDaa5LcolToP9dNXZu9dngHycOmFkZ254wsGaVgS+X02yNyRhTypawR\n lGAv9FJbN91TRYCYq2ugGJefAaAbnF29qkGnhoCR2XgTxPakw+a8XQdQSbfH1pQvbRFl\n KaEg==",
        "X-Gm-Message-State": "AOJu0Yy6GgV4lRJ5Z/Siygs5oxgoDSxXupiVyCMtG3rCk4W/Iv2rK+ww\n /6/HTGctcxIjWZBPNo99iLOKRX2UGRaH56whirphispcnZBi/4JjmXYwqvG3Kx2dnAZ/peZmQpo\n 34uh2cQ==",
        "X-Gm-Gg": "AeBDiev9p1jBJwauWAcI7qyvWZwG4Wfnh8SIlxZiMBNTND4sH4HGECLE+A87dSavzdk\n zfK1pv7qdIFCsRFSnSzUmKAUH4iItFMICcyqd8R5F3h754c8z+qTwOMgm6NFGZqlx+ynEfJnopq\n LkO9HHYBjyxLgqErjlARCXfEEDMdMXEVt7Hg3Qv3Hiy/78wwgHWWpUaip5YT5s4z0ducKarslWS\n 46MNmUbgURyBHaDu+APHLpV8h3awc3n/3Vhk8rMRVgiXfwreioW5WRF2TJLXrF2AI+uioT0g37y\n bX3PsuZqyiiudu0Ut63K79gniCtY6fn7/9hXq+IWNkzhrP3qKpHOhx+CxSZgb6D7/bfekKmBafZ\n PKQ+4tkF7cf068B5qtNMMgLj2vZBpy2dk1mopgAEtYlfewJTNrDvGXsD2Xa0gGDIU0ZY26ew3+s\n gtNyq3rM3+NBwkZAqAghPMDcPUx77q3oj2HQXDj0r7gfJc05JaqeCmj1vfzpz85EXIKcXaxWPRn\n jZ10g==",
        "X-Received": "by 2002:a05:600c:890e:b0:483:6d4a:7e6d with SMTP id\n 5b1f17b1804b1-488d6ad4a72mr173152725e9.30.1776208472762;\n Tue, 14 Apr 2026 16:14:32 -0700 (PDT)",
        "From": "arthur.cohen@embecosm.com",
        "To": "gcc-patches@gcc.gnu.org",
        "Cc": "gcc-rust@gcc.gnu.org,\n Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>",
        "Subject": "[COMMITTED 17/43] gccrs: Deduplicate some functions within\n PointerVisitor",
        "Date": "Wed, 15 Apr 2026 01:18:38 +0200",
        "Message-ID": "<20260414231905.191063-17-arthur.cohen@embecosm.com>",
        "X-Mailer": "git-send-email 2.50.1",
        "In-Reply-To": "<20260414231905.191063-1-arthur.cohen@embecosm.com>",
        "References": "<20260414231905.191063-1-arthur.cohen@embecosm.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "gcc-patches@gcc.gnu.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "Gcc-patches mailing list <gcc-patches.gcc.gnu.org>",
        "List-Unsubscribe": "<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>",
        "List-Archive": "<https://gcc.gnu.org/pipermail/gcc-patches/>",
        "List-Post": "<mailto:gcc-patches@gcc.gnu.org>",
        "List-Help": "<mailto:gcc-patches-request@gcc.gnu.org?subject=help>",
        "List-Subscribe": "<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>",
        "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"
    },
    "content": "From: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>\n\nSome functions within the PointerVisitor were obvious duplicate from the\ninherited DefaultASTVisitor.\n\ngcc/rust/ChangeLog:\n\n\t* ast/rust-ast-pointer-visitor.cc (PointerVisitor::visit): Remove\n\tduplicated functions.\n\t* ast/rust-ast-pointer-visitor.h: Remove duplicated function\n\tprototypes.\n\nSigned-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>\n---\n gcc/rust/ast/rust-ast-pointer-visitor.cc | 416 -----------------------\n gcc/rust/ast/rust-ast-pointer-visitor.h  |  58 ----\n 2 files changed, 474 deletions(-)",
    "diff": "diff --git a/gcc/rust/ast/rust-ast-pointer-visitor.cc b/gcc/rust/ast/rust-ast-pointer-visitor.cc\nindex d403ef61578..40df7a08f4b 100644\n--- a/gcc/rust/ast/rust-ast-pointer-visitor.cc\n+++ b/gcc/rust/ast/rust-ast-pointer-visitor.cc\n@@ -154,47 +154,6 @@ PointerVisitor::visit (AST::QualifiedPathType &path)\n     visit (path.get_as_type_path ());\n }\n \n-void\n-PointerVisitor::visit (AST::QualifiedPathInType &path)\n-{\n-  visit (path.get_qualified_path_type ());\n-  visit (path.get_associated_segment ());\n-\n-  for (auto &segment : path.get_segments ())\n-    visit (segment);\n-}\n-\n-void\n-PointerVisitor::visit (AST::LiteralExpr &expr)\n-{\n-  visit_outer_attrs (expr);\n-}\n-\n-void\n-PointerVisitor::visit (AST::AttrInputLiteral &attr_input)\n-{\n-  visit (attr_input.get_literal ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::AttrInputMacro &attr_input)\n-{\n-  visit (attr_input.get_macro ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::MetaItemLitExpr &meta_item)\n-{\n-  visit (meta_item.get_literal ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::SimplePath &path)\n-{\n-  for (auto &segment : path.get_segments ())\n-    visit (segment);\n-}\n-\n void\n PointerVisitor::visit (AST::MetaItemPathExpr &meta_item)\n {\n@@ -332,18 +291,6 @@ PointerVisitor::visit (AST::TupleIndexExpr &expr)\n   reseat (expr.get_tuple_expr_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::StructExprStruct &expr)\n-{\n-  visit_outer_attrs (expr);\n-  visit_inner_attrs (expr);\n-  visit (expr.get_struct_name ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::StructExprFieldIdentifier &field)\n-{}\n-\n void\n PointerVisitor::visit (AST::StructExprFieldIdentifierValue &field)\n {\n@@ -362,27 +309,6 @@ PointerVisitor::visit (AST::StructBase &base)\n   reseat (base.get_base_struct_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::StructExprStructFields &expr)\n-{\n-  visit_outer_attrs (expr);\n-  visit_inner_attrs (expr);\n-  visit (expr.get_struct_name ());\n-  if (expr.has_struct_base ())\n-    visit (expr.get_struct_base ());\n-  for (auto &field : expr.get_fields ())\n-    visit (field);\n-}\n-\n-void\n-PointerVisitor::visit (AST::StructExprStructBase &expr)\n-{\n-  visit_outer_attrs (expr);\n-  visit_inner_attrs (expr);\n-  visit (expr.get_struct_name ());\n-  visit (expr.get_struct_base ());\n-}\n-\n void\n PointerVisitor::visit (AST::CallExpr &expr)\n {\n@@ -438,12 +364,6 @@ PointerVisitor::visit (AST::BlockExpr &expr)\n     reseat (expr.get_tail_expr_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::ConstBlock &expr)\n-{\n-  visit (expr.get_const_expr ());\n-}\n-\n void\n PointerVisitor::visit (AST::AnonConst &expr)\n {\n@@ -512,10 +432,6 @@ PointerVisitor::visit (AST::RangeToExpr &expr)\n   reseat (expr.get_to_expr_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::RangeFullExpr &expr)\n-{}\n-\n void\n PointerVisitor::visit (AST::RangeFromToInclExpr &expr)\n {\n@@ -558,12 +474,6 @@ PointerVisitor::visit (AST::UnsafeBlockExpr &expr)\n   reseat (expr.get_block_expr_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::LoopLabel &label)\n-{\n-  visit (label.get_lifetime ());\n-}\n-\n void\n PointerVisitor::visit (AST::LoopExpr &expr)\n {\n@@ -615,13 +525,6 @@ PointerVisitor::visit (AST::IfExpr &expr)\n   visit (expr.get_if_block ());\n }\n \n-void\n-PointerVisitor::visit (AST::IfExprConseqElse &expr)\n-{\n-  visit (reinterpret_cast<AST::IfExpr &> (expr));\n-  visit (expr.get_else_block ());\n-}\n-\n void\n PointerVisitor::visit (AST::IfLetExpr &expr)\n {\n@@ -631,13 +534,6 @@ PointerVisitor::visit (AST::IfLetExpr &expr)\n   visit (expr.get_if_block ());\n }\n \n-void\n-PointerVisitor::visit (AST::IfLetExprConseqElse &expr)\n-{\n-  visit (reinterpret_cast<AST::IfLetExpr &> (expr));\n-  visit (expr.get_else_block ());\n-}\n-\n void\n PointerVisitor::visit (AST::MatchArm &arm)\n {\n@@ -749,14 +645,6 @@ PointerVisitor::visit (AST::TypeParam &param)\n     reseat (param.get_type_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::LifetimeWhereClauseItem &item)\n-{\n-  visit (item.get_lifetime ());\n-  for (auto &bound : item.get_lifetime_bounds ())\n-    visit (bound);\n-}\n-\n void\n PointerVisitor::visit (AST::TypeBoundWhereClauseItem &item)\n {\n@@ -768,20 +656,6 @@ PointerVisitor::visit (AST::TypeBoundWhereClauseItem &item)\n     visit (param);\n }\n \n-void\n-PointerVisitor::visit (AST::Visibility &vis)\n-{\n-  if (vis.has_path ())\n-    visit (vis.get_path ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::WhereClause &where)\n-{\n-  for (auto &item : where.get_items ())\n-    visit (item);\n-}\n-\n void\n PointerVisitor::visit (AST::FunctionParam &param)\n {\n@@ -814,38 +688,6 @@ PointerVisitor::visit (AST::Module &module)\n     reseat (item);\n }\n \n-void\n-PointerVisitor::visit (AST::ExternCrate &crate)\n-{\n-  visit_outer_attrs (crate);\n-  visit (crate.get_visibility ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::UseTreeGlob &use_tree)\n-{\n-  visit (use_tree.get_path ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::UseTreeList &use_tree)\n-{\n-  visit (use_tree.get_path ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::UseTreeRebind &use_tree)\n-{\n-  visit (use_tree.get_path ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::UseDeclaration &use_decl)\n-{\n-  visit (use_decl.get_visibility ());\n-  visit (use_decl.get_tree ());\n-}\n-\n void\n PointerVisitor::visit_function_params (AST::Function &function)\n {\n@@ -892,19 +734,6 @@ PointerVisitor::visit (AST::StructField &field)\n   reseat (field.get_field_type_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::StructStruct &struct_item)\n-{\n-  visit_outer_attrs (struct_item);\n-  visit (struct_item.get_visibility ());\n-  for (auto &generic : struct_item.get_generic_params ())\n-    visit (generic);\n-  if (struct_item.has_where_clause ())\n-    visit (struct_item.get_where_clause ());\n-  for (auto &field : struct_item.get_fields ())\n-    visit (field);\n-}\n-\n void\n PointerVisitor::visit (AST::TupleField &field)\n {\n@@ -913,42 +742,6 @@ PointerVisitor::visit (AST::TupleField &field)\n   reseat (field.get_field_type_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::TupleStruct &tuple_struct)\n-{\n-  visit_outer_attrs (tuple_struct);\n-  visit (tuple_struct.get_visibility ());\n-  for (auto &generic : tuple_struct.get_generic_params ())\n-    visit (generic);\n-  if (tuple_struct.has_where_clause ())\n-    visit (tuple_struct.get_where_clause ());\n-  for (auto &field : tuple_struct.get_fields ())\n-    visit (field);\n-}\n-\n-void\n-PointerVisitor::visit (AST::EnumItem &item)\n-{\n-  visit_outer_attrs (item);\n-  visit (item.get_visibility ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::EnumItemTuple &item)\n-{\n-  PointerVisitor::visit (static_cast<EnumItem &> (item));\n-  for (auto &field : item.get_tuple_fields ())\n-    visit (field);\n-}\n-\n-void\n-PointerVisitor::visit (AST::EnumItemStruct &item)\n-{\n-  PointerVisitor::visit (static_cast<EnumItem &> (item));\n-  for (auto &field : item.get_struct_fields ())\n-    visit (field);\n-}\n-\n void\n PointerVisitor::visit (AST::EnumItemDiscriminant &item)\n {\n@@ -956,32 +749,6 @@ PointerVisitor::visit (AST::EnumItemDiscriminant &item)\n   reseat (item.get_expr_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::Enum &enum_item)\n-{\n-  visit_outer_attrs (enum_item);\n-  visit (enum_item.get_visibility ());\n-  for (auto &generic : enum_item.get_generic_params ())\n-    visit (generic);\n-  if (enum_item.has_where_clause ())\n-    visit (enum_item.get_where_clause ());\n-  for (auto &item : enum_item.get_variants ())\n-    visit (item);\n-}\n-\n-void\n-PointerVisitor::visit (AST::Union &union_item)\n-{\n-  visit_outer_attrs (union_item);\n-  visit (union_item.get_visibility ());\n-  for (auto &generic : union_item.get_generic_params ())\n-    visit (generic);\n-  if (union_item.has_where_clause ())\n-    visit (union_item.get_where_clause ());\n-  for (auto &variant : union_item.get_variants ())\n-    visit (variant);\n-}\n-\n void\n PointerVisitor::visit (AST::ConstantItem &const_item)\n {\n@@ -1001,14 +768,6 @@ PointerVisitor::visit (AST::StaticItem &static_item)\n   reseat (static_item.get_expr_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::TraitItemType &item)\n-{\n-  visit_outer_attrs (item);\n-  for (auto &bound : item.get_type_param_bounds ())\n-    visit (bound);\n-}\n-\n void\n PointerVisitor::visit (AST::Trait &trait)\n {\n@@ -1065,13 +824,6 @@ PointerVisitor::visit (AST::TraitImpl &impl)\n     reseat (item);\n }\n \n-void\n-PointerVisitor::visit (AST::ExternalTypeItem &item)\n-{\n-  visit_outer_attrs (item);\n-  visit (item.get_visibility ());\n-}\n-\n void\n PointerVisitor::visit (AST::ExternalStaticItem &item)\n {\n@@ -1090,87 +842,6 @@ PointerVisitor::visit (AST::ExternBlock &block)\n     reseat (item);\n }\n \n-void\n-PointerVisitor::visit (AST::MacroMatchFragment &match)\n-{}\n-\n-void\n-PointerVisitor::visit (AST::MacroMatchRepetition &match)\n-{\n-  for (auto &m : match.get_matches ())\n-    visit (m);\n-}\n-\n-void\n-PointerVisitor::visit (AST::MacroMatcher &matcher)\n-{\n-  for (auto &m : matcher.get_matches ())\n-    visit (m);\n-}\n-\n-void\n-PointerVisitor::visit (AST::MacroTranscriber &transcriber)\n-{\n-  visit (transcriber.get_token_tree ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::MacroRule &rule)\n-{\n-  visit (rule.get_matcher ());\n-  visit (rule.get_transcriber ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::MacroRulesDefinition &rules_def)\n-{\n-  visit_outer_attrs (rules_def);\n-  for (auto &rule : rules_def.get_macro_rules ())\n-    visit (rule);\n-}\n-\n-void\n-PointerVisitor::visit (AST::MacroInvocData &data)\n-{\n-  visit (data.get_path ());\n-  visit (data.get_delim_tok_tree ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::MacroInvocation &macro_invoc)\n-{\n-  visit_outer_attrs (macro_invoc);\n-  visit (macro_invoc.get_invoc_data ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::MetaItemPath &meta_item)\n-{\n-  visit (meta_item.get_path ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::MetaItemSeq &meta_item)\n-{\n-  visit (meta_item.get_path ());\n-  for (auto &inner : meta_item.get_seq ())\n-    visit (inner);\n-}\n-\n-void\n-PointerVisitor::visit (AST::MetaListPaths &meta_item)\n-{\n-  for (auto &path : meta_item.get_paths ())\n-    visit (path);\n-}\n-\n-void\n-PointerVisitor::visit (AST::MetaListNameValueStr &meta_item)\n-{\n-  for (auto &str : meta_item.get_values ())\n-    visit (str);\n-}\n-\n void\n PointerVisitor::visit (AST::IdentifierPattern &pattern)\n {\n@@ -1178,18 +849,6 @@ PointerVisitor::visit (AST::IdentifierPattern &pattern)\n     reseat (pattern.get_subpattern_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::RangePatternBoundPath &bound)\n-{\n-  visit (bound.get_path ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::RangePatternBoundQualPath &bound)\n-{\n-  visit (bound.get_qualified_path ());\n-}\n-\n void\n PointerVisitor::visit (AST::RangePattern &pattern)\n {\n@@ -1221,28 +880,6 @@ PointerVisitor::visit (AST::StructPatternFieldIdentPat &field)\n   reseat (field.get_ident_pattern_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::StructPatternFieldIdent &field)\n-{\n-  visit_outer_attrs (field);\n-}\n-\n-void\n-PointerVisitor::visit (AST::StructPatternElements &spe)\n-{\n-  for (auto &field : spe.get_struct_pattern_fields ())\n-    visit (field);\n-  for (auto &attribute : spe.get_etc_outer_attrs ())\n-    visit (attribute);\n-}\n-\n-void\n-PointerVisitor::visit (AST::StructPattern &pattern)\n-{\n-  visit (pattern.get_path ());\n-  visit (pattern.get_struct_pattern_elems ());\n-}\n-\n void\n PointerVisitor::visit (AST::TupleStructItemsNoRest &tuple_items)\n {\n@@ -1259,13 +896,6 @@ PointerVisitor::visit (AST::TupleStructItemsHasRest &tuple_items)\n     reseat (upper);\n }\n \n-void\n-PointerVisitor::visit (AST::TupleStructPattern &pattern)\n-{\n-  visit (pattern.get_path ());\n-  visit (pattern.get_items ());\n-}\n-\n void\n PointerVisitor::visit (AST::TuplePatternItemsNoRest &tuple_items)\n {\n@@ -1282,12 +912,6 @@ PointerVisitor::visit (AST::TuplePatternItemsHasRest &tuple_items)\n     reseat (upper);\n }\n \n-void\n-PointerVisitor::visit (AST::TuplePattern &pattern)\n-{\n-  visit (pattern.get_items ());\n-}\n-\n void\n PointerVisitor::visit (AST::GroupedPattern &pattern)\n {\n@@ -1310,12 +934,6 @@ PointerVisitor::visit (AST::SlicePatternItemsHasRest &items)\n     reseat (item);\n }\n \n-void\n-PointerVisitor::visit (AST::SlicePattern &pattern)\n-{\n-  visit (pattern.get_items ());\n-}\n-\n void\n PointerVisitor::visit (AST::AltPattern &pattern)\n {\n@@ -1323,10 +941,6 @@ PointerVisitor::visit (AST::AltPattern &pattern)\n     reseat (alt);\n }\n \n-void\n-PointerVisitor::visit (AST::EmptyStmt &stmt)\n-{}\n-\n void\n PointerVisitor::visit (AST::LetStmt &stmt)\n {\n@@ -1344,28 +958,6 @@ PointerVisitor::visit (AST::ExprStmt &stmt)\n   reseat (stmt.get_expr_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::TraitBound &bound)\n-{\n-  for (auto &lifetime : bound.get_for_lifetimes ())\n-    visit (lifetime);\n-  visit (bound.get_type_path ());\n-}\n-\n-void\n-PointerVisitor::visit (AST::ImplTraitType &type)\n-{\n-  for (auto &bound : type.get_type_param_bounds ())\n-    visit (bound);\n-}\n-\n-void\n-PointerVisitor::visit (AST::TraitObjectType &type)\n-{\n-  for (auto &bound : type.get_type_param_bounds ())\n-    visit (bound);\n-}\n-\n void\n PointerVisitor::visit (AST::ParenthesisedType &type)\n {\n@@ -1393,10 +985,6 @@ PointerVisitor::visit (AST::TupleType &type)\n     reseat (elem);\n }\n \n-void\n-PointerVisitor::visit (AST::NeverType &type)\n-{}\n-\n void\n PointerVisitor::visit (AST::RawPointerType &type)\n {\n@@ -1423,10 +1011,6 @@ PointerVisitor::visit (AST::SliceType &type)\n   reseat (type.get_elem_type_ptr ());\n }\n \n-void\n-PointerVisitor::visit (AST::InferredType &type)\n-{}\n-\n void\n PointerVisitor::visit (AST::MaybeNamedParam &param)\n {\ndiff --git a/gcc/rust/ast/rust-ast-pointer-visitor.h b/gcc/rust/ast/rust-ast-pointer-visitor.h\nindex 689d0c12c11..a12343e4532 100644\n--- a/gcc/rust/ast/rust-ast-pointer-visitor.h\n+++ b/gcc/rust/ast/rust-ast-pointer-visitor.h\n@@ -69,12 +69,6 @@ public:\n   void visit (AST::TypePath &path) override;\n   void visit (AST::QualifiedPathInExpression &path) override;\n   void visit (AST::QualifiedPathType &path) override;\n-  void visit (AST::QualifiedPathInType &path) override;\n-  void visit (AST::LiteralExpr &expr) override;\n-  void visit (AST::AttrInputLiteral &attr_input) override;\n-  void visit (AST::AttrInputMacro &attr_input) override;\n-  void visit (AST::MetaItemLitExpr &meta_item) override;\n-  void visit (AST::SimplePath &path) override;\n   void visit (AST::MetaItemPathExpr &meta_item) override;\n   void visit (AST::BorrowExpr &expr) override;\n   void visit (AST::DereferenceExpr &expr) override;\n@@ -93,19 +87,14 @@ public:\n   void visit (AST::ArrayIndexExpr &expr) override;\n   void visit (AST::TupleExpr &expr) override;\n   void visit (AST::TupleIndexExpr &expr) override;\n-  void visit (AST::StructExprStruct &expr) override;\n-  void visit (AST::StructExprFieldIdentifier &field) override;\n   void visit (AST::StructExprFieldIdentifierValue &field) override;\n   void visit (AST::StructExprFieldIndexValue &field) override;\n   void visit (AST::StructBase &base) override;\n-  void visit (AST::StructExprStructFields &expr) override;\n-  void visit (AST::StructExprStructBase &expr) override;\n   void visit (AST::CallExpr &expr) override;\n   void visit (AST::MethodCallExpr &expr) override;\n   void visit (AST::FieldAccessExpr &expr) override;\n   void visit (AST::ClosureExprInner &expr) override;\n   void visit (AST::BlockExpr &expr) override;\n-  void visit (AST::ConstBlock &expr) override;\n   void visit (AST::AnonConst &expr) override;\n   void visit (AST::ClosureExprInnerTyped &expr) override;\n   void visit (AST::ClosureParam &param) override;\n@@ -114,22 +103,18 @@ public:\n   void visit (AST::RangeFromToExpr &expr) override;\n   void visit (AST::RangeFromExpr &expr) override;\n   void visit (AST::RangeToExpr &expr) override;\n-  void visit (AST::RangeFullExpr &expr) override;\n   void visit (AST::RangeFromToInclExpr &expr) override;\n   void visit (AST::RangeToInclExpr &expr) override;\n   void visit (AST::ReturnExpr &expr) override;\n   void visit (AST::TryExpr &expr) override;\n   void visit (AST::BoxExpr &expr) override;\n   void visit (AST::UnsafeBlockExpr &expr) override;\n-  void visit (AST::LoopLabel &label) override;\n   void visit (AST::LoopExpr &expr) override;\n   void visit (AST::WhileLoopExpr &expr) override;\n   void visit (AST::WhileLetLoopExpr &expr) override;\n   void visit (AST::ForLoopExpr &expr) override;\n   void visit (AST::IfExpr &expr) override;\n-  void visit (AST::IfExprConseqElse &expr) override;\n   void visit (AST::IfLetExpr &expr) override;\n-  void visit (AST::IfLetExprConseqElse &expr) override;\n   void visit (AST::MatchArm &arm) override;\n   void visit (AST::MatchCase &arm) override;\n   void visit (AST::MatchExpr &expr) override;\n@@ -138,89 +123,46 @@ public:\n   void visit (AST::InlineAsm &expr) override;\n   void visit (AST::LlvmInlineAsm &expr) override;\n   void visit (AST::TypeParam &param) override;\n-  void visit (AST::LifetimeWhereClauseItem &item) override;\n   void visit (AST::TypeBoundWhereClauseItem &item) override;\n-  void visit (AST::Visibility &vis) override;\n-  void visit (AST::WhereClause &where) override;\n   void visit (AST::FunctionParam &param) override;\n   void visit (AST::SelfParam &param) override;\n   void visit (AST::Module &module) override;\n-  void visit (AST::ExternCrate &crate) override;\n-  void visit (AST::UseTreeGlob &use_tree) override;\n-  void visit (AST::UseTreeList &use_tree) override;\n-  void visit (AST::UseTreeRebind &use_tree) override;\n-  void visit (AST::UseDeclaration &use_decl) override;\n   void visit_function_params (AST::Function &function) override;\n   void visit (AST::Function &function) override;\n   void visit (AST::TypeAlias &type_alias) override;\n   void visit (AST::StructField &field) override;\n-  void visit (AST::StructStruct &struct_item) override;\n   void visit (AST::TupleField &field) override;\n-  void visit (AST::TupleStruct &tuple_struct) override;\n-  void visit (AST::EnumItem &item) override;\n-  void visit (AST::EnumItemTuple &item) override;\n-  void visit (AST::EnumItemStruct &item) override;\n   void visit (AST::EnumItemDiscriminant &item) override;\n-  void visit (AST::Enum &enum_item) override;\n-  void visit (AST::Union &union_item) override;\n   void visit (AST::ConstantItem &const_item) override;\n   void visit (AST::StaticItem &static_item) override;\n-  void visit (AST::TraitItemType &item) override;\n   void visit (AST::Trait &trait) override;\n   void visit (AST::InherentImpl &impl) override;\n   void visit (AST::TraitImpl &impl) override;\n-  void visit (AST::ExternalTypeItem &item) override;\n   void visit (AST::ExternalStaticItem &item) override;\n   void visit (AST::ExternBlock &block) override;\n-  void visit (AST::MacroMatchFragment &match) override;\n-  void visit (AST::MacroMatchRepetition &match) override;\n-  void visit (AST::MacroMatcher &matcher) override;\n-  void visit (AST::MacroTranscriber &transcriber) override;\n-  void visit (AST::MacroRule &rule) override;\n-  void visit (AST::MacroRulesDefinition &rules_def) override;\n-  void visit (AST::MacroInvocData &data) override;\n-  void visit (AST::MacroInvocation &macro_invoc) override;\n-  void visit (AST::MetaItemPath &meta_item) override;\n-  void visit (AST::MetaItemSeq &meta_item) override;\n-  void visit (AST::MetaListPaths &meta_item) override;\n-  void visit (AST::MetaListNameValueStr &meta_item) override;\n   void visit (AST::IdentifierPattern &pattern) override;\n-  void visit (AST::RangePatternBoundPath &bound) override;\n-  void visit (AST::RangePatternBoundQualPath &bound) override;\n   void visit (AST::RangePattern &pattern) override;\n   void visit (AST::ReferencePattern &pattern) override;\n   void visit (AST::StructPatternFieldTuplePat &field) override;\n   void visit (AST::StructPatternFieldIdentPat &field) override;\n-  void visit (AST::StructPatternFieldIdent &field) override;\n-  void visit (AST::StructPatternElements &spe) override;\n-  void visit (AST::StructPattern &pattern) override;\n   void visit (AST::TupleStructItemsNoRest &tuple_items) override;\n   void visit (AST::TupleStructItemsHasRest &tuple_items) override;\n-  void visit (AST::TupleStructPattern &pattern) override;\n   void visit (AST::TuplePatternItemsNoRest &tuple_items) override;\n   void visit (AST::TuplePatternItemsHasRest &tuple_items) override;\n-  void visit (AST::TuplePattern &pattern) override;\n   void visit (AST::GroupedPattern &pattern) override;\n   void visit (AST::SlicePatternItemsNoRest &items) override;\n   void visit (AST::SlicePatternItemsHasRest &items) override;\n-  void visit (AST::SlicePattern &pattern) override;\n   void visit (AST::AltPattern &pattern) override;\n-  void visit (AST::EmptyStmt &stmt) override;\n   void visit (AST::LetStmt &stmt) override;\n   void visit (AST::ExprStmt &stmt) override;\n-  void visit (AST::TraitBound &bound) override;\n-  void visit (AST::ImplTraitType &type) override;\n-  void visit (AST::TraitObjectType &type) override;\n   void visit (AST::ParenthesisedType &type) override;\n   void visit (AST::ImplTraitTypeOneBound &type) override;\n   void visit (AST::TraitObjectTypeOneBound &type) override;\n   void visit (AST::TupleType &type) override;\n-  void visit (AST::NeverType &type) override;\n   void visit (AST::RawPointerType &type) override;\n   void visit (AST::ReferenceType &type) override;\n   void visit (AST::ArrayType &type) override;\n   void visit (AST::SliceType &type) override;\n-  void visit (AST::InferredType &type) override;\n   void visit (AST::MaybeNamedParam &param) override;\n   void visit (AST::BareFunctionType &type) override;\n   void visit (AST::FormatArgs &) override;\n",
    "prefixes": [
        "COMMITTED",
        "17/43"
    ]
}