summaryrefslogtreecommitdiffstats
path: root/unittests
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2017-11-02 18:05:48 +0000
committerAlex Lorenz <arphaman@gmail.com>2017-11-02 18:05:48 +0000
commit55dbed804bb40df7c40c98fd0e3e2057d89d0d02 (patch)
treee330ff5cfe628c6ad21028b24f93ee6229501204 /unittests
parentc5dac14767566df828dff84280933ba92babab00 (diff)
[refactor][selection] canonicalize selected string literal to objc
string literal when possible git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@317224 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests')
-rw-r--r--unittests/Tooling/ASTSelectionTest.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/unittests/Tooling/ASTSelectionTest.cpp b/unittests/Tooling/ASTSelectionTest.cpp
index 1435334d6c..f10d899a0a 100644
--- a/unittests/Tooling/ASTSelectionTest.cpp
+++ b/unittests/Tooling/ASTSelectionTest.cpp
@@ -972,4 +972,36 @@ TEST(ASTSelectionFinder, SimpleCodeRangeASTSelectionInObjCMethod) {
SelectionFinderVisitor::Lang_OBJC);
}
+TEST(ASTSelectionFinder, CanonicalizeObjCStringLiteral) {
+ StringRef Source = R"(
+void foo() {
+ (void)@"test";
+}
+ )";
+ // Just '"test"':
+ findSelectedASTNodesWithRange(
+ Source, {3, 10}, FileRange{{3, 10}, {3, 16}},
+ [](SourceRange SelectionRange, Optional<SelectedASTNode> Node) {
+ EXPECT_TRUE(Node);
+ Optional<CodeRangeASTSelection> SelectedCode =
+ CodeRangeASTSelection::create(SelectionRange, std::move(*Node));
+ EXPECT_TRUE(SelectedCode);
+ EXPECT_EQ(SelectedCode->size(), 1u);
+ EXPECT_TRUE(isa<ObjCStringLiteral>((*SelectedCode)[0]));
+ },
+ SelectionFinderVisitor::Lang_OBJC);
+ // Just 'test':
+ findSelectedASTNodesWithRange(
+ Source, {3, 11}, FileRange{{3, 11}, {3, 15}},
+ [](SourceRange SelectionRange, Optional<SelectedASTNode> Node) {
+ EXPECT_TRUE(Node);
+ Optional<CodeRangeASTSelection> SelectedCode =
+ CodeRangeASTSelection::create(SelectionRange, std::move(*Node));
+ EXPECT_TRUE(SelectedCode);
+ EXPECT_EQ(SelectedCode->size(), 1u);
+ EXPECT_TRUE(isa<ObjCStringLiteral>((*SelectedCode)[0]));
+ },
+ SelectionFinderVisitor::Lang_OBJC);
+}
+
} // end anonymous namespace