mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-07 07:12:25 +01:00
Update wikipage Manifest array. (Signed-off-by:alexk).
git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@1864 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -15,7 +15,7 @@ A typed manifest array has an explicit Manifest_array_type that should resolve t
|
||||
{ARRAY [COMPARABLE]} <<7, "beers">>
|
||||
</e>
|
||||
|
||||
creates an array of type `ARRAY [COMPARABLE]` with 2 elements: `7` and `beers` and is therefore equivalent to the value of an imaginary variable `x` of type `ARRAY [COMPARABLE]` initialized as follows:
|
||||
creates an array of type `ARRAY [COMPARABLE]` with 2 elements: `7` and `"beers"` and is therefore equivalent to the value of an imaginary variable `x` of type `ARRAY [COMPARABLE]` initialized as follows:
|
||||
|
||||
<e>
|
||||
create x.make (1, 0)
|
||||
@@ -23,6 +23,10 @@ creates an array of type `ARRAY [COMPARABLE]` with 2 elements: `7` and `beers` a
|
||||
x.force ("beers", 2)
|
||||
</e>
|
||||
|
||||
It would be an error to use `default_pointer` instead of `"beers"` because the type `POINTER` is not `COMPARABLE`. Similarly, one cannot specify `LIST` or a formal generic instead of `ARRAY`. Also, the explicit manifest array type cannot be `separate`.
|
||||
|
||||
== Untyped manifest array ==
|
||||
|
||||
An untyped manifest array has no Manifest_array_type part. As a result, its type is computed from the type of specified elements as a common ancestor type. So, the type of the expression `<<7, "beers">>` would be `ARRAY [ANY]` rather than `ARRAY [COMPARABLE]` as in the previous case because types of the elements do not conform to each other. On the other hand, the expression `<<True, False, False>>` has type `ARRAY [BOOLEAN]`.
|
||||
An untyped manifest array has no Manifest_array_type part. As a result, its type is computed from the type of specified elements as a common ancestor type. So, the type of the expression `<<7, "beers">>` would be `ARRAY [ANY]` rather than `ARRAY [COMPARABLE]` because types of the elements do not conform to each other. On the other hand, the expression `<<True, False, False>>` has type `ARRAY [BOOLEAN]`.
|
||||
|
||||
Because there is always a common ancestor type for manifest array elements, the untyped manifest array is always valid as soon as all its elements are valid. The empty untyped manifest array has type `ARRAY [NONE]`.
|
||||
Reference in New Issue
Block a user