From 87340a2bf1d2618565b7cf606913c8968e6513fb Mon Sep 17 00:00:00 2001 From: Yitzhak Mandelbaum Date: Fri, 19 Jun 2020 16:47:12 +0000 Subject: [PATCH] [libTooling] Delete deprecated `Stencil` combinators. Summary: Deletes `text()` and `selection()` combinators, since they have been deprecated for months. Reviewers: tdl-g Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D82225 --- .../include/clang/Tooling/Transformer/Stencil.h | 13 +++---------- clang/lib/Tooling/Transformer/Stencil.cpp | 10 ++-------- clang/unittests/Tooling/StencilTest.cpp | 16 ++++++++-------- 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/clang/include/clang/Tooling/Transformer/Stencil.h b/clang/include/clang/Tooling/Transformer/Stencil.h index 0363b689dc5b..1b50a670f70b 100644 --- a/clang/include/clang/Tooling/Transformer/Stencil.h +++ b/clang/include/clang/Tooling/Transformer/Stencil.h @@ -69,14 +69,6 @@ template Stencil cat(Ts &&... Parts) { // Functions for conveniently building stencils. // -/// DEPRECATED: Use `cat` instead. -/// \returns exactly the text provided. -Stencil text(llvm::StringRef Text); - -/// DEPRECATED: Use `cat` instead. -/// \returns the source corresponding to the selected range. -Stencil selection(RangeSelector Selector); - /// Generates the source of the expression bound to \p Id, wrapping it in /// parentheses if it may parse differently depending on context. For example, a /// binary operation is always wrapped, while a variable reference is never @@ -112,7 +104,7 @@ Stencil maybeAddressOf(llvm::StringRef ExprId); /// Additionally, `e` is wrapped in parentheses, if needed. Stencil access(llvm::StringRef BaseId, Stencil Member); inline Stencil access(llvm::StringRef BaseId, llvm::StringRef Member) { - return access(BaseId, text(Member)); + return access(BaseId, detail::makeStencil(Member)); } /// Chooses between the two stencil parts, based on whether \p ID is bound in @@ -123,7 +115,8 @@ Stencil ifBound(llvm::StringRef Id, Stencil TrueStencil, Stencil FalseStencil); /// match. inline Stencil ifBound(llvm::StringRef Id, llvm::StringRef TrueText, llvm::StringRef FalseText) { - return ifBound(Id, text(TrueText), text(FalseText)); + return ifBound(Id, detail::makeStencil(TrueText), + detail::makeStencil(FalseText)); } /// Wraps a \c MatchConsumer in a \c Stencil, so that it can be used in a \c diff --git a/clang/lib/Tooling/Transformer/Stencil.cpp b/clang/lib/Tooling/Transformer/Stencil.cpp index 31b6ad9332c8..619467383e70 100644 --- a/clang/lib/Tooling/Transformer/Stencil.cpp +++ b/clang/lib/Tooling/Transformer/Stencil.cpp @@ -298,17 +298,11 @@ public: }; } // namespace -Stencil transformer::detail::makeStencil(StringRef Text) { return text(Text); } - -Stencil transformer::detail::makeStencil(RangeSelector Selector) { - return selection(std::move(Selector)); -} - -Stencil transformer::text(StringRef Text) { +Stencil transformer::detail::makeStencil(StringRef Text) { return std::make_shared>(std::string(Text)); } -Stencil transformer::selection(RangeSelector Selector) { +Stencil transformer::detail::makeStencil(RangeSelector Selector) { return std::make_shared>(std::move(Selector)); } diff --git a/clang/unittests/Tooling/StencilTest.cpp b/clang/unittests/Tooling/StencilTest.cpp index 9408a1e62dfa..648c583273a2 100644 --- a/clang/unittests/Tooling/StencilTest.cpp +++ b/clang/unittests/Tooling/StencilTest.cpp @@ -180,12 +180,12 @@ TEST_F(StencilTest, SelectionOp) { TEST_F(StencilTest, IfBoundOpBound) { StringRef Id = "id"; - testExpr(Id, "3;", ifBound(Id, text("5"), text("7")), "5"); + testExpr(Id, "3;", ifBound(Id, cat("5"), cat("7")), "5"); } TEST_F(StencilTest, IfBoundOpUnbound) { StringRef Id = "id"; - testExpr(Id, "3;", ifBound("other", text("5"), text("7")), "7"); + testExpr(Id, "3;", ifBound("other", cat("5"), cat("7")), "7"); } TEST_F(StencilTest, ExpressionOpNoParens) { @@ -293,7 +293,7 @@ TEST_F(StencilTest, AccessOpValueExplicitText) { x; )cc"; StringRef Id = "id"; - testExpr(Id, Snippet, access(Id, text("field")), "x.field"); + testExpr(Id, Snippet, access(Id, cat("field")), "x.field"); } TEST_F(StencilTest, AccessOpValueAddress) { @@ -479,7 +479,7 @@ TEST(StencilToStringTest, AccessOpText) { } TEST(StencilToStringTest, AccessOpSelector) { - auto S = access("Id", selection(name("otherId"))); + auto S = access("Id", cat(name("otherId"))); StringRef Expected = R"repr(access("Id", selection(...)))repr"; EXPECT_EQ(S->toString(), Expected); } @@ -491,7 +491,7 @@ TEST(StencilToStringTest, AccessOpStencil) { } TEST(StencilToStringTest, IfBoundOp) { - auto S = ifBound("Id", text("trueText"), access("exprId", "memberData")); + auto S = ifBound("Id", cat("trueText"), access("exprId", "memberData")); StringRef Expected = R"repr(ifBound("Id", "trueText", access("exprId", "memberData")))repr"; EXPECT_EQ(S->toString(), Expected); @@ -505,7 +505,7 @@ TEST(StencilToStringTest, RunOp) { TEST(StencilToStringTest, Sequence) { auto S = cat("foo", access("x", "m()"), "bar", - ifBound("x", text("t"), access("e", "f"))); + ifBound("x", cat("t"), access("e", "f"))); StringRef Expected = R"repr(seq("foo", access("x", "m()"), "bar", )repr" R"repr(ifBound("x", "t", access("e", "f"))))repr"; EXPECT_EQ(S->toString(), Expected); @@ -524,8 +524,8 @@ TEST(StencilToStringTest, SequenceSingle) { } TEST(StencilToStringTest, SequenceFromVector) { - auto S = catVector({text("foo"), access("x", "m()"), text("bar"), - ifBound("x", text("t"), access("e", "f"))}); + auto S = catVector({cat("foo"), access("x", "m()"), cat("bar"), + ifBound("x", cat("t"), access("e", "f"))}); StringRef Expected = R"repr(seq("foo", access("x", "m()"), "bar", )repr" R"repr(ifBound("x", "t", access("e", "f"))))repr"; EXPECT_EQ(S->toString(), Expected);