aboutsummaryrefslogtreecommitdiff
path: root/tools/tree-sitter/test/corpus/generic_const_inference.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tools/tree-sitter/test/corpus/generic_const_inference.txt')
-rw-r--r--tools/tree-sitter/test/corpus/generic_const_inference.txt204
1 files changed, 204 insertions, 0 deletions
diff --git a/tools/tree-sitter/test/corpus/generic_const_inference.txt b/tools/tree-sitter/test/corpus/generic_const_inference.txt
new file mode 100644
index 0000000..e4b5bf9
--- /dev/null
+++ b/tools/tree-sitter/test/corpus/generic_const_inference.txt
@@ -0,0 +1,204 @@
+==================
+generic_const_inference
+==================
+
+program()
+type
+ ConstAlias = const ^Word8
+ BasePtr = ^Word8
+ NestedConst = const BasePtr
+
+var
+ slice: []const Word8
+ aliased: ConstAlias := nil
+ nested: NestedConst := nil
+ direct_const: const ^Word8 := nil
+
+proc write#[T](fd: Int; buf: ^T; count: Int) -> Int
+return 0
+
+proc write_const#[T](fd: Int; buf: ^const T; count: Int) -> Int
+return 0
+
+begin
+ write(1, slice.ptr, cast(slice.length: Int));
+ write(1, aliased, 0);
+ write(1, nested, 0);
+ write(1, direct_const, 0);
+ write_const(1, slice.ptr, cast(slice.length: Int));
+ write_const(1, aliased, 0);
+ write_const(1, nested, 0);
+ write_const(1, direct_const, 0)
+end.
+
+---
+
+(source_file
+ (program_declaration
+ (type_section
+ (type_declaration
+ (identifier_definition
+ (identifier))
+ (const_type
+ (pointer_type
+ (identifier))))
+ (type_declaration
+ (identifier_definition
+ (identifier))
+ (pointer_type
+ (identifier)))
+ (type_declaration
+ (identifier_definition
+ (identifier))
+ (const_type
+ (identifier))))
+ (var_section
+ (variable_declaration
+ (identifier_definition
+ (identifier))
+ (slice_type
+ (const_type
+ (identifier))))
+ (variable_declaration
+ (identifier_definition
+ (identifier))
+ (identifier)
+ (literal
+ (nil)))
+ (variable_declaration
+ (identifier_definition
+ (identifier))
+ (identifier)
+ (literal
+ (nil)))
+ (variable_declaration
+ (identifier_definition
+ (identifier))
+ (const_type
+ (pointer_type
+ (identifier)))
+ (literal
+ (nil))))
+ (procedure_declaration
+ (identifier_definition
+ (identifier))
+ (type_parameters
+ (identifier))
+ (parameter_list
+ (field_declaration
+ (identifier_definition
+ (identifier))
+ (identifier))
+ (field_declaration
+ (identifier_definition
+ (identifier))
+ (pointer_type
+ (identifier)))
+ (field_declaration
+ (identifier_definition
+ (identifier))
+ (identifier)))
+ (identifier)
+ (procedure_body
+ (return_clause
+ (literal
+ (integer)))))
+ (procedure_declaration
+ (identifier_definition
+ (identifier))
+ (type_parameters
+ (identifier))
+ (parameter_list
+ (field_declaration
+ (identifier_definition
+ (identifier))
+ (identifier))
+ (field_declaration
+ (identifier_definition
+ (identifier))
+ (pointer_type
+ (const_type
+ (identifier))))
+ (field_declaration
+ (identifier_definition
+ (identifier))
+ (identifier)))
+ (identifier)
+ (procedure_body
+ (return_clause
+ (literal
+ (integer)))))
+ (call_expression
+ (identifier)
+ (argument_list
+ (literal
+ (integer))
+ (field_expression
+ (identifier)
+ (identifier))
+ (cast_expression
+ (field_expression
+ (identifier)
+ (identifier))
+ (identifier))))
+ (call_expression
+ (identifier)
+ (argument_list
+ (literal
+ (integer))
+ (identifier)
+ (literal
+ (integer))))
+ (call_expression
+ (identifier)
+ (argument_list
+ (literal
+ (integer))
+ (identifier)
+ (literal
+ (integer))))
+ (call_expression
+ (identifier)
+ (argument_list
+ (literal
+ (integer))
+ (identifier)
+ (literal
+ (integer))))
+ (call_expression
+ (identifier)
+ (argument_list
+ (literal
+ (integer))
+ (field_expression
+ (identifier)
+ (identifier))
+ (cast_expression
+ (field_expression
+ (identifier)
+ (identifier))
+ (identifier))))
+ (call_expression
+ (identifier)
+ (argument_list
+ (literal
+ (integer))
+ (identifier)
+ (literal
+ (integer))))
+ (call_expression
+ (identifier)
+ (argument_list
+ (literal
+ (integer))
+ (identifier)
+ (literal
+ (integer))))
+ (call_expression
+ (identifier)
+ (argument_list
+ (literal
+ (integer))
+ (identifier)
+ (literal
+ (integer))))))