HomePhabricator

[NFC] Refactor SetBaseClasses and DeleteBaseClasses.

Description

[NFC] Refactor SetBaseClasses and DeleteBaseClasses.

We currently had a 2-step process where we had to call
SetBaseClassesForType and DeleteBaseClasses. Every single caller
followed this exact 2-step process, and there was manual memory
management going on with raw pointers. We can do better than this
by storing a vector of unique_ptrs and passing this around.
This makes for a cleaner API, and we only need to call one method
so there is no possibility of a user forgetting to call
DeleteBaseClassSpecifiers.

In addition to this, it also makes for a *simpler* API. Part of
why I wanted to do this is because when I was implementing the native
PDB interface I had to spend some time understanding exactly what I
was deleting and why. ClangAST has significant mental overhead
associated with it, and reducing the API surface can go along
way to making it simpler for people to understand.

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

Details

Committed
zturnerOct 25 2018, 1:44 PM
Differential Revision
D53590: Refactor SetBaseClassesForType and DeleteBaseClasses to be more C++'y
Parents
rL345311: Merging r340025:
Branches
Unknown
Tags
Unknown