Hi! > Well, LSP is typically not applied to program semantics, since this is > not a generally decidable problem. The only post-conditions that LSP > normally enforces is type based, i.e. the covariance of the return > type.
Err, I'm not sure where you are taking this from, but LSP is certainly not limited to return types. See: https://en.wikipedia.org/wiki/Liskov_substitution_principle If you look at classic Square/Rectangle example, it's all about semantics and has nothing to do with types. > Instead, LSP simply states that, given B <: A, all objects of A can be > substituted by objects of B while preserving the validity of the > method calls on these objects, and the validity of their return > values. This is guaranteed here: I would suggest at that point reading actual description of the LSP. You rendition of it is wrong. -- Stanislav Malyshev, Software Architect SugarCRM: http://www.sugarcrm.com/ (408)454-6900 ext. 227 -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php