{"id":2223285,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2223285/?format=json","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=json","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=json","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=json","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"]}