aboutsummaryrefslogtreecommitdiff
path: root/tests/iii/template-header-errors/program.cps
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-21 05:43:35 +0000
committer_ov4 <ov4@ov4.org>2026-10-21 05:43:35 +0000
commitdd5bbae055fd34ce2e12ef63f8a261c6b15dc83e (patch)
tree757e367daacf92c50148eb42d7bda97ba33ed3fb /tests/iii/template-header-errors/program.cps
parentc682f983b0dce3acba76d1f08719a26b9c52c5ec (diff)
feat(parser): parse TEMPLATE declarations, template ids and parameter packs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests/iii/template-header-errors/program.cps')
-rw-r--r--tests/iii/template-header-errors/program.cps39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/iii/template-header-errors/program.cps b/tests/iii/template-header-errors/program.cps
new file mode 100644
index 0000000..73c34a2
--- /dev/null
+++ b/tests/iii/template-header-errors/program.cps
@@ -0,0 +1,39 @@
+TEMPLATE <T, t>
+FUNCTION Duplicate(Value : T) RETURNS T
+ RETURN Value
+ENDFUNCTION
+
+TEMPLATE <Rest..., T>
+PROCEDURE NotLast()
+ENDPROCEDURE
+
+TEMPLATE <A..., B...>
+PROCEDURE TwoPacks()
+ENDPROCEDURE
+
+TEMPLATE <T>
+TYPE Alias = ^T
+
+TEMPLATE <T>
+OVERLOAD FUNCTION OPERATOR+(Value : T) RETURNS T
+ RETURN Value
+ENDFUNCTION
+
+IF TRUE THEN
+ TEMPLATE <T>
+ PROCEDURE Nested(Value : T)
+ OUTPUT 99
+ ENDPROCEDURE
+ENDIF
+
+CLASS Outer
+ TEMPLATE <T>
+ PROCEDURE Member(Value : T)
+ ENDPROCEDURE
+ENDCLASS
+
+TEMPLATE <>
+PROCEDURE Empty()
+ENDPROCEDURE
+
+OUTPUT 0