void (@NotNull final SliceNode element) { element.calculateDupNode(); node(element, map).clear(); SliceNode duplicate = element.getDuplicate(); if (duplicate != null) { node(element, map).add(node(duplicate, map)); } else { final PsiElement value = ReadAction.compute(() -> element.getValue().getElement()); boolean canBeLeaf = element.getValue().canBeLeaf(); Nullability nullability = canBeLeaf ? ReadAction.compute(() -> checkNullability(value)) : Nullability.UNKNOWN; if (nullability == Nullability.NULLABLE) { group(element, map, NullAnalysisResult.NULLS).add(value); } else if (nullability == Nullability.NOT_NULL) { group(element, map, NullAnalysisResult.NOT_NULLS).add(value); } else { Collection<? extends AbstractTreeNode> children = ReadAction.compute(element::getChildren); if (children.isEmpty()) { group(element, map, NullAnalysisResult.UNKNOWNS).add(value); } super.visit(element); } } }