Difference between revisions of "Talk:New CAT call"
Line 2: | Line 2: | ||
Changing ANY into STRING is covariance, changing STRING into ANY is covariance--[[User:Manus|manus]] 18:38, 8 November 2006 (CET) | Changing ANY into STRING is covariance, changing STRING into ANY is covariance--[[User:Manus|manus]] 18:38, 8 November 2006 (CET) | ||
+ | |||
+ | Hmm - that sentence does not make sense. I assume you wanted to say ''STRING into ANY is contravariance''. But that was not the point. Changing ANY into ?STRING is contravariant. ''Could be STRING'' is more permissive than ''must be ANY'' as the first can contain any value, while the second may not contain Void. --[[User:Schoelle|Schoelle]] 10:01, 9 November 2006 (CET) |
Revision as of 00:01, 9 November 2006
The most obvious observation is, that this weakens the new non-void typing mechanism, it is now possible to pass Void to feature f of class B2. This was probably not the intention of the programmer. - I do not understand this comment. Changing a:ANY into a:?STRING looks like a standard contravariant redefinition to me. Such redefinitions are sound. User:schoelle
Changing ANY into STRING is covariance, changing STRING into ANY is covariance--manus 18:38, 8 November 2006 (CET)
Hmm - that sentence does not make sense. I assume you wanted to say STRING into ANY is contravariance. But that was not the point. Changing ANY into ?STRING is contravariant. Could be STRING is more permissive than must be ANY as the first can contain any value, while the second may not contain Void. --Schoelle 10:01, 9 November 2006 (CET)