From de7e34bdd6c62294831d867188807216e186ed03 Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Thu, 27 Jul 2023 13:11:08 +0200 Subject: gccrs: proc_macro: Refactor attribute search Refactor attribute search with early return. Also fix the optional building an object with it's default empty constructor by explicitely using tl::null_opt. gcc/rust/ChangeLog: * checks/errors/privacy/rust-privacy-reporter.cc (find_proc_macro_attribute): Refactor the function to be safer and more efficient. Signed-off-by: Pierre-Emmanuel Patry --- gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'gcc') diff --git a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc index fc00dcb..c656e76 100644 --- a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc +++ b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc @@ -37,8 +37,6 @@ PrivacyReporter::PrivacyReporter ( static tl::optional find_proc_macro_attribute (const AST::AttrVec &outer_attrs) { - tl::optional result; - for (auto &a : outer_attrs) { auto &segments = a.get_path ().get_segments (); @@ -47,10 +45,10 @@ find_proc_macro_attribute (const AST::AttrVec &outer_attrs) auto name = segments.at (0).get_segment_name (); if (name == "proc_macro" || name == "proc_macro_attribute" || name == "proc_macro_derive") - result = {name}; + return name; } - return result; + return tl::nullopt; } // Common check on crate items when dealing with 'proc-macro' crate type. -- cgit v1.1