summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-language-server.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-07-05 14:37:48 -0700
committerGitHub <noreply@github.com>2023-07-05 14:37:48 -0700
commit6c7120d684cc46caafbe348d658158c0060a7638 (patch)
treee8ba738564b5cdceda22013900a0ed762c184bd3 /source/slang/slang-language-server.cpp
parent6063304cb8d73d430e7ef81c62cd9822302fcc19 (diff)
Bottleneck DeclRef creation through ASTBuilder. (#2689)
* Bottleneck DeclRef creation through ASTBuilder. * Fix clang error. * Fix. * Fix. * More fix. * Rebase on top of tree. --------- Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-language-server.cpp')
-rw-r--r--source/slang/slang-language-server.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/source/slang/slang-language-server.cpp b/source/slang/slang-language-server.cpp
index dbe031fd3..db50f9bdb 100644
--- a/source/slang/slang-language-server.cpp
+++ b/source/slang/slang-language-server.cpp
@@ -232,19 +232,19 @@ String getDeclKindString(DeclRef<Decl> declRef)
}
else if (auto varDecl = declRef.as<VarDeclBase>())
{
- auto parent = declRef.getParent();
+ auto parent = declRef.getDecl()->parentDecl;
if (as<GenericDecl>(parent))
- parent = parent.getParent();
- if (parent.as<InterfaceDecl>())
+ parent = parent->parentDecl;
+ if (as<InterfaceDecl>(parent))
{
return "(associated constant) ";
}
- else if (parent.as<AggTypeDeclBase>())
+ else if (as<AggTypeDeclBase>(parent))
{
return "(field) ";
}
const char* scopeKind = "";
- if (parent.as<NamespaceDeclBase>())
+ if (as<NamespaceDeclBase>(parent))
scopeKind = "global ";
else if (getParentDecl(declRef.getDecl()))
scopeKind = "local ";
@@ -707,11 +707,11 @@ SlangResult LanguageServer::hover(
}
else if (auto decl = as<Decl>(leafNode))
{
- fillDeclRefHoverInfo(DeclRef<Decl>(decl, nullptr));
+ fillDeclRefHoverInfo(version->linkage->getASTBuilder()->getSpecializedDeclRef(decl, nullptr));
}
else if (auto attr = as<Attribute>(leafNode))
{
- fillDeclRefHoverInfo(DeclRef<Decl>(attr->attributeDecl, nullptr));
+ fillDeclRefHoverInfo(version->linkage->getASTBuilder()->getSpecializedDeclRef(attr->attributeDecl, nullptr));
}
if (sb.getLength() == 0)
{
@@ -1320,7 +1320,7 @@ SlangResult LanguageServer::signatureHelp(
// Look for initializers
for (auto member : aggDecl->getMembersOfType<ConstructorDecl>())
{
- addDeclRef(DeclRef<Decl>(member, declRefExpr->declRef.substitutions));
+ addDeclRef(version->linkage->getASTBuilder()->getSpecializedDeclRef<Decl>(member, declRefExpr->declRef.substitutions));
}
}
else