aboutsummaryrefslogtreecommitdiff
path: root/tests/i/overload-functions/program.cps
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-17 10:32:30 +0000
committer_ov4 <ov4@ov4.org>2026-10-17 10:32:30 +0000
commit377a1fd2eadd2a70cd27f13e2fee6e96c8706a51 (patch)
treec05665f26b3434359cf4ae7720e8f9111a322522 /tests/i/overload-functions/program.cps
parentf5246db6d045ffb86d6717e1b1c37f03bcb2b75b (diff)
feat(codegen): overload global functions and procedures
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests/i/overload-functions/program.cps')
-rw-r--r--tests/i/overload-functions/program.cps49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/i/overload-functions/program.cps b/tests/i/overload-functions/program.cps
new file mode 100644
index 0000000..e76637d
--- /dev/null
+++ b/tests/i/overload-functions/program.cps
@@ -0,0 +1,49 @@
+OVERLOAD FUNCTION Pick(x : INTEGER) RETURNS INTEGER
+RETURN x + 1
+ENDFUNCTION
+OVERLOAD FUNCTION Pick(x : REAL) RETURNS BOOLEAN
+RETURN x > 0
+ENDFUNCTION
+OVERLOAD FUNCTION Pick(x : INTEGER, y : INTEGER) RETURNS STRING
+RETURN "pair"
+ENDFUNCTION
+OVERLOAD PROCEDURE Pick(x : STRING)
+OUTPUT x
+ENDPROCEDURE
+OVERLOAD FUNCTION Pick(a : ARRAY OF INTEGER) RETURNS INTEGER
+RETURN a[1]
+ENDFUNCTION
+OVERLOAD FUNCTION Pick(a : ARRAY[1:2,1:2] OF INTEGER) RETURNS INTEGER
+RETURN a[2,2]
+ENDFUNCTION
+OVERLOAD FUNCTION Pick(a : ARRAY OF REAL) RETURNS BOOLEAN
+RETURN a[1] > 0
+ENDFUNCTION
+DECLARE a : ARRAY[1:2] OF INTEGER
+DECLARE b : ARRAY[1:2,1:2] OF INTEGER
+DECLARE c : ARRAY[1:2] OF REAL
+a[1] <- 7
+b[2,2] <- 9
+c[1] <- 1.0
+OUTPUT pIcK(2)
+OUTPUT Pick(2.0)
+OUTPUT Pick(1, 2)
+CALL Pick("text")
+OUTPUT Pick(a)
+OUTPUT Pick(b)
+OUTPUT Pick(c)
+OUTPUT Pick(Pick(1))
+OVERLOAD PROCEDURE Bump(BYREF x : INTEGER)
+x <- x + 1
+ENDPROCEDURE
+OVERLOAD PROCEDURE Bump(BYREF x : REAL)
+x <- x + 2.0
+ENDPROCEDURE
+FUNCTION Legacy(x : REAL) RETURNS BOOLEAN
+RETURN x > 0
+ENDFUNCTION
+DECLARE n : INTEGER
+n <- 4
+CALL Bump(n)
+OUTPUT n
+OUTPUT Legacy(1)