Add missing implementation for AtomicChange::replace(...)

Summary: Just realized the implementation is missing...

Reviewers: klimek

Reviewed By: klimek

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D30735

llvm-svn: 297289
This commit is contained in:
Eric Liu 2017-03-08 15:53:10 +00:00
parent 1b7197e690
commit 373c182a07
2 changed files with 25 additions and 2 deletions

View File

@ -132,6 +132,11 @@ AtomicChange AtomicChange::convertFromYAML(llvm::StringRef YAMLContent) {
return E; return E;
} }
llvm::Error AtomicChange::replace(const SourceManager &SM, SourceLocation Loc,
unsigned Length, llvm::StringRef Text) {
return Replaces.add(Replacement(SM, Loc, Length, Text));
}
llvm::Error AtomicChange::insert(const SourceManager &SM, SourceLocation Loc, llvm::Error AtomicChange::insert(const SourceManager &SM, SourceLocation Loc,
llvm::StringRef Text, bool InsertAfter) { llvm::StringRef Text, bool InsertAfter) {
if (Text.empty()) if (Text.empty())

View File

@ -1173,8 +1173,10 @@ TEST_F(AtomicChangeTest, YAMLToAtomicChange) {
EXPECT_EQ(ExpectedChange.getKey(), ActualChange.getKey()); EXPECT_EQ(ExpectedChange.getKey(), ActualChange.getKey());
EXPECT_EQ(ExpectedChange.getFilePath(), ActualChange.getFilePath()); EXPECT_EQ(ExpectedChange.getFilePath(), ActualChange.getFilePath());
EXPECT_EQ(ExpectedChange.getError(), ActualChange.getError()); EXPECT_EQ(ExpectedChange.getError(), ActualChange.getError());
EXPECT_EQ(ExpectedChange.getInsertedHeaders(), ActualChange.getInsertedHeaders()); EXPECT_EQ(ExpectedChange.getInsertedHeaders(),
EXPECT_EQ(ExpectedChange.getRemovedHeaders(), ActualChange.getRemovedHeaders()); ActualChange.getInsertedHeaders());
EXPECT_EQ(ExpectedChange.getRemovedHeaders(),
ActualChange.getRemovedHeaders());
EXPECT_EQ(ExpectedChange.getReplacements().size(), EXPECT_EQ(ExpectedChange.getReplacements().size(),
ActualChange.getReplacements().size()); ActualChange.getReplacements().size());
EXPECT_EQ(2u, ActualChange.getReplacements().size()); EXPECT_EQ(2u, ActualChange.getReplacements().size());
@ -1191,6 +1193,22 @@ TEST_F(AtomicChangeTest, CheckKeyAndKeyFile) {
EXPECT_EQ("input.cpp", Change.getFilePath()); EXPECT_EQ("input.cpp", Change.getFilePath());
} }
TEST_F(AtomicChangeTest, Replace) {
setUp();
AtomicChange Change(Context.Sources, DefaultLoc);
llvm::Error Err = Change.replace(Context.Sources, DefaultLoc, 2, "aa");
ASSERT_TRUE(!Err);
EXPECT_EQ(Change.getReplacements().size(), 1u);
EXPECT_EQ(*Change.getReplacements().begin(),
Replacement(Context.Sources, DefaultLoc, 2, "aa"));
// Add a new replacement that conflicts with the existing one.
Err = Change.replace(Context.Sources, DefaultLoc, 3, "ab");
EXPECT_TRUE((bool)Err);
llvm::consumeError(std::move(Err));
EXPECT_EQ(Change.getReplacements().size(), 1u);
}
TEST_F(AtomicChangeTest, InsertBefore) { TEST_F(AtomicChangeTest, InsertBefore) {
setUp(); setUp();
AtomicChange Change(Context.Sources, DefaultLoc); AtomicChange Change(Context.Sources, DefaultLoc);