From 759d6799137190eafb33b2d0f28d54a102b46d2a Mon Sep 17 00:00:00 2001 From: eiffel-org Date: Tue, 9 Jul 2019 08:33:40 +0000 Subject: [PATCH] Updated wikipage Differences between ETL 2nd printing and Eiffel Software implementation. (Signed-off-by:jocelyn). git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@2163 abb3cda0-5349-4a8f-a601-0c33ac3a8c38 --- ...ng-and-eiffel-software-implementation.wiki | 38 +++++-------------- 1 file changed, 10 insertions(+), 28 deletions(-) diff --git a/documentation/19.05/eiffelstudio/eiffelstudio-reference/compiler/differences-between-etl-2nd-printing-and-eiffel-software-implementation.wiki b/documentation/19.05/eiffelstudio/eiffelstudio-reference/compiler/differences-between-etl-2nd-printing-and-eiffel-software-implementation.wiki index c8755ba9..c84466c7 100644 --- a/documentation/19.05/eiffelstudio/eiffelstudio-reference/compiler/differences-between-etl-2nd-printing-and-eiffel-software-implementation.wiki +++ b/documentation/19.05/eiffelstudio/eiffelstudio-reference/compiler/differences-between-etl-2nd-printing-and-eiffel-software-implementation.wiki @@ -1,4 +1,4 @@ -[[Property:modification_date|Tue, 09 Jul 2019 08:25:22 GMT]] +[[Property:modification_date|Tue, 09 Jul 2019 08:33:39 GMT]] [[Property:publication_date|Tue, 09 Jul 2019 08:25:22 GMT]] [[Property:title|Differences between ETL 2nd printing and Eiffel Software implementation]] [[Property:link_title|ETL 2nd printing vs implementation]] @@ -20,23 +20,12 @@ * reference: new keyword to specify that a type is used as a reference type. * agent: new keyword used by the agent mechanism. * create: Instead of using the famous exclamation mark to create an instance of a class, you can use the keyword create. Below you will find a correspondence table between the old and the new syntaxes. The old syntax is still valid, but at some points Eiffel Software will remove it from its implementation: -{| -|- -| Old syntax -| New syntax -|- -| !! a -| create a -|- -| !! a.make -| create a.make -|- -| !B! a -| create {B} a -|- -| !B! a.make -| create {B} a.make -|} + +** Old syntax `!! a` => new syntax `create a` +** Old syntax `!! a.make` => new syntax `create a.make` +** Old syntax `!B! a` => new syntax `create {B} a` +** Old syntax `!B! a.make` => new syntax `create {B} a.make` + * note: replacement for the keyword indexing. * attribute: new keyword to declare attribute body. * attached: new keyword to specify attached types and object tests. @@ -46,12 +35,7 @@ ==Added semantics== * [[ET: Genericity and Arrays|Generic creation]] * Expression creation: you can now create an object within an expression. For example, you want to create an object and pass it as an argument to a function. Whereas you had to create a local variable, create the object and pass it to the function, you now simply need to pass to the function the creation expression. Here is a small example: -{| -|- -| Old method -| New method -|- -| +** Old method: local a: STRING @@ -60,17 +44,15 @@ do f (a) end - -| +** 'New method: do f (create {STRING}.make (10)) end -|} This is also very useful since it can improve the power of assertions. -* Mutually recursive constraints: one can now write class A [H, G->H] or class B [H -> C, G -> ARRAY [H]]. As a result, the declaration A [D, E] is valid only if E is a descendant of D. Similarly, the declaration B [E, ARRAY [D]] is not valid, if E is a descendant of D. +* Mutually recursive constraints: one can now write class `A [H, G->H]` or class `B [H -> C, G -> ARRAY [H]]`. As a result, the declaration `A [D, E]` is valid only if `E` is a descendant of `D`. Similarly, the declaration `B [E, ARRAY [D]]` is not valid, if `E` is a descendant of `D`. * [[ET: Other Mechanisms|Tuples]] * [[ET: Agents|Agents]] * Feature access: