Bradley Baetz wrote: > > The contract has been extended, not violated. If we agree that action A > does E, that doesn't preclude action B doing something else. > > The only way this could be noticed is someone compiling an object using > the new constants against an older version of the interface - this would > fail. However, it would also fail if we'd chosen to define a new interface > instead.
In this example that uses enums instead of flags we really are changing the interface. It's a change in the contract, whether or not you call it an extension or not. --Chris -- ------------ Christopher Blizzard http://people.redhat.com/blizzard/ Mozilla.org - we're on a mission from God. Still. ------------
