From 746ee0dc5bddeea177aaf609bcc5085b46c4057c Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 11 Jun 2021 12:49:04 -0700 Subject: Properly fill `declref` in `Linkage::getContainerType`. (#1882) * Properly fill `declref` in `Linkage::getContainerType`. * Fix timestamp query on cpu * Fix typo. Co-authored-by: Yong He --- source/slang/slang-ast-builder.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'source/slang/slang-ast-builder.cpp') diff --git a/source/slang/slang-ast-builder.cpp b/source/slang/slang-ast-builder.cpp index 240b39d6c..4948a68a6 100644 --- a/source/slang/slang-ast-builder.cpp +++ b/source/slang/slang-ast-builder.cpp @@ -257,6 +257,29 @@ VectorExpressionType* ASTBuilder::getVectorType( return as(DeclRefType::create(this, declRef)); } +DeclRef ASTBuilder::getBuiltinDeclRef(const char* builtinMagicTypeName, ConstArrayView genericArgs) +{ + DeclRef declRef; + declRef.decl = m_sharedASTBuilder->findMagicDecl(builtinMagicTypeName); + if (auto genericDecl = as(declRef.decl)) + { + if (genericArgs.getCount()) + { + auto substitutions = create(); + substitutions->genericDecl = genericDecl; + for (auto arg : genericArgs) + substitutions->args.add(arg); + declRef.substitutions = substitutions; + } + declRef.decl = genericDecl->inner; + } + else + { + SLANG_ASSERT(genericArgs.getCount() == 0); + } + return declRef; +} + Type* ASTBuilder::getAndType(Type* left, Type* right) { auto type = create(); -- cgit v1.2.3