[PATCH] D56415: NFC: Port QueryParser to StringRef
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 8 08:56:22 PST 2019
aaron.ballman added inline comments.
================
Comment at: clang-query/QueryParser.cpp:33
+ if (Line.empty())
+ return StringRef(Line.begin(), 0);
----------------
steveire wrote:
> steveire wrote:
> > aaron.ballman wrote:
> > > steveire wrote:
> > > > aaron.ballman wrote:
> > > > > Why not just return `Line`?
> > > > It is the pre-existing behavior to return a zero-length StringRef with a valid Begin pointer in this case. I think the reason is something to do with code completion. I can check later.
> > > I believe returning `Line` is identical -- you should wind up with the same "begin" pointer for the returned string and a length of zero (because `Line` must be empty by this point).
> > Actually, I can see it by reading the code - `P->CompletionPos <= Word.data()` in the `LexOrCompleteWord` ctor woudln't work anymore without this hack. (Working on removing the hack is out of scope of this change).
> Ok, I see your new comment now. I guess that will work. I don't know the behavior of `ltrim` and whether it preserves that property.
`StringRef`s are immutable and non-owning, so `ltrim()` returns `Line.begin + someOffset` in essence. That should preserve the behavior you need here.
================
Comment at: clang-query/QueryParser.cpp:37
+ Line = {};
return StringRef();
}
----------------
steveire wrote:
> aaron.ballman wrote:
> > steveire wrote:
> > > aaron.ballman wrote:
> > > > Why not just return `Line` here as well?
> > > That's pre-existing. Seems more clear to leave it as is.
> > I don't have a strong preference, but I raised the point because it seems odd to explicitly clear a `StringRef` and then return a new, different, empty `StringRef` on the next line.
> Well, code changes, and `Line` may not always be empty here. As it is, this communicates that we're returning an empty `StringRef` and always will (until this line has a reason to change).
Okay, that's good enough for me, thanks!
Repository:
rCTE Clang Tools Extra
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D56415/new/
https://reviews.llvm.org/D56415
More information about the cfe-commits
mailing list