[clangd] Use 'std::string' for VFSTag instead of 'int'
Reviewers: krasimir Reviewed By: krasimir Subscribers: klimek, cfe-commits Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D34106 llvm-svn: 305279
This commit is contained in:
parent
dea7590a04
commit
e36035b121
|
@ -43,20 +43,22 @@ size_t positionToOffset(StringRef Code, Position P);
|
|||
Position offsetToPosition(StringRef Code, size_t Offset);
|
||||
|
||||
/// A tag supplied by the FileSytemProvider.
|
||||
typedef int VFSTag;
|
||||
typedef std::string VFSTag;
|
||||
|
||||
/// A value of an arbitrary type and VFSTag that was supplied by the
|
||||
/// FileSystemProvider when this value was computed.
|
||||
template <class T> class Tagged {
|
||||
public:
|
||||
template <class U>
|
||||
Tagged(U &&Value, VFSTag Tag) : Value(std::forward<U>(Value)), Tag(Tag) {}
|
||||
Tagged(U &&Value, VFSTag Tag)
|
||||
: Value(std::forward<U>(Value)), Tag(std::move(Tag)) {}
|
||||
|
||||
template <class U>
|
||||
Tagged(const Tagged<U> &Other) : Value(Other.Value), Tag(Other.Tag) {}
|
||||
|
||||
template <class U>
|
||||
Tagged(Tagged<U> &&Other) : Value(std::move(Other.Value)), Tag(Other.Tag) {}
|
||||
Tagged(Tagged<U> &&Other)
|
||||
: Value(std::move(Other.Value)), Tag(std::move(Other.Tag)) {}
|
||||
|
||||
T Value;
|
||||
VFSTag Tag;
|
||||
|
|
|
@ -386,13 +386,13 @@ TEST_F(ClangdVFSTest, CheckVersions) {
|
|||
auto FooCpp = getVirtualTestFilePath("foo.cpp");
|
||||
const auto SourceContents = "int a;";
|
||||
FS->Files[FooCpp] = SourceContents;
|
||||
FS->Tag = 123;
|
||||
FS->Tag = "123";
|
||||
|
||||
Server.addDocument(FooCpp, SourceContents);
|
||||
EXPECT_EQ(DiagConsumer->lastVFSTag(), FS->Tag);
|
||||
EXPECT_EQ(Server.codeComplete(FooCpp, Position{0, 0}).Tag, FS->Tag);
|
||||
|
||||
FS->Tag = 321;
|
||||
FS->Tag = "321";
|
||||
Server.addDocument(FooCpp, SourceContents);
|
||||
EXPECT_EQ(DiagConsumer->lastVFSTag(), FS->Tag);
|
||||
EXPECT_EQ(Server.codeComplete(FooCpp, Position{0, 0}).Tag, FS->Tag);
|
||||
|
|
Loading…
Reference in New Issue