private void updateIncomingReferences(Function function) {
		GTreeNode rootNode = null;
		if (function == null) {
			// no function, just do an empty node.
			rootNode = new EmptyRootNode();
		}
		else {
			// The root node in the left panel.
			rootNode = new InSliceRootNode(currentProgram, function, function.getEntryPoint(),
				filterDuplicates.isSelected(), recurseDepth);
		}

		// this does the recusing?
		inTree.setRootNode(rootNode);
	}
NB: This is key as well.

this is called in the doSetFunction method
Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/plugin/core/decompiler/taint/TaintSliceTreeProvider.java