summaryrefslogtreecommitdiff
path: root/source/slang/slang-ast-print.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-ast-print.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-ast-print.cpp')
-rw-r--r--source/slang/slang-ast-print.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/source/slang/slang-ast-print.cpp b/source/slang/slang-ast-print.cpp
index da35a2818..bc0410fee 100644
--- a/source/slang/slang-ast-print.cpp
+++ b/source/slang/slang-ast-print.cpp
@@ -107,14 +107,14 @@ void ASTPrinter::_addDeclPathRec(const DeclRef<Decl>& declRef, Index depth)
auto& sb = m_builder;
// Find the parent declaration
- auto parentDeclRef = declRef.getParent();
+ auto parentDeclRef = declRef.getParent(m_astBuilder);
// If the immediate parent is a generic, then we probably
// want the declaration above that...
auto parentGenericDeclRef = parentDeclRef.as<GenericDecl>();
if (parentGenericDeclRef)
{
- parentDeclRef = parentGenericDeclRef.getParent();
+ parentDeclRef = parentGenericDeclRef.getParent(m_astBuilder);
}
// Depending on what the parent is, we may want to format things specially
@@ -224,7 +224,7 @@ void ASTPrinter::addGenericParams(const DeclRef<GenericDecl>& genericDeclRef)
sb << "<";
bool first = true;
- for (auto paramDeclRef : getMembers(genericDeclRef))
+ for (auto paramDeclRef : getMembers(m_astBuilder, genericDeclRef))
{
if (auto genericTypeParam = paramDeclRef.as<GenericTypeParamDecl>())
{
@@ -270,7 +270,7 @@ void ASTPrinter::addDeclParams(const DeclRef<Decl>& declRef, List<Range<Index>>*
sb << "(";
bool first = true;
- for (auto paramDeclRef : getParameters(funcDeclRef))
+ for (auto paramDeclRef : getParameters(m_astBuilder, funcDeclRef))
{
if (!first) sb << ", ";
@@ -331,7 +331,7 @@ void ASTPrinter::addDeclParams(const DeclRef<Decl>& declRef, List<Range<Index>>*
{
addGenericParams(genericDeclRef);
- addDeclParams(DeclRef<Decl>(getInner(genericDeclRef), genericDeclRef.substitutions), outParamRange);
+ addDeclParams(m_astBuilder->getSpecializedDeclRef<Decl>(getInner(genericDeclRef), genericDeclRef.substitutions), outParamRange);
}
else
{
@@ -443,7 +443,7 @@ void ASTPrinter::addDeclResultType(const DeclRef<Decl>& inDeclRef)
DeclRef<Decl> declRef = inDeclRef;
if (auto genericDeclRef = declRef.as<GenericDecl>())
{
- declRef = DeclRef<Decl>(getInner(genericDeclRef), genericDeclRef.substitutions);
+ declRef = m_astBuilder->getSpecializedDeclRef<Decl>(getInner(genericDeclRef), genericDeclRef.substitutions);
}
if (as<ConstructorDecl>(declRef))