Well, in all honesty, it is a bit unclear if thought of as a general sentence.
Expected _m_delete method in object or Expected object with _m_delete method
are more clear than
Expected object with _m_delete
which can be read as "Expected and object to be passed to the _m_delete method", although it would (also) be a very odd way to write that statement. Clarifying that an object with the _method_ _m_delete is wanted, is not a bad idea (same thing goes for other methods which would give a similar method (_indices/_values/_sprintf don't apply since they have a default behavior already and thus don't throw that particular error).
/ David Hedbor
Previous text:
2003-02-10 23:18: Subject: Re: Implicit vs. explicit type casting with Pike
_m_delete() is to m_delete() as _indices() is to indices(). So _m_delete is the function that the object has to implement for m_delete to work on it. It doesn't matter whether it implements a function m_delete or not. Thus the missing function in the object is _m_delete. The object is passed as the first argument to m_delete. Therefore the error message in m_delete says that the object in the first argument lacks an _m_delete. It does that in a clear and concise way, imo.
/ Martin Stjernholm, Roxen IS