]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Change proc macro definition lookup to optionals
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Tue, 29 Aug 2023 13:02:21 +0000 (15:02 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 16 Jan 2024 18:04:34 +0000 (19:04 +0100)
Continue changing the api to use optionals instead of bools and double
pointers.

gcc/rust/ChangeLog:

* util/rust-hir-map.cc (Mappings::lookup_derive_proc_macro_def):
Update function to accomodate new signature.
(Mappings::lookup_bang_proc_macro_def): Likewise.
(Mappings::lookup_attribute_proc_macro_def): Likewise.
* util/rust-hir-map.h: Update function signatures.

Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
gcc/rust/util/rust-hir-map.cc
gcc/rust/util/rust-hir-map.h

index 6acec3dbe1339c12b206b5f7124cf8e3e9e8f05a..67d589cc2475488ae47114641ddb0860db1cd9a3 100644 (file)
@@ -1029,37 +1029,34 @@ Mappings::insert_attribute_proc_macro_def (NodeId id, AttributeProcMacro macro)
   procmacroAttributeMappings[id] = macro;
 }
 
-bool
-Mappings::lookup_derive_proc_macro_def (NodeId id, CustomDeriveProcMacro &macro)
+tl::optional<CustomDeriveProcMacro &>
+Mappings::lookup_derive_proc_macro_def (NodeId id)
 {
   auto it = procmacroDeriveMappings.find (id);
   if (it == procmacroDeriveMappings.end ())
-    return false;
+    return tl::nullopt;
 
-  macro = it->second;
-  return true;
+  return it->second;
 }
 
-bool
-Mappings::lookup_bang_proc_macro_def (NodeId id, BangProcMacro &macro)
+tl::optional<BangProcMacro &>
+Mappings::lookup_bang_proc_macro_def (NodeId id)
 {
   auto it = procmacroBangMappings.find (id);
   if (it == procmacroBangMappings.end ())
-    return false;
+    return tl::nullopt;
 
-  macro = it->second;
-  return true;
+  return it->second;
 }
 
-bool
-Mappings::lookup_attribute_proc_macro_def (NodeId id, AttributeProcMacro &macro)
+tl::optional<AttributeProcMacro &>
+Mappings::lookup_attribute_proc_macro_def (NodeId id)
 {
   auto it = procmacroAttributeMappings.find (id);
   if (it == procmacroAttributeMappings.end ())
-    return false;
+    return tl::nullopt;
 
-  macro = it->second;
-  return true;
+  return it->second;
 }
 
 void
index 177bcbacfc5ea888dab846bd08787fb9c0a5543c..85da280264072ea04696b4d4516558cefcadef68 100644 (file)
@@ -306,9 +306,11 @@ public:
   void insert_bang_proc_macro_def (NodeId id, BangProcMacro macro);
   void insert_attribute_proc_macro_def (NodeId id, AttributeProcMacro macro);
 
-  bool lookup_derive_proc_macro_def (NodeId id, CustomDeriveProcMacro &macro);
-  bool lookup_bang_proc_macro_def (NodeId id, BangProcMacro &macro);
-  bool lookup_attribute_proc_macro_def (NodeId id, AttributeProcMacro &macro);
+  tl::optional<CustomDeriveProcMacro &>
+  lookup_derive_proc_macro_def (NodeId id);
+  tl::optional<BangProcMacro &> lookup_bang_proc_macro_def (NodeId id);
+  tl::optional<AttributeProcMacro &>
+  lookup_attribute_proc_macro_def (NodeId id);
 
   tl::optional<CustomDeriveProcMacro &>
   lookup_derive_proc_macro_invocation (AST::SimplePath &invoc);