diff options
author | Haojian Wu <hokein@google.com> | 2016-10-12 08:19:44 +0000 |
---|---|---|
committer | Haojian Wu <hokein@google.com> | 2016-10-12 08:19:44 +0000 |
commit | 4900c18d666b3c475cfc13d361f5cf1532948961 (patch) | |
tree | d62460a5aaf88831505099ff41c3a3708e289a21 /clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp | |
parent | c958d8d621c3eccd9d0b7799471b8d060fed66df (diff) | |
download | bcm5719-llvm-4900c18d666b3c475cfc13d361f5cf1532948961.tar.gz bcm5719-llvm-4900c18d666b3c475cfc13d361f5cf1532948961.zip |
Revert "[ClangTidy] Add UsingInserter and NamespaceAliaser"
This reverts commit r283981. This patch breaks the buildbot.
llvm-svn: 283985
Diffstat (limited to 'clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp')
-rw-r--r-- | clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp b/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp deleted file mode 100644 index 9102298a9b3..00000000000 --- a/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp +++ /dev/null @@ -1,124 +0,0 @@ -//===---- NamespaceAliaserTest.cpp - clang-tidy -//----------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "../clang-tidy/utils/NamespaceAliaser.h" - -#include "ClangTidyTest.h" -#include "clang/ASTMatchers/ASTMatchFinder.h" -#include "clang/ASTMatchers/ASTMatchers.h" -#include "gtest/gtest.h" - -namespace clang { -namespace tidy { -namespace utils { -// This checker is for testing only. It can only run on one test case -// (e.g. with one SourceManager). -class InsertAliasCheck : public ClangTidyCheck { -public: - using ClangTidyCheck::ClangTidyCheck; - void registerMatchers(ast_matchers::MatchFinder *Finder) override { - Finder->addMatcher(ast_matchers::callExpr().bind("foo"), this); - } - void - check(const ast_matchers::MatchFinder::MatchResult &Result) override { - if (!Aliaser) - Aliaser.reset(new NamespaceAliaser(*Result.SourceManager)); - - const CallExpr *Call = - Result.Nodes.getNodeAs<CallExpr>("foo"); - assert(Call != nullptr && "Did not find node \"foo\""); - auto Hint = Aliaser->createAlias(*Result.Context, *Call, "::foo::bar", - {"b", "some_alias"}); - if (Hint.hasValue()) - diag(Call->getLocStart(), "Fix for testing") << Hint.getValue(); - - diag(Call->getLocStart(), "insert call") - << FixItHint::CreateInsertion( - Call->getLocStart(), - Aliaser->getNamespaceName(*Result.Context, *Call, "::foo::bar") + - "::"); - } - -private: - std::unique_ptr<NamespaceAliaser> Aliaser; -}; - -template <typename Check> -std::string runChecker(StringRef Code, int ExpectedWarningCount) { - std::map<StringRef, StringRef> AdditionalFileContents = {{"foo.h", - "namespace foo {\n" - "namespace bar {\n" - "}\n" - "void func() { }\n" - "}"}}; - std::vector<ClangTidyError> errors; - - std::string result = - test::runCheckOnCode<Check>(Code, &errors, "foo.cc", None, - ClangTidyOptions(), AdditionalFileContents); - - EXPECT_EQ(ExpectedWarningCount, errors.size()); - return result; -} - -TEST(NamespaceAliaserTest, AddNewAlias) { - EXPECT_EQ("#include \"foo.h\"\n" - "void f() {\n" - "namespace b = ::foo::bar;" - " b::f(); }", - runChecker<InsertAliasCheck>("#include \"foo.h\"\n" - "void f() { f(); }", - 2)); -} - -TEST(NamespaceAliaserTest, ReuseAlias) { - EXPECT_EQ( - "#include \"foo.h\"\n" - "void f() { namespace x = foo::bar; x::f(); }", - runChecker<InsertAliasCheck>("#include \"foo.h\"\n" - "void f() { namespace x = foo::bar; f(); }", - 1)); -} - -TEST(NamespaceAliaserTest, AddsOnlyOneAlias) { - EXPECT_EQ("#include \"foo.h\"\n" - "void f() {\n" - "namespace b = ::foo::bar;" - " b::f(); b::f(); }", - runChecker<InsertAliasCheck>("#include \"foo.h\"\n" - "void f() { f(); f(); }", - 3)); -} - -TEST(NamespaceAliaserTest, LocalConflict) { - EXPECT_EQ("#include \"foo.h\"\n" - "void f() {\n" - "namespace some_alias = ::foo::bar;" - " namespace b = foo; some_alias::f(); }", - runChecker<InsertAliasCheck>("#include \"foo.h\"\n" - "void f() { namespace b = foo; f(); }", - 2)); -} - -TEST(NamespaceAliaserTest, GlobalConflict) { - EXPECT_EQ("#include \"foo.h\"\n" - "namespace b = foo;\n" - "void f() {\n" - "namespace some_alias = ::foo::bar;" - " some_alias::f(); }", - runChecker<InsertAliasCheck>("#include \"foo.h\"\n" - "namespace b = foo;\n" - "void f() { f(); }", - 2)); -} - -} // namespace utils -} // namespace tidy -} // namespace clang |