<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://dev.eiffel.com/index.php?action=history&amp;feed=atom&amp;title=Single_level_call_rule_implementation</id>
		<title>Single level call rule implementation - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://dev.eiffel.com/index.php?action=history&amp;feed=atom&amp;title=Single_level_call_rule_implementation"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Single_level_call_rule_implementation&amp;action=history"/>
		<updated>2026-04-07T07:17:44Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Single_level_call_rule_implementation&amp;diff=8815&amp;oldid=prev</id>
		<title>Juliant at 01:53, 23 June 2007</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Single_level_call_rule_implementation&amp;diff=8815&amp;oldid=prev"/>
				<updated>2007-06-23T01:53:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:ECMA]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The single-level call rule is a validity rule which guarantees that a system is catcall free. It defines that every call must be valid for all possible values at runtime.&lt;br /&gt;
&lt;br /&gt;
== Current implementation ==&lt;br /&gt;
&lt;br /&gt;
EiffelStudio has currently a simple implementation which can be set to check for every feature call if the call is valid for all possible descendants. This is straight-forward in the non-generic case as you just have to check the feature call for all descendants of the target type. In the case of generics it is a bit more difficult. If for example you have to check a feature call on a type &amp;lt;e&amp;gt;LIST [ANY]&amp;lt;/e&amp;gt; and you want to check the call on all possible descendants, you can create an unlimited number of generics by instantiating the descendant as &amp;lt;e&amp;gt;LIST [LIST [ANY]&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;LIST [LIST [LIST [...]]]&amp;lt;/e&amp;gt; and so on.&lt;br /&gt;
&lt;br /&gt;
Another problem is dynamic loading of classes. If this is possible than the check does not cover all possible runtime values and is thus not complete.&lt;/div&gt;</summary>
		<author><name>Juliant</name></author>	</entry>

	</feed>