diff --git a/src/language/ast/ASTNodeDataTypeBuilder.cpp b/src/language/ast/ASTNodeDataTypeBuilder.cpp
index 5197b2d1c0dd868d94afa24361e5a13cd5cdf8ba..404a351b5c46e946f155b25f358a18a2e94acb1d 100644
--- a/src/language/ast/ASTNodeDataTypeBuilder.cpp
+++ b/src/language/ast/ASTNodeDataTypeBuilder.cpp
@@ -38,14 +38,14 @@ ASTNodeDataTypeBuilder::_buildDeclarationNodeDataTypes(ASTNode& type_node, ASTNo
     } else if (type_node.is_type<language::vector_type>()) {
       data_type = getVectorDataType(type_node);
     } else if (type_node.is_type<language::tuple_type_specifier>()) {
-      auto& content_node = type_node.children[0];
+      const auto& content_node = type_node.children[0];
 
       if (content_node->is_type<language::type_name_id>()) {
         const std::string& type_name_id = content_node->string();
 
         auto& symbol_table = *type_node.m_symbol_table;
 
-        auto [i_type_symbol, found] = symbol_table.find(type_name_id, content_node->begin());
+        const auto [i_type_symbol, found] = symbol_table.find(type_name_id, content_node->begin());
         if (not found) {
           throw parse_error("undefined type identifier", std::vector{content_node->begin()});
         } else if (i_type_symbol->attributes().dataType() != ASTNodeDataType::type_name_id_t) {
@@ -56,7 +56,6 @@ ASTNodeDataTypeBuilder::_buildDeclarationNodeDataTypes(ASTNode& type_node, ASTNo
         }
 
         content_node->m_data_type = ASTNodeDataType{ASTNodeDataType::type_id_t, type_name_id};
-        i_type_symbol->attributes().setDataType(content_node->m_data_type);
       } else if (content_node->is_type<language::B_set>()) {
         content_node->m_data_type = ASTNodeDataType::bool_t;
       } else if (content_node->is_type<language::Z_set>()) {
diff --git a/src/language/utils/SymbolTable.hpp b/src/language/utils/SymbolTable.hpp
index 667ae89ae41866cd0da2bd86fbff18be53b9af5f..246749dabde8bbbda683415d0b6afd75d7baba64 100644
--- a/src/language/utils/SymbolTable.hpp
+++ b/src/language/utils/SymbolTable.hpp
@@ -80,6 +80,7 @@ class SymbolTable
     void
     setDataType(const ASTNodeDataType& data_type)
     {
+      Assert(m_data_type == ASTNodeDataType::undefined_t, "data type has already been defined!");
       m_data_type = data_type;
     }