diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/clang/Tooling/Transformer/Stencil.h | 25 |
1 files changed, 1 insertions, 24 deletions
diff --git a/include/clang/Tooling/Transformer/Stencil.h b/include/clang/Tooling/Transformer/Stencil.h index 617585cacd..eeb5902444 100644 --- a/include/clang/Tooling/Transformer/Stencil.h +++ b/include/clang/Tooling/Transformer/Stencil.h @@ -48,26 +48,18 @@ public: virtual llvm::Error eval(const ast_matchers::MatchFinder::MatchResult &Match, std::string *Result) const = 0; - virtual bool isEqual(const StencilPartInterface &other) const = 0; - /// Constructs a string representation of the StencilPart. StencilParts /// generated by the `selection` and `run` functions do not have a unique /// string representation. virtual std::string toString() const = 0; - const void *typeId() const { return TypeId; } - protected: - StencilPartInterface(const void *DerivedId) : TypeId(DerivedId) {} + StencilPartInterface() = default; // Since this is an abstract class, copying/assigning only make sense for // derived classes implementing `clone()`. StencilPartInterface(const StencilPartInterface &) = default; StencilPartInterface &operator=(const StencilPartInterface &) = default; - - /// Unique identifier of the concrete type of this instance. Supports safe - /// downcasting. - const void *TypeId; }; /// A copyable facade for a std::unique_ptr<StencilPartInterface>. Copies result @@ -83,14 +75,6 @@ public: return Impl->eval(Match, Result); } - bool operator==(const StencilPart &Other) const { - if (Impl == Other.Impl) - return true; - if (Impl == nullptr || Other.Impl == nullptr) - return false; - return Impl->isEqual(*Other.Impl); - } - std::string toString() const { if (Impl == nullptr) return ""; @@ -142,7 +126,6 @@ public: } private: - friend bool operator==(const Stencil &A, const Stencil &B); static StencilPart wrap(llvm::StringRef Text); static StencilPart wrap(RangeSelector Selector); static StencilPart wrap(StencilPart Part) { return Part; } @@ -150,12 +133,6 @@ private: std::vector<StencilPart> Parts; }; -inline bool operator==(const Stencil &A, const Stencil &B) { - return A.Parts == B.Parts; -} - -inline bool operator!=(const Stencil &A, const Stencil &B) { return !(A == B); } - // Functions for conveniently building stencils. namespace stencil { /// Convenience wrapper for Stencil::cat that can be imported with a using decl. |