On 14-11-2007 22:56:27 +0100, Martin Kersten wrote:
Fabian Groffen wrote:
On 14-11-2007 22:46:34 +0100, darabi@web.de wrote:
mal> # create schema, if it doesn't exist mal> catch MALException:str; mal> mal> s := bat.new(:void,:oid); mal> bat.setName(s, "schema"); mal> bat.setPersistent(s); mal> mal> s := bat.new(:void,:void);
The error occurs here. This is a typing issue, but the expert has to give his opinion on it to make it final. ;)
You can try (haven't tested it) to first set it to nil, e.g.: s := nil;
there he is:-)
In MAL arguments and signatures are strongly typed.
s:bat[:void,:oid] := bat.new(_6:void, _6:void)
is type incompatible. it should have been
s:bat[:void,:oid] := bat.new(_6:void, _7:oid)
The observation is that you cannot reuse variables, unless you want to reuse them for something which has exactly the same type. The assignment makes that counter intuitive, because it /does/ work when the variable has never been referenced before.