================
@@ -6133,7 +6133,17 @@ ProduceSignatureHelp(Sema &SemaRef, 
MutableArrayRef<ResultCandidate> Candidates,
 // so that we can recover argument names from it.
 static FunctionProtoTypeLoc GetPrototypeLoc(Expr *Fn) {
   TypeLoc Target;
-  if (const auto *T = Fn->getType().getTypePtr()->getAs<TypedefType>()) {
+
+  if (const auto *ME = dyn_cast<MemberExpr>(Fn)) {
+    const auto *MD = ME->getMemberDecl();
+    if (const auto *FD = dyn_cast<FieldDecl>(MD)) {
+      if (const auto *T = FD->getType().getTypePtr()->getAs<TypedefType>()) {
----------------
HighCommander4 wrote:

This case is actually handled by the `if (const auto *T = 
Fn->getType().getTypePtr()->getAs<TypedefType>())` branch, as long as it runs 
before the check for `MemberExpr`.

So:
 * let's move the `MemberExpr` branch below the `DeclRefExpr` branch
 * let's simplify it to omit this check for `TypedefType`

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

Reply via email to