SliceRootNode (NullAnalysisResult result, SliceRootNode oldRoot, final Map<SliceNode, NullAnalysisResult> map) { SliceRootNode root = oldRoot.copy(); assert oldRoot.getCachedChildren().size() == 1; SliceNode oldRootStart = oldRoot.getCachedChildren().get(0); root.setChanged(); root.targetEqualUsages.clear(); List<HackedSliceLeafValueClassNode> children = new ArrayList<>(); ContainerUtil.addIfNotNull(children, createValueRootNode(result, oldRoot, map, root, oldRootStart, "Null Values", NullAnalysisResult.NULLS)); ContainerUtil.addIfNotNull(children, createValueRootNode(result, oldRoot, map, root, oldRootStart, "NotNull Values", NullAnalysisResult.NOT_NULLS)); ContainerUtil.addIfNotNull(children, createValueRootNode(result, oldRoot, map, root, oldRootStart, "Other Values", NullAnalysisResult.UNKNOWNS)); root.setChildren(children); return root; }