This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
Add includes where needed to fix build. Haven't systematically added used headers, so there is still accidental dependency on transitive includes.
Summary: This enforces layering, reduces a sprawling clangd/ directory, and makes life easier for embedders. Reviewers: kbobyrev Subscribers: mgorny, ilya-biryukov, javed.absar, MaskRay, jkorous, arphaman, jfb, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D79014