Hi Manfred!
Thanks for reporting this issue, we confirm, and for providing minimal, viable snippets!
In short: Yes, you need a workaround at this point to have your value=delete implementation become effective. You pointed out the options: (a) omit the type specifier ("object") or any other; (b) provide for an value=add implementation, which will also
leave the value=delete method untouched.
In our development mainline, we provide for a fix plus tests:
See
https://fisheye.openacs.org/changelog/nsf?cs=83355de2812519cf29dc92cfdc2fc4892303f6ab
This will enter the maintenance release 2.4.1.
Some remarks on providing custom implementations of value=add, value=delete. You need to be careful: any type validation (object, integer; name it) should also be performed on the method parameter "value" -> "value:object":
:public object method value=delete {obj var value:object args} {
next
}
This is important, in particular your value= implementation effectively overrides the base method (no next), but is also more local. We will consider some scaffolding for providing custom accessors/ mutators in the future.
HTH, Stefan
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)