enhanced the compiler to prohibit variable declaration in class init scope
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2023-11-27 18:25:27 +09:00
parent eede341cfa
commit f3c0c1b8c1
6 changed files with 48 additions and 54 deletions

View File

@ -1,14 +1,25 @@
defclass Object {
defclass A | a | {
defun ::* init1() {
| b |
set b (+ 1 2);
set a b;
printf "init to %d\n" a;
return self;
};
{
## this must not be allowed at this level. if it's allowed,
## it should be at the top-level which is above the class level. this is confusing.
| j | ## ERROR: syntax error
| j | ##ERROR: syntax error - variable declaration disallowed in class init scope
set j 20;
printf ">>> %d\n" j;
}
defun ::* init() {
printf "Object init...\n";
defun ::* init2() {
| b |
set b (+ 10 20);
set a b;
printf "init to %d\n" a;
return self;
};
};