According to the Rascal documentation, the language is statically typed. However the type errors are only reported on runtime.
For example, when I create this module, I expect a type error because I am assigning a real to an int variable:
module Example
void example() {
int x = 1.0;
println(x);
}
When I import the module on the REPL, and finally run the function:
rascal>import Example;
ok
rascal>example()
|project://Test/src/Example.rsc|(39,7,<4,6>,<4,13>): Expected int, but got real
☞ Advice