================ @@ -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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits