diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/eiffelstudio-using-command-line-options.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/eiffelstudio-using-command-line-options.wiki index 185f105c..5a3d7982 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/eiffelstudio-using-command-line-options.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/command-line/eiffelstudio-using-command-line-options.wiki @@ -7,7 +7,7 @@ The Eiffel Compiler line mode command '''ec''' has many options, as you can see from the tables below. It may be helpful to think of any one '''ec''' command as either a command to compile or a command to view software text. -===Commands for compiling=== +==Commands for compiling== The simplest compiling command you can enter is: @@ -52,7 +52,7 @@ You can add additional libraries to the configuration by using the "-library" op This immediately adds the EiffelTime library to the configuration file application.ecf, so if you compile again, it is not necessary to respecify the library. -===Commands for viewing=== +==Commands for viewing== By selecting certain options on the '''ec''' command, you can generate advanced views of your software much like those provided by EiffelStudio. In the table below you will see the set of ''Viewing options''. These options take arguments that are either a class name or a class name and feature name. The following examples will give you an idea of how to use the ''Viewing options''. @@ -75,7 +75,7 @@ Feature-oriented options, like "-implementers", take a class name and feature na -===Command options=== +==Command options== The table below lists the available ''options'', the arguments they require, and their effect: diff --git a/documentation/current/method/eiffel-tutorial-et/et-other-mechanisms.wiki b/documentation/current/method/eiffel-tutorial-et/et-other-mechanisms.wiki index 8bbedd17..eface13f 100644 --- a/documentation/current/method/eiffel-tutorial-et/et-other-mechanisms.wiki +++ b/documentation/current/method/eiffel-tutorial-et/et-other-mechanisms.wiki @@ -138,11 +138,14 @@ The validity of a non-object call is restricted in ways that mirror these primar ==Convertibility== -It is useful at times to designate the instances of one type can be created through conversion of instance of some other type. This can be done through an Eiffel mechanism called '''convertibility'''. +It is useful at times to designate that instances of one type can be created through the controlled conversion of instances of some other type. This can be done through an Eiffel mechanism called '''convertibility'''. + +Convertibility is useful when refactoring, moving from one design to another, or, as you will see in the example, accommodating external technologies over which we have no control. + {{Definition|Convertibility: converts to, converts from|

-A type U based on a class CU ''converts'' to a type T based on a class CT (and T ''converts from'' U) if either
+A type U based on a class CU '''converts to''' a type T based on a class CT (and T '''converts from''' U) if either

CT has a ''conversion procedure'' using U as a conversion type, or

@@ -150,16 +153,17 @@ A type U based on a class CU ''converts'' to a type T based on a class CT (and T
but not both.}} + Before we get into an example of convertibility, let's list some of its underlying principles: # Conversion Principle: No type may both ''conform'' and ''convert'' to another. # Conversion Asymmetry Principle: No type may convert to another through both a ''conversion procedure'' and a ''conversion query''. # Conversion Non-transitivity Principle: That V converts to U and U converts to T does not imply that V converts to T. -Let's look at an example that may already be familiar to you. +Let's look at an example with which you may already be familiar. - my_string: STRING_8 - my_system_string: SYSTEM_STRING + my_string: STRING_8 -- Native Eiffel string + my_system_string: SYSTEM_STRING -- Native Microsoft .Net string … @@ -236,6 +240,8 @@ is equivalent to: my_system_string := my_string.to_cil +You should bear in mind that assignments are not the only situation in which conversions take place. Convertibility works for other types of attachments as well. For example, if a routine calls for an argument of type SYSTEM_STRING, and you supply an actual argument of type STRING_8, this constitutes an attachment, and the conversion from STRING to SYSTEM_STRING will occur. + ==Tuple types==