public static SliceRootNode createNewTree( NullAnalysisResult result, SliceRootNode oldRoot, final Map<SliceNode, NullAnalysisResult> map) { SliceRootNode root = oldRoot.copy(); assert oldRoot.myCachedChildren.size() == 1; SliceNode oldRootStart = oldRoot.myCachedChildren.get(0); root.setChanged(); root.targetEqualUsages.clear(); root.myCachedChildren = new ArrayList<SliceNode>(); createValueRootNode( result, oldRoot, map, root, oldRootStart, "Null Values", NullAnalysisResult.NULLS); createValueRootNode( result, oldRoot, map, root, oldRootStart, "NotNull Values", NullAnalysisResult.NOT_NULLS); createValueRootNode( result, oldRoot, map, root, oldRootStart, "Other Values", NullAnalysisResult.UNKNOWNS); return root; }