diff options
Diffstat (limited to 'source/slang/slang-language-server.cpp')
| -rw-r--r-- | source/slang/slang-language-server.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/source/slang/slang-language-server.cpp b/source/slang/slang-language-server.cpp index 24ab534ab..c188142f5 100644 --- a/source/slang/slang-language-server.cpp +++ b/source/slang/slang-language-server.cpp @@ -1255,8 +1255,20 @@ SlangResult LanguageServer::signatureHelp( return SLANG_OK; } - auto funcExpr = - appExpr->originalFunctionExpr ? appExpr->originalFunctionExpr : appExpr->functionExpr; + auto funcExpr = appExpr->functionExpr; + if (appExpr->originalFunctionExpr) + { + bool useOriginalExpr = true; + if (auto originalDeclRefExpr = as<DeclRefExpr>(appExpr->originalFunctionExpr)) + { + if (!originalDeclRefExpr->declRef) + { + useOriginalExpr = false; + } + } + if (useOriginalExpr) + funcExpr = appExpr->originalFunctionExpr; + } if (!funcExpr) { m_connection->sendResult(NullResponse::get(), responseId); |
