Eiffel Descendant Classes |
Eiffel classes can inherit from other classes (through single or multiple inheritance). Classes which inherit directly or indirectly from a given class are said to be the descendant classes of this class.
gedoc can be used to get the list of descendants of a class or of a set of classes.
Note that there are two kinds of inheritance: conforming inheritance (introduced by the keyword inherit) and non-conforming inheritance (introduced by inherit {NONE}). The format described below only covers conforming inheritance.
Here is how to get the list of all descendant classes of a single class FOO:
gedoc --format=descendants --class=FOO project.ecfwhere project.ecf is an ECF file describing an Eiffel project containing class FOO.
The command-line option --no-benchmark can be used to avoid displaying information about the Eiffel code analysis before the actual list of descendant classes:
gedoc --format=descendants --class=FOO --no-benchmark project.ecf
Sometimes it is useful to figure out what are the classes which are descendants of two or more classes. For example when we have:
class BAR [G -> {COMPARABLE, NUMERIC}]the only valid actual generic parameters are classes which are descendants of both COMPARABLE and NUMERIC. In order to get the list of these classes, just type:
gedoc --format=descendants --class=COMPARABLE --class=NUMERIC --no-benchmark project.ecf
Copyright © 2021, Eric Bezault mailto:ericb@gobosoft.com http://www.gobosoft.com Last Updated: 31 December 2021 |