[clang-tidy] Untangle layering in ClangTidyDiagnosticConsumer somewhat. NFC

Description

[clang-tidy] Untangle layering in ClangTidyDiagnosticConsumer somewhat. NFC

Summary:
Clang's hierarchy is CompilerInstance -> DiagnosticsEngine -> DiagnosticConsumer.
(Ownership is optional/shared, but this structure is fairly clear).

Currently ClangTidyDiagnosticConsumer *owns* the DiagnosticsEngine:

  • this inverts the hierarchy, which is confusing
  • this means ClangTidyDiagnosticConsumer() mutates the passed-in context, which is both surprising and limits flexibility
  • it's not possible to use a different DiagnosticsEngine with ClangTidy

This means a little bit more code in the places ClangTidy is used standalone,
but more flexibility in using ClangTidy with other diagnostics configurations.

Reviewers: hokein

Subscribers: xazax.hun, cfe-commits

Differential Revision: https://reviews.llvm.org/D54033

Details

Committed
sammccallThu, Nov 8, 9:42 AM
Differential Revision
D54033: [clang-tidy] Untangle layering in ClangTidyDiagnosticConsumer somewhat. NFC
Branches
Unknown
Tags
Unknown