void (final @NotNull PyExpression node) { final PsiReference reference = node.getReference(); if (reference == null) { return; } final PsiElement declaration = reference.resolve(); if (!(declaration instanceof PyFunction function)) { return; } final Property property = function.getProperty(); if (property == null) { return; } final PyClass aClass = function.getContainingClass(); if (aClass == null) { return; } final Collection<PyFunction> functions = getAllFunctions(property); for (final PyFunction pyFunction : functions) { final PyClass functionClass = pyFunction.getContainingClass(); if (functionClass != null) { myResult.putValue(functionClass, pyFunction); } } final PyTargetExpression definitionSite = property.getDefinitionSite(); if (definitionSite != null) { final PyClass pyClass = PsiTreeUtil.getParentOfType(definitionSite, PyClass.class); if (pyClass != null) { myResult.putValue(pyClass, definitionSite); } } }