salman-javed-nz added a comment.

Thanks for taking a look. I will update the diff to address your comments. Have 
a good new years break.



================
Comment at: clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp:197
+  SourceLocation Loc = FileStartLoc.getLocWithOffset(
+      static_cast<SourceLocation::IntTy>(Error.Message.FileOffset));
   return diag(Error.DiagnosticName, Loc, Error.Message.Message,
----------------
kadircet wrote:
> this change looks unrelated to the current patch.
I suppose it is. It's fixing a lint issue in a function used by the NOLINTBEGIN 
functionality, but not needed to implement the caching functionality. I don't 
have strong feelings about whether this change is bundled in this patch or not.


================
Comment at: clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp:602
                                EnableNolintBlocks)) {
-    ++Context.Stats.ErrorsIgnoredNOLINT;
+    // Even though this diagnostic is suppressed, there may be other issues 
with
+    // the file that need raising, such as unclosed NOLINT(BEGIN/END) blocks.
----------------
kadircet wrote:
> looks like an unrelated change, maybe move to a separate patch?
This is needed for this patch. The diagnostic in question may be suppressed 
(`shouldSuppressDiagnostic() = true`) but the cache generation could return 
errors to do with badly formed NOLINTBEGIN blocks for other checks in the file. 


================
Comment at: clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h:76
+  // NOTE: at first glance, *it may seem* that this bool is redundant when the
+  // `Checks.empty()` method already exists.
+  // However, `Checks.empty()` cannot differentiate "NOLINT" from "NOLINT()".
----------------
kadircet wrote:
> similar to above is `NOLINT()` useful at all? maybe we should just not 
> generate such tokens?
`NOLINT()` is a pretty silly statement, but it is specially mentioned in the 
clang-tidy documentation.
I didn't want the parser to just swallow `NOLINT()`s as if they were never 
there, because I still want to pick up errors like:
```
// NOLINTBEGIN()
// NOLINTEND(some-check)
   ^
   Error: NOLINTEND does not match previous NOLINTBEGIN
```


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D116085/new/

https://reviews.llvm.org/D116085

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to