Files
hak/t/var-5001.err

79 lines
1.6 KiB
Plaintext

class A ( a ) {
fun[#ci] 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 - variable declaration disallowed in class init scope
set j 20;
printf ">>> %d\n" j;
}
fun[#ci] init2() {
| b |
set b (+ 10 20);
set a b;
printf "init to %d\n" a;
return self;
};
};
---
fun String length() { ##ERROR: syntax error - 'String' not followed by ( but followed by 'length'
}
---
class A ( 10 ) { ##ERROR: syntax error - not variable name '10'
}
---
class A ( a := 20 ) { ##ERROR: syntax error - block expression expected as 'class' body
}
---
class A ( ( (a) ) ) { ##ERROR: syntax error - not variable name
}
---
## TODO: improve the reader to be aware that it's in the class definition context
## while reading '(a + )' and to flag + as an invalid variable name...
class A ( a + ) { ##ERROR: syntax error - no operand after binary selector '+'
}
---
class A ( + ) { ##ERROR: syntax error - not variable name '+'
}
---
fun xxx(x :: p q) { p := (x + 1); q := (x + 2) }
[a,[b]] := (xxx 20) ##ERROR: syntax error - bad lvalue - invalid element in tuple
printf "%d %d\n" a b
---
20 := 90 ##ERROR: syntax error - bad lvalue - invalid element - 20
---
[a b] := 10 ##ERROR: syntax error - non-function call/non-message send disallowed
---
[] := 10 ##ERROR: syntax error - bad lvalue - blank expression
---
+ + 100 ##ERROR: exception not handled - "unable to send + to #<PRIM> - '+' not found in Primitive"