r292805 - [Sema] UsingShadowDecl shouldn't be hidden by the UsingDecl that owns it
Alex Lorenz via cfe-commits
cfe-commits at lists.llvm.org
Mon Jan 23 09:23:24 PST 2017
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}
More information about the cfe-commits
mailing list