Andrew Parker via RT wrote: > On Thu Jun 28 16:34:17 2007, toddr@null.net wrote: >> While comparing pdd15_objects compared to the tests located in >> t/pdd15oo we cannot find evidence the following tests exist: >> callmethodsupercc >> callmethodnextcc >> newclass >> get_class >> removeparent >> removeattribute >> addrole > > I just ran into these docs being wrong. It appears that it is not simply that there are missing > tests, but missing implementations as well. I have found no other references, except in > PDD15, to the following ops: > > * callmethodsupercc > * callmethodnextcc The ops were added in PDD 15, but haven't been implemented yet. The docs are correct, the implementation needs to be updated. > After stumbling across the Super PMC I suspect that those two ops are not going to be > supported. Super seems to support callmethodsupercc, though, but I don't see support for > callmethodnextcc anywhere. I've attached a patch to remove these 2 ops from PDD15. Super PMC will be deprecated (or at least greatly changed). It's an old attempt at parent proxying and can never work properly as currently implemented. > These ops look to still not be in any tests: > > * removeparent > * removeattribute > > After looking a bit closer into these (and trying to write a test for removeparent) I came > across RT#50646. It appears that removeparent may not be getting implemented. The > implementation of removeattribute is currently: > > real_exception(interp, NULL, UNIMPLEMENTED, "removeattribute is not implemented"); Not yet implemented. In theory, these are logical features to have. In practice, they're not used by our target languages (or any language that I'm aware of). I suspect that the future of dynamically recomposing classes is more likely to take the form of combining sets of roles in various different ways, rather than manually deleting a parent, role, or attribute from an existing class. Show of hands for language implementors that need the ability to remove a parent or attribute from a class? Allison