PsiElement (@NotNull PsiElement ancestor, @NotNull PsiElement descendant) { PsiElement cur = descendant; while (cur != null) { PsiElement parent = cur.getParent(); if (parent == ancestor) { return cur; } cur = parent; } throw new AssertionError(descendant + " is not a descendant of " + ancestor); }