diff --git a/tests/test_ASTNodeDataTypeBuilder.cpp b/tests/test_ASTNodeDataTypeBuilder.cpp
index 346807df3b58e189a7e1283850fbdda54264abbb..96af38a0b905014ea518653795ba95850e486055 100644
--- a/tests/test_ASTNodeDataTypeBuilder.cpp
+++ b/tests/test_ASTNodeDataTypeBuilder.cpp
@@ -1002,6 +1002,21 @@ let cat : string*N -> string, (s,n) -> s+n;
       CHECK_AST(data, result);
     }
 
+    SECTION("builtin-functions")
+    {
+      std::string_view data = R"(
+let foo : builtin_t*N -> builtin_t, (b,n) -> b;
+)";
+
+      std::string_view result = R"(
+(root:void)
+ `-(language::fct_declaration:void)
+     `-(language::name:foo:function)
+)";
+
+      CHECK_AST_WITH_BUILTIN(data, result);
+    }
+
     SECTION("errors")
     {
       SECTION("wrong parameter number")
@@ -1312,6 +1327,35 @@ let s : string, s = cat("foo", "bar");
       CHECK_AST(data, result);
     }
 
+    SECTION("bultin_t-function")
+    {
+      std::string_view data = R"(
+let foo : builtin_t*N -> builtin_t, (b,n) -> b;
+let b0: builtin_t;
+let b : builtin_t, b = foo(b0, 1);
+)";
+
+      std::string_view result = R"(
+(root:void)
+ +-(language::fct_declaration:void)
+ |   `-(language::name:foo:function)
+ +-(language::var_declaration:void)
+ |   +-(language::name:b0:builtin_t)
+ |   `-(language::type_name_id:builtin_t)
+ `-(language::var_declaration:void)
+     +-(language::name:b:builtin_t)
+     +-(language::type_name_id:builtin_t)
+     +-(language::name:b:builtin_t)
+     `-(language::function_evaluation:builtin_t)
+         +-(language::name:foo:function)
+         `-(language::function_argument_list:builtin_t*Z)
+             +-(language::name:b0:builtin_t)
+             `-(language::integer:1:Z)
+)";
+
+      CHECK_AST_WITH_BUILTIN(data, result);
+    }
+
     SECTION("compound return function")
     {
       std::string_view data = R"(