diff --git a/src/language/ast/ASTNodeDataTypeBuilder.cpp b/src/language/ast/ASTNodeDataTypeBuilder.cpp index 7cbeb6adfdc96f8c2a56796c32c83592f0839d40..a71df9a3d662ee01d95e40366faeaadc081ea561 100644 --- a/src/language/ast/ASTNodeDataTypeBuilder.cpp +++ b/src/language/ast/ASTNodeDataTypeBuilder.cpp @@ -282,7 +282,7 @@ ASTNodeDataTypeBuilder::_buildNodeDataTypes(ASTNode& n) const } else if (n.is_type<language::eq_op>() or n.is_type<language::multiplyeq_op>() or n.is_type<language::divideeq_op>() or n.is_type<language::pluseq_op>() or n.is_type<language::minuseq_op>()) { - n.m_data_type = n.children[0]->m_data_type; + n.m_data_type = ASTNodeDataType::build<ASTNodeDataType::void_t>(); } else if (n.is_type<language::tuple_expression>()) { std::vector<std::shared_ptr<const ASTNodeDataType>> sub_data_type_list; diff --git a/tests/test_ASTNodeDataTypeBuilder.cpp b/tests/test_ASTNodeDataTypeBuilder.cpp index dd206297d82c52bbbf7dda7e304d6b3966524d4f..6c37b1afe9a7c411e2c1643ac1bd1e3cb1a72aeb 100644 --- a/tests/test_ASTNodeDataTypeBuilder.cpp +++ b/tests/test_ASTNodeDataTypeBuilder.cpp @@ -894,7 +894,7 @@ x = f(x); | `-(language::expression_list:list(Z*Z)) | +-(language::integer:1:Z) | `-(language::integer:2:Z) - `-(language::eq_op:R^2) + `-(language::eq_op:void) +-(language::name:x:R^2) `-(language::function_evaluation:R^2) +-(language::name:f:function) @@ -1285,7 +1285,7 @@ a = 1; +-(language::var_declaration:void) | +-(language::name:a:N) | `-(language::N_set:typename(N)) - `-(language::eq_op:N) + `-(language::eq_op:void) +-(language::name:a:N) `-(language::integer:1:Z) )"; @@ -1307,7 +1307,7 @@ a *= 1.2; | +-(language::N_set:typename(N)) | +-(language::name:a:N) | `-(language::integer:1:Z) - `-(language::multiplyeq_op:N) + `-(language::multiplyeq_op:void) +-(language::name:a:N) `-(language::real:1.2:R) )"; @@ -1329,7 +1329,7 @@ a /= 2; | +-(language::R_set:typename(R)) | +-(language::name:a:R) | `-(language::integer:3:Z) - `-(language::divideeq_op:R) + `-(language::divideeq_op:void) +-(language::name:a:R) `-(language::integer:2:Z) )"; @@ -1351,7 +1351,7 @@ a += 2; | +-(language::Z_set:typename(Z)) | +-(language::name:a:Z) | `-(language::integer:3:Z) - `-(language::pluseq_op:Z) + `-(language::pluseq_op:void) +-(language::name:a:Z) `-(language::integer:2:Z) )"; @@ -1373,7 +1373,7 @@ a -= 2; | +-(language::Z_set:typename(Z)) | +-(language::name:a:Z) | `-(language::integer:1:Z) - `-(language::minuseq_op:Z) + `-(language::minuseq_op:void) +-(language::name:a:Z) `-(language::integer:2:Z) )"; @@ -1416,10 +1416,10 @@ for (let i:Z, i=0; i<3; i += 1) { i += 2; } +-(language::lesser_op:B) | +-(language::name:i:Z) | `-(language::integer:3:Z) - +-(language::pluseq_op:Z) + +-(language::pluseq_op:void) | +-(language::name:i:Z) | `-(language::integer:1:Z) - `-(language::pluseq_op:Z) + `-(language::pluseq_op:void) +-(language::name:i:Z) `-(language::integer:2:Z) )";