<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nenieorg</id>
		<title>EiffelStudio: an EiffelSoftware project - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nenieorg"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/Special:Contributions/Nenieorg"/>
		<updated>2026-04-29T16:30:48Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:New_CAT_call&amp;diff=7514</id>
		<title>Talk:New CAT call</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:New_CAT_call&amp;diff=7514"/>
				<updated>2007-02-22T13:22:29Z</updated>
		
		<summary type="html">&lt;p&gt;Nenieorg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''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]]&lt;br /&gt;
&lt;br /&gt;
Changing ANY into STRING is covariance, changing  STRING into ANY is contravariance--[[User:Manus|manus]] 18:38, 8 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
Changing ANY into ?STRING is not contravariance, it is covariance. Seeing it contravariant is possible a side effect of one of the interpretation of the current standard when looking at the semantic. I think we need another terminology here to describe this unspecified semantics.--[[User:Manus|manus]] 19:24, 9 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Sorry, but I have to object: ANY into ?STRING '''is contravariant''': Any value of type ANY is a valid value of type ?STRING. AFAIK this is what contravariant means. I do not see any reason why we should invent a new name. Actually, all non-attached types are completely equivalent: they all can take any value. The type is only a hint for the create call and a comment. --[[User:Schoelle|Schoelle]] 09:45, 15 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Do you mean ''local s: ?STRING; a: ANIMAL do s := a end'' is allowed (in general as opposed to the context of covariant redefinition)? I thought the semantic of ?X was &amp;quot;X or Void&amp;quot; that is basically the same as X in classic Eiffel. If we don't have a type to mean &amp;quot;X or Void&amp;quot; it seems like a severe flaw of the Void-checking side of things. --[[User:Nenieorg|Nenieorg]] 14:20, 22 February 2007 (CET)&lt;/div&gt;</summary>
		<author><name>Nenieorg</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:New_CAT_call&amp;diff=7513</id>
		<title>Talk:New CAT call</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:New_CAT_call&amp;diff=7513"/>
				<updated>2007-02-22T13:20:58Z</updated>
		
		<summary type="html">&lt;p&gt;Nenieorg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''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]]&lt;br /&gt;
&lt;br /&gt;
Changing ANY into STRING is covariance, changing  STRING into ANY is contravariance--[[User:Manus|manus]] 18:38, 8 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
Changing ANY into ?STRING is not contravariance, it is covariance. Seeing it contravariant is possible a side effect of one of the interpretation of the current standard when looking at the semantic. I think we need another terminology here to describe this unspecified semantics.--[[User:Manus|manus]] 19:24, 9 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Sorry, but I have to object: ANY into ?STRING '''is contravariant''': Any value of type ANY is a valid value of type ?STRING. AFAIK this is what contravariant means. I do not see any reason why we should invent a new name. Actually, all non-attached types are completely equivalent: they all can take any value. The type is only a hint for the create call and a comment. --[[User:Schoelle|Schoelle]] 09:45, 15 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Do you mean ''local s: ?STRING; a: ANIMAL do s := a end'' is allowed (in general as opposed to the context of covariant redefinition)? I thought the semantic of ?X was &amp;quot;X or Void&amp;quot; that is basically the same as X in classic Eiffel. If we don't have a type to mean &amp;quot;X or Void&amp;quot; it seems like a severe flaw of the Void-checking side of things. --[[User:Nenieorg|Nenieorg]] 14:20, 22 February 2007 (CET)&lt;/div&gt;</summary>
		<author><name>Nenieorg</name></author>	</entry>

	</feed>