Author: arphaman Date: Mon Jan 23 11:23:23 2017 New Revision: 292805 URL: http://llvm.org/viewvc/llvm-project?rev=292805&view=rev Log: [Sema] UsingShadowDecl shouldn't be hidden by the UsingDecl that owns it
rdar://23454249 Differential Revision: https://reviews.llvm.org/D28514 Added: cfe/trunk/test/Index/complete-cached-globals.cpp Modified: cfe/trunk/lib/Sema/SemaLookup.cpp Modified: cfe/trunk/lib/Sema/SemaLookup.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaLookup.cpp?rev=292805&r1=292804&r2=292805&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaLookup.cpp (original) +++ cfe/trunk/lib/Sema/SemaLookup.cpp Mon Jan 23 11:23:23 2017 @@ -3428,6 +3428,12 @@ NamedDecl *VisibleDeclsRecord::checkHidd SM == ShadowMaps.rbegin()) continue; + // A shadow declaration that's created by a resolved using declaration + // is not hidden by the same using declaration. + if (isa<UsingShadowDecl>(ND) && isa<UsingDecl>(D) && + cast<UsingShadowDecl>(ND)->getUsingDecl() == D) + continue; + // We've found a declaration that hides this one. return D; } Added: cfe/trunk/test/Index/complete-cached-globals.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/complete-cached-globals.cpp?rev=292805&view=auto ============================================================================== --- cfe/trunk/test/Index/complete-cached-globals.cpp (added) +++ cfe/trunk/test/Index/complete-cached-globals.cpp Mon Jan 23 11:23:23 2017 @@ -0,0 +1,25 @@ +// Note: the run lines follow their respective tests, since line/column +// matter in this test. + +namespace SomeNamespace { + class SomeClass { + }; + void SomeFunction(); +} + +using SomeNamespace::SomeClass; +using SomeNamespace::SomeFunction; + +static void foo() { + return; +} + +// rdar://23454249 + +// RUN: c-index-test -code-completion-at=%s:14:3 %s | FileCheck -check-prefix=CHECK-CC1 %s +// RUN: env CINDEXTEST_EDITING=1 CINDEXTEST_COMPLETION_CACHING=1 c-index-test -code-completion-at=%s:14:3 %s | FileCheck -check-prefix=CHECK-CC1 %s + +// CHECK-CC1: ClassDecl:{TypedText SomeClass} (50) +// CHECK-CC1: FunctionDecl:{ResultType void}{TypedText SomeFunction}{LeftParen (}{RightParen )} (50) +// CHECK-CC1-NOT: {Text SomeNamespace::}{TypedText SomeClass} +// CHECK-CC1-NOT: {Text SomeNamespace::}{TypedText SomeFunction} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits