summaryrefslogtreecommitdiff
path: root/lib/Sema/SemaCodeComplete.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2018-08-02 17:33:11 +0000
committerDimitry Andric <dim@FreeBSD.org>2018-08-02 17:33:11 +0000
commitc7e70c433efc6953dc3888b9fbf9f3512d7da2b0 (patch)
tree27425930fc0c91650a7f3527fcac8e0f92907b90 /lib/Sema/SemaCodeComplete.cpp
parent486754660bb926339aefcf012a3f848592babb8b (diff)
Notes
Diffstat (limited to 'lib/Sema/SemaCodeComplete.cpp')
-rw-r--r--lib/Sema/SemaCodeComplete.cpp30
1 files changed, 2 insertions, 28 deletions
diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp
index 4e571eba17e96..30af826ef6cc0 100644
--- a/lib/Sema/SemaCodeComplete.cpp
+++ b/lib/Sema/SemaCodeComplete.cpp
@@ -1303,34 +1303,8 @@ namespace {
void FoundDecl(NamedDecl *ND, NamedDecl *Hiding, DeclContext *Ctx,
bool InBaseClass) override {
bool Accessible = true;
- if (Ctx) {
- DeclContext *AccessingCtx = Ctx;
- // If ND comes from a base class, set the naming class back to the
- // derived class if the search starts from the derived class (i.e.
- // InBaseClass is true).
- //
- // Example:
- // class B { protected: int X; }
- // class D : public B { void f(); }
- // void D::f() { this->^; }
- // The completion after "this->" will have `InBaseClass` set to true and
- // `Ctx` set to "B", when looking up in `B`. We need to set the actual
- // accessing context (i.e. naming class) to "D" so that access can be
- // calculated correctly.
- if (InBaseClass && isa<CXXRecordDecl>(Ctx)) {
- CXXRecordDecl *RC = nullptr;
- // Get the enclosing record.
- for (DeclContext *DC = CurContext; !DC->isFileContext();
- DC = DC->getParent()) {
- if ((RC = dyn_cast<CXXRecordDecl>(DC)))
- break;
- }
- if (RC)
- AccessingCtx = RC;
- }
- Accessible = Results.getSema().IsSimplyAccessible(ND, AccessingCtx);
- }
-
+ if (Ctx)
+ Accessible = Results.getSema().IsSimplyAccessible(ND, Ctx);
ResultBuilder::Result Result(ND, Results.getBasePriority(ND), nullptr,
false, Accessible, FixIts);
Results.AddResult(Result, CurContext, Hiding, InBaseClass);