Author:admin

Date:2008-09-29T11:24:51.000000Z


git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@61 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
jfiat
2008-09-29 11:24:51 +00:00
parent 5446353c01
commit 2f89e654ae
2 changed files with 4 additions and 3 deletions

View File

@@ -96,7 +96,7 @@ which will assign to <code> acc </code> a reference attached (if not void) to a
Such an assignment, where the source and target types are different, is said to be polymorphic. An entity such as <code> acc </code>, which as a result of such assignments may become attached at run time to objects of types other than the one declared for it, is itself called a polymorphic entity.
For polymorphism to respect the reliability requirements of Eiffel, it must be controlled by the type system and enable static type checking. We certainly do not want an entity of type <code> ACCOUNT </code> to become attached to an object of type <code> DEPOSIT </code>. Hence the second typing rule:
{{rule|Type Conformance|An assignment <code>x :&#61; y</code>, or the use of y as actual argument corresponding to the formal argument x in a routine call, is only valid if the type of y conforms to the the type of x. }}
{{rule|name=Type Conformance|text=An assignment <code>x := y</code>, or the use of y as actual argument corresponding to the formal argument x in a routine call, is only valid if the type of y conforms to the the type of x. }}
The second case listed in the rule is a call such as <code> target.routine(..., y, ...) </code> where the routine declaration is of the form <code> routine (..., x: SOME_TYPE) </code>. The relationship between <code> y </code>, the actual argument in the call, and the corresponding formal argument <code> x </code>, is exactly the same as in an assignment <code> x := y </code>: not just the type rule, as expressed by Type Conformance (the type of <code> y </code> must conform to <code> SOME_TYPE </code>), but also the actual run-time effect which, as for assignments, will be either a reference attachment or, for expanded types, a copy.

View File

@@ -1,8 +1,9 @@
[[Property:title|IFELL]]
[[Property:weight|4]]
[[Property:uuid|34079f13-741d-a937-e492-9ccfe235efeb]]
<code> (This license describes the terms applicable to the open-source EiffelBase libraries. For the EiffelStudio and other libraries license terms, please refer to the Eiffel Software end-user license.) </code>
On August 4, 1998 -- as part of the Eiffel Summit at TOOLS USA '98 -- Interactive Software Engineering (Eiffel Software) officially made its flagship [[EiffelBase Library|EiffelBase library ]] available for free to any organization that wants to use it, for either commercial or non-profit purposes.
This license describes the terms applicable to the open-source EiffelBase libraries. For the EiffelStudio and other libraries license terms, please refer to the Eiffel Software end-user license.
On August 4, 1998 -- as part of the Eiffel Summit at TOOLS USA '98 -- Interactive Software Engineering (Eiffel Software) officially made its flagship [[EiffelBase|EiffelBase library ]] available for free to any organization that wants to use it, for either commercial or non-profit purposes.
The terms of the new EiffelBase license are given below. Changes since the original version are recorded in the [[#changes|changes section]] .