Gather all the used elements, from the parameters and return type, for example
E.g. method Iterable will return
Iterable, String, List, int
Source
Iterable<ModelElement> get usedElements {
final set = new Set<ModelElement>();
if (modelType != null) {
if (modelType.isFunctionType) {
if (modelType.returnElement != null) {
set.addAll(modelType.returnElement.usedElements);
}
if (canHaveParameters) {
set.addAll(parameters.map((p) => p.usedElements).expand((i) => i));
}
} else if (modelType.element != null) {
set.add(modelType.element);
if (modelType.isParameterizedType) {
set.addAll(modelType.typeArguments
.map((arg) => arg.element.usedElements)
.expand((i) => i));
}
}
}
return set;
}