[clang-tools-extra] [clang-tidy][NFC] Do less unnecessary work in `NoLintDirectiveHandler` (PR #147553)
Baranov Victor via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 14 11:18:53 PDT 2025
================
@@ -349,46 +369,21 @@ bool NoLintDirectiveHandler::Impl::diagHasNoLint(
return false;
// Do we have cached NOLINT block locations for this file?
- if (Cache.count(*FileName) == 0)
+ if (!Cache.contains(*FileName))
// Warning: heavy operation - need to read entire file.
generateCache(SrcMgr, *FileName, File, *Buffer, NoLintErrors);
return withinNoLintBlock(Cache[*FileName], Pos, DiagName);
}
-// Construct a [clang-tidy-nolint] diagnostic to do with the unmatched
-// NOLINT(BEGIN/END) pair.
-static tooling::Diagnostic makeNoLintError(const SourceManager &SrcMgr,
- FileID File,
- const NoLintToken &NoLint) {
- tooling::Diagnostic Error;
- Error.DiagLevel = tooling::Diagnostic::Error;
- Error.DiagnosticName = "clang-tidy-nolint";
- StringRef Message =
- (NoLint.Type == NoLintType::NoLintBegin)
- ? ("unmatched 'NOLINTBEGIN' comment without a subsequent 'NOLINT"
- "END' comment")
- : ("unmatched 'NOLINTEND' comment without a previous 'NOLINT"
- "BEGIN' comment");
- SourceLocation Loc = SrcMgr.getComposedLoc(File, NoLint.Pos);
- Error.Message = tooling::DiagnosticMessage(Message, SrcMgr, Loc);
- return Error;
-}
-
// Find all NOLINT(BEGIN/END) blocks in a file and store in the cache.
void NoLintDirectiveHandler::Impl::generateCache(
const SourceManager &SrcMgr, StringRef FileName, FileID File,
StringRef Buffer, SmallVectorImpl<tooling::Diagnostic> &NoLintErrors) {
- // Read entire file to get all NOLINTs.
- SmallVector<NoLintToken> NoLints = getNoLints(Buffer);
-
- // Match each BEGIN with its corresponding END.
- SmallVector<NoLintToken> UnmatchedTokens;
- Cache[FileName] = formNoLintBlocks(std::move(NoLints), UnmatchedTokens);
-
- // Raise error for any BEGIN/END left over.
- for (const NoLintToken &NoLint : UnmatchedTokens)
- NoLintErrors.emplace_back(makeNoLintError(SrcMgr, File, NoLint));
----------------
vbvictor wrote:
Why these lines are deleted?
https://github.com/llvm/llvm-project/pull/147553
More information about the cfe-commits
mailing list