[PATCH] D44673: Make positionToOffset return llvm::Expected<size_t>

Simon Marchi via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 19 21:21:11 PDT 2018


simark created this revision.
Herald added subscribers: cfe-commits, ioeric, jkorous-apple, ilya-biryukov, klimek.
simark added a reviewer: ilya-biryukov.

To implement incremental document syncing, we want to verify that the
ranges provided by the front-end are valid.  Currently, positionToOffset
deals with invalid Positions by returning 0 or Code.size(), which are
two valid offsets.

Instead, return an llvm:Expected<size_t> with an error if the position
is invalid.  According to the LSP, if the character value exceeds the
number of characters of the given line, it should default back to the
end of the line, so this is what I did.  However, I considered a line
number larger than the number of lines in the file to be an error.


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D44673

Files:
  clangd/ClangdServer.cpp
  clangd/SourceCode.cpp
  clangd/SourceCode.h
  unittests/clangd/Annotations.cpp
  unittests/clangd/SourceCodeTests.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D44673.139073.patch
Type: text/x-patch
Size: 9309 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180320/c6b4503a/attachment.bin>


More information about the cfe-commits mailing list