summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-syntax.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-syntax.cpp')
-rw-r--r--source/slang/slang-syntax.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/source/slang/slang-syntax.cpp b/source/slang/slang-syntax.cpp
index 4e5db17c0..6076a41ca 100644
--- a/source/slang/slang-syntax.cpp
+++ b/source/slang/slang-syntax.cpp
@@ -513,6 +513,13 @@ Index getFilterCountImpl(const ReflectClassInfo& clsInfo, MemberFilterStyle filt
vecType->elementCount = ExtractGenericArgInteger(subst->getArgs()[1]);
return vecType;
}
+ else if (magicMod->magicName == "ArrayType")
+ {
+ SLANG_ASSERT(subst && subst->getArgs().getCount() == 2);
+ auto vecType = astBuilder->getOrCreate<ArrayExpressionType>(ExtractGenericArgType(subst->getArgs()[0]), ExtractGenericArgInteger(subst->getArgs()[1]));
+ vecType->declRef = declRef;
+ return vecType;
+ }
else if (magicMod->magicName == "Matrix")
{
SLANG_ASSERT(subst && subst->getArgs().getCount() == 3);
@@ -1097,19 +1104,14 @@ Index getFilterCountImpl(const ReflectClassInfo& clsInfo, MemberFilterStyle filt
Type* elementType,
IntVal* elementCount)
{
- auto arrayType = astBuilder->create<ArrayExpressionType>();
- arrayType->baseType = elementType;
- arrayType->arrayLength = elementCount;
- return arrayType;
+ return astBuilder->getArrayType(elementType, elementCount);
}
ArrayExpressionType* getArrayType(
ASTBuilder* astBuilder,
Type* elementType)
{
- auto arrayType = astBuilder->create<ArrayExpressionType>();
- arrayType->baseType = elementType;
- return arrayType;
+ return astBuilder->getArrayType(elementType, nullptr);
}
NamedExpressionType* getNamedType(