diff options
| author | Yong He <yonghe@outlook.com> | 2023-07-05 14:37:48 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-05 14:37:48 -0700 |
| commit | 6c7120d684cc46caafbe348d658158c0060a7638 (patch) | |
| tree | e8ba738564b5cdceda22013900a0ed762c184bd3 /source/slang/slang-ast-print.cpp | |
| parent | 6063304cb8d73d430e7ef81c62cd9822302fcc19 (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.cpp | 12 |
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)) |
