Clarify that PrecompiledPreamble::CanReuse requires non-null arguments
for VFS and MainFileBuffer, taking them by reference instead of by
pointer.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
clang/include/clang/Frontend/PrecompiledPreamble.h | ||
---|---|---|
108–109 | why not accept a value directly here? (i.e. drop const and ref) |
clang/include/clang/Frontend/PrecompiledPreamble.h | ||
---|---|---|
108–109 | Ah, yes, I've done this a few times, and it still seems not quite right. But the alternative also doesn't feel right when it's not necessary: #include "llvm/Basic/MemoryBufferRef.h" I'm happy either way since that file is fairly careful to avoid bloating includes. |
LGTM
clang/include/clang/Frontend/PrecompiledPreamble.h | ||
---|---|---|
108–109 | I agree this looks a bit odd, but avoiding an unnecessary include seems like a good excuse. |
@kadircet, adding you explicitly as a blocking reviewer, since I suspect you've missed any emails generated from my previous pings. Please let me know whether you still have concerns.
clang/include/clang/Frontend/PrecompiledPreamble.h | ||
---|---|---|
108–109 | sorry i was on vacation and just got the chance to get back to this. I don't feel so bad about the include, as the header itself is small-ish and only includes StringRef.h, which is already included by this header. So I would lean towards accepting this by value and keeping the API clean, rather than trying to get away with a forward declaration. but definitely up to you, i don't feel strongly about it in any case. (as you can easily make the argument of header for MemoryBufferRef getting bloated over time) |
Thanks for the reviews; pushed f4d02fbe418db55375b78b8f57e47126e4642fb6.
clang/include/clang/Frontend/PrecompiledPreamble.h | ||
---|---|---|
108–109 | I decided to leave it as-is for now to match the other MemoryBufferRef APIs in the file... but I take your point that MemoryBufferRef is a cheap include and I expect it will stay cheap. I'll aim to circle back and update the whole file at some point. |
why not accept a value directly here? (i.e. drop const and ref)