SearchFilter filter, SearchListener listener) {
assert listener != null;
Element[] elements = createElements(scope);
listener = applyPattern(pattern, listener);
listener = applyFilter(filter, listener);
listener = new CountingSearchListener(elements.length, listener);
for (Element element : elements) {
index.getRelationships(
element,
IndexConstants.DEFINES_FUNCTION,
newCallback(MatchKind.FUNCTION_DECLARATION, scope, listener));