@@ -116,6 +116,15 @@ namespace nzsl::Ast
116116 inline bool operator !=(const ImplicitArrayType& rhs) const ;
117117 };
118118
119+ struct ImplicitMatrixType
120+ {
121+ std::size_t columnCount;
122+ std::size_t rowCount;
123+
124+ inline bool operator ==(const ImplicitMatrixType& rhs) const ;
125+ inline bool operator !=(const ImplicitMatrixType& rhs) const ;
126+ };
127+
119128 struct ImplicitVectorType
120129 {
121130 std::size_t componentCount;
@@ -253,7 +262,7 @@ namespace nzsl::Ast
253262 inline bool operator !=(const PushConstantType& rhs) const ;
254263 };
255264
256- using ExpressionType = std::variant<NoType, AliasType, ArrayType, DynArrayType, FunctionType, ImplicitArrayType, ImplicitVectorType, IntrinsicFunctionType, MatrixType, MethodType, ModuleType, NamedExternalBlockType, PrimitiveType, PushConstantType, SamplerType, StorageType, StructType, TextureType, Type, UniformType, VectorType>;
265+ using ExpressionType = std::variant<NoType, AliasType, ArrayType, DynArrayType, FunctionType, ImplicitArrayType, ImplicitMatrixType, ImplicitVectorType, IntrinsicFunctionType, MatrixType, MethodType, ModuleType, NamedExternalBlockType, PrimitiveType, PushConstantType, SamplerType, StorageType, StructType, TextureType, Type, UniformType, VectorType>;
257266
258267 struct ContainedType
259268 {
@@ -287,6 +296,7 @@ namespace nzsl::Ast
287296 inline bool IsFunctionType (const ExpressionType& type);
288297 inline bool IsImplicitType (const ExpressionType& type);
289298 inline bool IsImplicitArrayType (const ExpressionType& type);
299+ inline bool IsImplicitMatrixType (const ExpressionType& type);
290300 inline bool IsImplicitVectorType (const ExpressionType& type);
291301 inline bool IsIntrinsicFunctionType (const ExpressionType& type);
292302 inline bool IsMatrixType (const ExpressionType& type);
@@ -347,6 +357,8 @@ namespace nzsl::Ast
347357
348358 NZSL_API std::string ToString (const AliasType& type, const Stringifier& stringifier = {});
349359 NZSL_API std::string ToString (const ArrayType& type, const Stringifier& stringifier = {});
360+ NZSL_API std::string ToString (const ImplicitArrayType& type, const Stringifier& stringifier = {});
361+ NZSL_API std::string ToString (const ImplicitMatrixType& type, const Stringifier& stringifier = {});
350362 NZSL_API std::string ToString (const ImplicitVectorType& type, const Stringifier& stringifier = {});
351363 NZSL_API std::string ToString (const DynArrayType& type, const Stringifier& stringifier = {});
352364 NZSL_API std::string ToString (const ExpressionType& type, const Stringifier& stringifier = {});
0 commit comments