diff --git a/source/lang/evaluator.cpp b/source/lang/evaluator.cpp index faa52af42..d128713e0 100644 --- a/source/lang/evaluator.cpp +++ b/source/lang/evaluator.cpp @@ -69,6 +69,9 @@ namespace hex::lang { return { nullptr, 0 }; } + if (arraySize.value() == 0) + continue; + ASTNodeVariableDecl *processedMember = new ASTNodeVariableDecl(member->getLineNumber(), member->getVariableType(), member->getVariableName(), member->getCustomVariableTypeName(), member->getOffset(), arraySize.value()); std::tie(pattern, memberSize) = this->createArrayPattern(processedMember, memberOffset); @@ -161,10 +164,8 @@ namespace hex::lang { return { nullptr, 0 }; } - if (arraySize.value() == 0) { - this->m_error = { varDeclNode->getLineNumber(), hex::format("Value of '%s' is zero", member->getArraySizeVariable().value().c_str()) }; - return { nullptr, 0 }; - } + if (arraySize.value() == 0) + continue; ASTNodeVariableDecl *processedMember = new ASTNodeVariableDecl(member->getLineNumber(), member->getVariableType(), member->getVariableName(), member->getCustomVariableTypeName(), member->getOffset(), arraySize.value());