[PATCH] D64863: [clangd] Ignore diags from builtin files
Ilya Biryukov via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 29 10:27:32 PDT 2019
ilya-biryukov accepted this revision.
ilya-biryukov added a comment.
This revision is now accepted and ready to land.
LGTM. Many thanks for fixing this.
================
Comment at: clang-tools-extra/clangd/Diagnostics.cpp:111
-void adjustDiagFromHeader(Diag &D, const clang::Diagnostic &Info,
+bool adjustDiagFromHeader(Diag &D, const clang::Diagnostic &Info,
const LangOptions &LangOpts) {
----------------
NIT: add a small comment mentioning that returned value indicates if `Diag` was changed
================
Comment at: clang-tools-extra/clangd/Diagnostics.cpp:475
bool InsideMainFile = isInsideMainFile(Info);
+ SourceManager &SM = Info.getSourceManager();
----------------
NIT: could use `auto &` here, the `SourceManager` is mentioned explicitly in the initializer anyway.
================
Comment at: clang-tools-extra/clangd/Diagnostics.cpp:563
+ LastDiagWasAdjusted =
+ !InsideMainFile && adjustDiagFromHeader(*LastDiag, Info, *LangOpts);
----------------
NIT: I suggest moving the control-flow (`&&`) into a separate `if` statement.
`adjustDiagFromHeader` mutates its arguments and having complex expressions in the same statement makes it a little hard to notice that things might get mutated there.
But up to you.
================
Comment at: clang-tools-extra/clangd/Diagnostics.h:148
llvm::Optional<Diag> LastDiag;
+ // Set by adjustDiagFromHeader to indicate the fact that LastDiag was not
+ // inside main file initially.
----------------
NIT: it's not `adjustDiagFromHeader` that actually sets the value, maybe rephrase to avoid confusion?
Something like
```
/// Set iff adjustDiagFromHeader resulted in changes to LastDiag.
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D64863/new/
https://reviews.llvm.org/D64863
More information about the cfe-commits
mailing list