HomePhabricator

[AST] Remove DeclCXX.h dep on ASTContext.h

Authored by rnk on Apr 6 2020, 9:55 AM.

Description

[AST] Remove DeclCXX.h dep on ASTContext.h

Saves only 36 includes of ASTContext.h and related headers.

There are two deps on ASTContext.h:

  • C++ method overrides iterator types (TinyPtrVector)
  • getting LangOptions

For #1, duplicate the iterator type, which is
TinyPtrVector<>::const_iterator.

For #2, add an out-of-line accessor to get the language options. Getting
the ASTContext from a Decl is already an out of line method that loops
over the parent DeclContexts, so if it is ever performance critical, the
proper fix is to pass the context (or LangOpts) into the predicate in
question.

Other changes are just header fixups.

Details

Committed
rnkApr 6 2020, 10:09 AM
Parents
rG2c31aa2de13a: Speed up deferred diagnostic emitter
Branches
Unknown
Tags
Unknown