From 377a1fd2eadd2a70cd27f13e2fee6e96c8706a51 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Sat, 17 Oct 2026 10:32:30 +0000 Subject: feat(codegen): overload global functions and procedures Co-Authored-By: Claude Opus 5.5 --- tests/i/overload-functions/program.cps | 49 ++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 tests/i/overload-functions/program.cps (limited to 'tests/i/overload-functions/program.cps') 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) -- cgit v1.3.1-4-g156e