[ADT, Support] Move operator<< to raw_ostream.h (NFC)
Without this patch, operator<< for Optional<T> and std::optional<T> are in Optional.h. This means that a C++ source file must include Optional.h even if it just needs to stream std::optional<T> and has nothing to do with Optional<T>, which is counter-intuitive. This patch moves the operator<< to raw_ostream.h. As a bonus, we get to resolve a circular dependency. Optional.h no longer needs to forward-declare raw_ostream. That is, raw_ostream.h depends on Optional.h, not vice versa. As a preparation for this patch, I've checked in 77609717 to forward-declare raw_ostream in those header files that were relying on the forward declaration of raw_ostream in Optional.h. Differential Revision: https://reviews.llvm.org/D139290
Loading
Please sign in to comment