aboutsummaryrefslogtreecommitdiff
path: root/tests/iii/class-overload-errors
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-17 10:34:37 +0000
committer_ov4 <ov4@ov4.org>2026-10-17 10:34:37 +0000
commite572d278a44d286c8713d0ee4af9c72a3d1ca73c (patch)
tree2fd37a936d1d96869776b2fd4577a121eee974c2 /tests/iii/class-overload-errors
parent377a1fd2eadd2a70cd27f13e2fee6e96c8706a51 (diff)
feat(classes): overload methods and NEW constructors
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests/iii/class-overload-errors')
-rw-r--r--tests/iii/class-overload-errors/case.json20
-rw-r--r--tests/iii/class-overload-errors/program.cps20
2 files changed, 40 insertions, 0 deletions
diff --git a/tests/iii/class-overload-errors/case.json b/tests/iii/class-overload-errors/case.json
new file mode 100644
index 0000000..afc0e6a
--- /dev/null
+++ b/tests/iii/class-overload-errors/case.json
@@ -0,0 +1,20 @@
+{
+ "errors": [
+ {
+ "reason": "Duplicate member Set in class Mixed",
+ "line": 4
+ },
+ {
+ "reason": "No matching overload for Required.NEW\\(\\)",
+ "line": 17
+ },
+ {
+ "reason": "Cannot access private method Set of type Secret",
+ "line": 19
+ },
+ {
+ "reason": "No matching overload for Secret.Set\\(BOOLEAN\\)",
+ "line": 20
+ }
+ ]
+}
diff --git a/tests/iii/class-overload-errors/program.cps b/tests/iii/class-overload-errors/program.cps
new file mode 100644
index 0000000..586d47d
--- /dev/null
+++ b/tests/iii/class-overload-errors/program.cps
@@ -0,0 +1,20 @@
+CLASS Mixed
+OVERLOAD PROCEDURE Set(x : INTEGER)
+ENDPROCEDURE
+PROCEDURE Set(x : STRING)
+ENDPROCEDURE
+ENDCLASS
+CLASS Required
+OVERLOAD PROCEDURE NEW(x : INTEGER)
+ENDPROCEDURE
+ENDCLASS
+CLASS Secret
+PRIVATE OVERLOAD PROCEDURE Set(x : INTEGER)
+ENDPROCEDURE
+PUBLIC OVERLOAD PROCEDURE Set(x : STRING)
+ENDPROCEDURE
+ENDCLASS
+DECLARE item : Required
+DECLARE obj : Secret
+CALL obj.Set(1)
+CALL obj.Set(TRUE)