Skip to content

Commit 4043fe9

Browse files
committed
Use resolved path for filter
1 parent 328025e commit 4043fe9

File tree

1 file changed

+10
-19
lines changed

1 file changed

+10
-19
lines changed

clang-tools-extra/clangd/IncludeCleaner.cpp

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -144,36 +144,27 @@ std::vector<Diag> generateMissingIncludeDiagnostics(
144144

145145
llvm::StringRef HeaderRef{Spelling};
146146

147-
bool IsAngled = false;
148-
for (auto &Filter : AngledHeaders) {
149-
if (Filter(HeaderRef)) {
150-
IsAngled = true;
151-
break;
152-
}
153-
}
154-
bool IsQuoted = false;
155-
for (auto &Filter : QuotedHeaders) {
156-
if (Filter(HeaderRef)) {
157-
IsQuoted = true;
158-
break;
147+
bool Angled = HeaderRef.starts_with("<");
148+
if (SymbolWithMissingInclude.Providers.front().kind() ==
149+
include_cleaner::Header::Kind::Physical) {
150+
for (auto &Filter : Angled ? QuotedHeaders : AngledHeaders) {
151+
if (Filter(ResolvedPath)) {
152+
Angled = !Angled;
153+
break;
154+
}
159155
}
160156
}
161-
if (IsAngled == IsQuoted) {
162-
IsAngled = HeaderRef.starts_with("<");
163-
} else if (!IsAngled && IsQuoted) {
164-
IsAngled = false;
165-
}
166157

167158
// We might suggest insertion of an existing include in edge cases, e.g.,
168159
// include is present in a PP-disabled region, or spelling of the header
169160
// turns out to be the same as one of the unresolved includes in the
170161
// main file.
171162
std::optional<tooling::Replacement> Replacement = HeaderIncludes.insert(
172-
HeaderRef.trim("\"<>"), IsAngled, tooling::IncludeDirective::Include);
163+
HeaderRef.trim("\"<>"), Angled, tooling::IncludeDirective::Include);
173164
if (!Replacement.has_value())
174165
continue;
175166

176-
if (IsAngled && Spelling.front() == '\"') {
167+
if (Angled && Spelling.front() == '\"') {
177168
Spelling.front() = '<';
178169
Spelling.back() = '>';
179170
}

0 commit comments

Comments
 (0)