Index: clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h =================================================================== --- clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h +++ clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h @@ -133,6 +133,16 @@ return true; } + bool VisitNamespaceAliasDecl(NamespaceAliasDecl *Declaration) { + return visit(Declaration->getAliasedNamespace(), + Declaration->getTargetNameLoc(), Declaration->getEndLoc()); + } + + bool VisitUsingDirectiveDecl(UsingDirectiveDecl *Declaration) { + return visit(Declaration->getNominatedNamespace(), + Declaration->getIdentLocation(), Declaration->getEndLoc()); + } + private: const SourceManager &SM; const LangOptions &LangOpts; Index: clang/test/clang-rename/Namespace.cpp =================================================================== --- clang/test/clang-rename/Namespace.cpp +++ clang/test/clang-rename/Namespace.cpp @@ -6,6 +6,9 @@ gcc::x = 42; // CHECK: clang::x = 42; } +namespace gcc_alias = gcc; // CHECK: namespace gcc_alias = clang; +using namespace gcc; // CHECK: using namespace clang; + // Test 1. // RUN: clang-rename -offset=10 -new-name=clang %s -- | sed 's,//.*,,' | FileCheck %s