From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7905) id DBDA6385770D; Tue, 16 Jan 2024 18:12:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DBDA6385770D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1705428732; bh=fMpyeME8+vCX005MfhQq4ihHjI8HsibHQCG9A1USLJQ=; h=From:To:Subject:Date:From; b=abk0NX77amnjw5Fdt1YGWnuIV9zsK3wtE8uWEloTqcZDsQS9Nw4ZLRqGhPu3VLiul MK+drazzspjnVpDInrD0XHxw+mhhTeSN2yNRAXOHT5x38OVvmTbSi+s0ZyTzptnzso CHtvHgICqzJEw/hkY6lc529zETx1aCY3kyoF98b0= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Arthur Cohen To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-7998] gccrs: Add proc macro definition insertion X-Act-Checkin: gcc X-Git-Author: Pierre-Emmanuel Patry X-Git-Refname: refs/heads/trunk X-Git-Oldrev: 2504357146d5f9e5b9b87aa9cf79dd4f14e9fcd5 X-Git-Newrev: e6cd1103050c48242923ae6f862437110331beb9 Message-Id: <20240116181212.DBDA6385770D@sourceware.org> Date: Tue, 16 Jan 2024 18:12:12 +0000 (GMT) List-Id: https://gcc.gnu.org/g:e6cd1103050c48242923ae6f862437110331beb9 commit r14-7998-ge6cd1103050c48242923ae6f862437110331beb9 Author: Pierre-Emmanuel Patry Date: Tue Aug 29 16:49:31 2023 +0200 gccrs: Add proc macro definition insertion Insert proc macro definition from extern crates. gcc/rust/ChangeLog: * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Add proc macro definition insertion. Signed-off-by: Pierre-Emmanuel Patry Diff: --- gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc index 33a20cc64c0..f24c91de922 100644 --- a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc +++ b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc @@ -104,12 +104,25 @@ TopLevel::visit (AST::ExternCrate &crate) = Analysis::Mappings::get ()->lookup_derive_proc_macros (num); auto sub_visitor = [&] () { + // TODO: Find a way to keep this part clean without the double dispatch. if (derive_macros.has_value ()) - insert_macros (derive_macros.value (), ctx); + { + insert_macros (derive_macros.value (), ctx); + for (auto ¯o : derive_macros.value ()) + Analysis::Mappings::get ()->insert_derive_proc_macro_def (macro); + } if (attribute_macros.has_value ()) - insert_macros (attribute_macros.value (), ctx); + { + insert_macros (attribute_macros.value (), ctx); + for (auto ¯o : attribute_macros.value ()) + Analysis::Mappings::get ()->insert_attribute_proc_macro_def (macro); + } if (bang_macros.has_value ()) - insert_macros (bang_macros.value (), ctx); + { + insert_macros (bang_macros.value (), ctx); + for (auto ¯o : bang_macros.value ()) + Analysis::Mappings::get ()->insert_bang_proc_macro_def (macro); + } }; if (crate.has_as_clause ())