Object (@Nullable ASTNode element) { while (element != null) { Object trace = element.getUserData(INVALIDATION_TRACE); if (trace != null) { return trace; } ASTNode parent = element.getTreeParent(); if (parent == null && element instanceof FileASTNode) { PsiElement psi = element.getPsi(); trace = psi == null ? null : psi.getUserData(INVALIDATION_TRACE); if (trace != null) { return trace; } } element = parent; } return null; }