On MSVC, friend declarations are (incorrectly) visible even if
not otherwise declared, which causes them to interfere with
lookup. ASTTypeWriter is actually in an anonymous namespace
and cannot be ASTWriter's friend. The others simply don't need
to be anymore.
friend class ASTDeclReader;
friend class ASTIdentifierIterator;
friend class ASTRecordReader;
- friend class ASTStmtReader;
friend class ASTUnit; // ASTUnit needs to remap source locations.
friend class ASTWriter;
friend class PCHValidator;
public:
friend class ASTDeclWriter;
friend class ASTRecordWriter;
- friend class ASTStmtWriter;
- friend class ASTTypeWriter;
using RecordData = SmallVector<uint64_t, 64>;
using RecordDataImpl = SmallVectorImpl<uint64_t>;