[PATCH] D28514: [CodeCompletion] Reset the hidden declaration obtained after lookup when caching UsingShadowDecls

Alex Lorenz via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 20 09:22:22 PST 2017

arphaman added inline comments.

Comment at: lib/Sema/SemaLookup.cpp:3433
+      // is not hidden by the using declaration.
+      if (isa<UsingShadowDecl>(ND) && isa<UsingDecl>(D))
+        continue;
ahatanak wrote:
> Do we have to check that ND's UsingDecl is equal to D? Or we don't have to worry about it?
I don't think a check like that would be necessary from what I've observed so far. I believe a `UsingShadowDecl` could have been hidden previously by a different `UsingDecl`, but that can happen only in invalid code, like in the example below:

namespace Foo {
    class C { };
namespace Bar { class C { }; }
using Foo::C;
using Bar::C;

I don't think it would make sense for Bar::C using decl to hide Foo::C using shadow decl.



More information about the cfe-commits mailing list