diff --git a/documentation/trunk/eiffel/Language_reference/quick-reference-eiffel-programming-language/Types.wiki b/documentation/trunk/eiffel/Language_reference/quick-reference-eiffel-programming-language/Types.wiki new file mode 100644 index 00000000..b7c2f11f --- /dev/null +++ b/documentation/trunk/eiffel/Language_reference/quick-reference-eiffel-programming-language/Types.wiki @@ -0,0 +1,15 @@ +[[Property:uuid|88764AFC-7DC5-4547-8B8C-4C0A489B0620]] +[[Property:weight|0]] +[[Property:title|Types]] += Types = + +== Common ancestor type == + +A *common ancestor type* is a type computed for a list of types using the following algorithm: + +1. Temporary ignore whether any types are detachable or separate. +2. Add a type `NONE` to the list of types (this makes sure the list is never empty). +3. If there is a type in the list to which all other types conform, remember it as T. +4. Otherwise, use `ANY` for T. +5. If there is a detachable or separate type in the list, use the corresponding detachable and/or separate version of type T. +