Fix missing indexing data when using Self initializer

Fixes: https://github.com/apple/swift/issues/64686
This commit is contained in:
Keith Smiley
2023-04-28 14:26:01 -07:00
parent bfe975d5f8
commit 1d3a9baed2
5 changed files with 81 additions and 4 deletions

View File

@@ -849,8 +849,11 @@ bool swift::ide::isBeingCalled(ArrayRef<Expr *> ExprStack) {
auto *AE = dyn_cast<ApplyExpr>(E);
if (!AE || AE->isImplicit())
continue;
if (auto *CRCE = dyn_cast<ConstructorRefCallExpr>(AE)) {
if (CRCE->getBase() == Target)
if (auto *CRCE = dyn_cast<ConstructorRefCallExpr>(AE->getFn())) {
auto *Base = CRCE->getBase();
while (auto *ICE = dyn_cast<ImplicitConversionExpr>(Base))
Base = ICE->getSubExpr();
if (Base == Target)
return true;
}
if (isa<SelfApplyExpr>(AE))