I know that parameters can also be passed by value, when the compiler decides to do so. I just didn't mention it, because semantically it is the same if you have a copy of an object that you cant modify, or a reference to the original object that you can't modify either. And since it did work without problems I left out the detail that sometimes parameters are passed by value. I didn't look it up, I just assumed that all types with inheritance are always passed by reference, because those types are meant to be used is a polymorphic context, and pass by value would not allow the function to be used in a polymorphic way.
So I think technically you are right with "This is currently not specified", but I highly doubt that this behaviour might change in the future, because it just works too well. I think this pass by value and pass by reference should be documented more. I don't think your example is a bug , I think it is a very well written example of how to not use the `bycopy` pragma, because it destroys the polymorphic attributes of polymorphic types. EDIT: I just realized my message reads a bit offensive. Sorry for that, I like your last post, I just don't agree with your message.
