================
@@ -1428,6 +1428,16 @@ void ResultBuilder::AddResult(Result R, DeclContext 
*CurContext,
 
   AdjustResultPriorityForDecl(R);
 
+  if (isa<FieldDecl>(R.Declaration)) {
+    // If result is a member in the context of an explicit-object member
+    // function, drop it because it must be accessed through the object
+    // parameter
+    if (auto *MethodDecl = dyn_cast<CXXMethodDecl>(CurContext);
----------------
HighCommander4 wrote:

Good catch, but I would say this is an unrelated bug:

```c++
struct A {
  int foo(this A const&);
};
void bar(const A& a) {
  a.^  // foo not offered
}
```

This scenario involves `CodeCompleteMemberReferencExpr`, so I don't think it 
needs to influence what we do in `CodeCompleteOrdinaryName`. Let's file it as 
another issue to look at later?

https://github.com/llvm/llvm-project/pull/153760
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to