Skip to content

Commit 373c182

Browse files
author
Eric Liu
committedMar 8, 2017
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
1 parent 1b7197e commit 373c182

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed
 

‎clang/lib/Tooling/Refactoring/AtomicChange.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,11 @@ AtomicChange AtomicChange::convertFromYAML(llvm::StringRef YAMLContent) {
132132
return E;
133133
}
134134

135+
llvm::Error AtomicChange::replace(const SourceManager &SM, SourceLocation Loc,
136+
unsigned Length, llvm::StringRef Text) {
137+
return Replaces.add(Replacement(SM, Loc, Length, Text));
138+
}
139+
135140
llvm::Error AtomicChange::insert(const SourceManager &SM, SourceLocation Loc,
136141
llvm::StringRef Text, bool InsertAfter) {
137142
if (Text.empty())

‎clang/unittests/Tooling/RefactoringTest.cpp

+20-2
Original file line numberDiff line numberDiff line change
@@ -1173,8 +1173,10 @@ TEST_F(AtomicChangeTest, YAMLToAtomicChange) {
11731173
EXPECT_EQ(ExpectedChange.getKey(), ActualChange.getKey());
11741174
EXPECT_EQ(ExpectedChange.getFilePath(), ActualChange.getFilePath());
11751175
EXPECT_EQ(ExpectedChange.getError(), ActualChange.getError());
1176-
EXPECT_EQ(ExpectedChange.getInsertedHeaders(), ActualChange.getInsertedHeaders());
1177-
EXPECT_EQ(ExpectedChange.getRemovedHeaders(), ActualChange.getRemovedHeaders());
1176+
EXPECT_EQ(ExpectedChange.getInsertedHeaders(),
1177+
ActualChange.getInsertedHeaders());
1178+
EXPECT_EQ(ExpectedChange.getRemovedHeaders(),
1179+
ActualChange.getRemovedHeaders());
11781180
EXPECT_EQ(ExpectedChange.getReplacements().size(),
11791181
ActualChange.getReplacements().size());
11801182
EXPECT_EQ(2u, ActualChange.getReplacements().size());
@@ -1191,6 +1193,22 @@ TEST_F(AtomicChangeTest, CheckKeyAndKeyFile) {
11911193
EXPECT_EQ("input.cpp", Change.getFilePath());
11921194
}
11931195

1196+
TEST_F(AtomicChangeTest, Replace) {
1197+
setUp();
1198+
AtomicChange Change(Context.Sources, DefaultLoc);
1199+
llvm::Error Err = Change.replace(Context.Sources, DefaultLoc, 2, "aa");
1200+
ASSERT_TRUE(!Err);
1201+
EXPECT_EQ(Change.getReplacements().size(), 1u);
1202+
EXPECT_EQ(*Change.getReplacements().begin(),
1203+
Replacement(Context.Sources, DefaultLoc, 2, "aa"));
1204+
1205+
// Add a new replacement that conflicts with the existing one.
1206+
Err = Change.replace(Context.Sources, DefaultLoc, 3, "ab");
1207+
EXPECT_TRUE((bool)Err);
1208+
llvm::consumeError(std::move(Err));
1209+
EXPECT_EQ(Change.getReplacements().size(), 1u);
1210+
}
1211+
11941212
TEST_F(AtomicChangeTest, InsertBefore) {
11951213
setUp();
11961214
AtomicChange Change(Context.Sources, DefaultLoc);

0 commit comments

Comments
 (0)
Please sign in to comment.