[llvm-branch-commits] [clang-tidy] Add FixIts for libc namespace macros (PR #99681)
Julian Schmidt via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sat Jul 20 10:00:23 PDT 2024
================
@@ -41,8 +50,26 @@ void ImplementationInNamespaceCheck::check(
// Enforce that the namespace is the result of macro expansion
if (Result.SourceManager->isMacroBodyExpansion(NS->getLocation()) == false) {
- diag(NS->getLocation(), "the outermost namespace should be the '%0' macro")
- << RequiredNamespaceDeclMacroName;
+ auto DB = diag(NS->getLocation(),
+ "the outermost namespace should be the '%0' macro")
+ << RequiredNamespaceDeclMacroName;
+
+ // TODO: Determine how to split inline namespaces correctly in the FixItHint
+ //
+ // We can't easily replace LIBC_NAMEPACE::inner::namespace { with
+ //
+ // namespace LIBC_NAMEPACE_DECL {
+ // namespace inner::namespace {
+ //
+ // For now, just update the simple case w/ LIBC_NAMEPACE_DECL
+ if (!NS->isInlineNamespace())
+ DB << FixItHint::CreateReplacement(NS->getLocation(),
+ RequiredNamespaceDeclMacroName);
+
+ DB << IncludeInserter.createIncludeInsertion(
+ Result.SourceManager->getFileID(NS->getBeginLoc()),
+ NamespaceMacroHeader);
----------------
5chmidti wrote:
+-: It might be a bit weird to add an include without the macro
https://github.com/llvm/llvm-project/pull/99681
More information about the llvm-branch-commits
mailing list