From 2444fb96435ecae73211f3ced3d06e48719afe97 Mon Sep 17 00:00:00 2001 From: Haojian Wu Date: Tue, 4 Jul 2023 13:16:05 +0200 Subject: [PATCH] [clang-tidy] Don't emit the whole spelling include header in include-cleaner diagnostic message To keep the message short and consistent with clangd, and the diagnostics are attached to the #include line, users have enough context to understand the whole #include. Differential Revision: https://reviews.llvm.org/D154434 --- clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp | 4 +++- clang-tools-extra/test/clang-tidy/checkers/misc/include-cleaner.cpp | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp b/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp index b9f44c9..064eccd 100644 --- a/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp @@ -34,6 +34,7 @@ #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringRef.h" #include "llvm/Support/ErrorHandling.h" +#include "llvm/Support/Path.h" #include "llvm/Support/Regex.h" #include #include @@ -171,7 +172,8 @@ void IncludeCleanerCheck::check(const MatchFinder::MatchResult &Result) { for (const auto *Inc : Unused) { diag(Inc->HashLocation, "included header %0 is not used directly") - << Inc->quote() + << llvm::sys::path::filename(Inc->Spelled, + llvm::sys::path::Style::posix) << FixItHint::CreateRemoval(CharSourceRange::getCharRange( SM->translateLineCol(SM->getMainFileID(), Inc->Line, 1), SM->translateLineCol(SM->getMainFileID(), Inc->Line + 1, 1))); diff --git a/clang-tools-extra/test/clang-tidy/checkers/misc/include-cleaner.cpp b/clang-tools-extra/test/clang-tidy/checkers/misc/include-cleaner.cpp index aef115d..e10ac3f 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/misc/include-cleaner.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/misc/include-cleaner.cpp @@ -2,11 +2,11 @@ #include "bar.h" // CHECK-FIXES: {{^}}#include "baz.h"{{$}} #include "foo.h" -// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: included header "foo.h" is not used directly [misc-include-cleaner] +// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: included header foo.h is not used directly [misc-include-cleaner] // CHECK-FIXES: {{^}} // CHECK-FIXES: {{^}}#include {{$}} #include -// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: included header is not used directly [misc-include-cleaner] +// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: included header vector.h is not used directly [misc-include-cleaner] // CHECK-FIXES: {{^}} int BarResult = bar(); int BazResult = baz(); -- 2.7.4