aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Tooling/RefactoringTest.cpp
diff options
context:
space:
mode:
authorManuel Klimek <klimek@google.com>2016-08-03 15:12:00 +0000
committerManuel Klimek <klimek@google.com>2016-08-03 15:12:00 +0000
commit16c6d0ac373e2d9d0c39a39ac865dfc7e33786c2 (patch)
tree04775233a35385960d1dfe912336d5589a2c0d28 /clang/unittests/Tooling/RefactoringTest.cpp
parent82b1468a4dacc9d3e59cddb587b10acde871296a (diff)
downloadllvm-16c6d0ac373e2d9d0c39a39ac865dfc7e33786c2.zip
llvm-16c6d0ac373e2d9d0c39a39ac865dfc7e33786c2.tar.gz
llvm-16c6d0ac373e2d9d0c39a39ac865dfc7e33786c2.tar.bz2
Fix bug in conflict check for Replacements::add().
We would not detect conflicts when inserting insertions at the same offset as previously contained replacements. llvm-svn: 277603
Diffstat (limited to 'clang/unittests/Tooling/RefactoringTest.cpp')
-rw-r--r--clang/unittests/Tooling/RefactoringTest.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/unittests/Tooling/RefactoringTest.cpp b/clang/unittests/Tooling/RefactoringTest.cpp
index b06123e..5dd5c02 100644
--- a/clang/unittests/Tooling/RefactoringTest.cpp
+++ b/clang/unittests/Tooling/RefactoringTest.cpp
@@ -157,6 +157,26 @@ TEST_F(ReplacementTest, FailAddRegression) {
llvm::consumeError(std::move(Err));
}
+TEST_F(ReplacementTest, FailAddInsertAtOffsetOfReplacement) {
+ Replacements Replaces;
+ auto Err = Replaces.add(Replacement("x.cc", 10, 2, ""));
+ EXPECT_TRUE(!Err);
+ llvm::consumeError(std::move(Err));
+ Err = Replaces.add(Replacement("x.cc", 10, 0, ""));
+ EXPECT_TRUE((bool)Err);
+ llvm::consumeError(std::move(Err));
+}
+
+TEST_F(ReplacementTest, FailAddInsertAtOtherInsert) {
+ Replacements Replaces;
+ auto Err = Replaces.add(Replacement("x.cc", 10, 0, "a"));
+ EXPECT_TRUE(!Err);
+ llvm::consumeError(std::move(Err));
+ Err = Replaces.add(Replacement("x.cc", 10, 0, "b"));
+ EXPECT_TRUE((bool)Err);
+ llvm::consumeError(std::move(Err));
+}
+
TEST_F(ReplacementTest, CanApplyReplacements) {
FileID ID = Context.createInMemoryFile("input.cpp",
"line1\nline2\nline3\nline4");