diff --git a/tests/test_ASTNodeDataType.cpp b/tests/test_ASTNodeDataType.cpp
index 21f5c08bfbe6399b8d5a27ea2c33b56e84f78232..3d4ea9b6954363cdd9007679e425d5f4f4c74c36 100644
--- a/tests/test_ASTNodeDataType.cpp
+++ b/tests/test_ASTNodeDataType.cpp
@@ -31,6 +31,9 @@ TEST_CASE("ASTNodeDataType", "[language]")
 
   const ASTNodeDataType list_dt = ASTNodeDataType::build<ASTNodeDataType::list_t>(type_list);
 
+  const ASTNodeDataType empty_list_dt =
+    ASTNodeDataType::build<ASTNodeDataType::list_t>(std::vector<std::shared_ptr<const ASTNodeDataType>>{});
+
   SECTION("dataTypeName")
   {
     REQUIRE(dataTypeName(undefined_dt) == "undefined");
@@ -44,6 +47,7 @@ TEST_CASE("ASTNodeDataType", "[language]")
     REQUIRE(dataTypeName(function_dt) == "function");
     REQUIRE(dataTypeName(builtin_function_dt) == "builtin_function");
     REQUIRE(dataTypeName(list_dt) == "list(R*Z)");
+    REQUIRE(dataTypeName(empty_list_dt) == "list(void)");
     REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(bool_dt)) == "tuple(B)");
     REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(unsigned_int_dt)) == "tuple(N)");
     REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(int_dt)) == "tuple(Z)");
@@ -57,6 +61,10 @@ TEST_CASE("ASTNodeDataType", "[language]")
     REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::vector_t>(1)) == "R^1");
     REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::vector_t>(2)) == "R^2");
     REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::vector_t>(3)) == "R^3");
+
+    REQUIRE(dataTypeName(std::vector<ASTNodeDataType>{}) == "void");
+    REQUIRE(dataTypeName(std::vector<ASTNodeDataType>{bool_dt}) == "B");
+    REQUIRE(dataTypeName(std::vector<ASTNodeDataType>{bool_dt, unsigned_int_dt}) == "(B,N)");
   }
 
   SECTION("promotion")