@Override
	public CodeBlockReferenceIterator getSources(CodeBlock block, TaskMonitor monitor)
			throws CancelledException {

		// get the instruction before this block
		//    if it is contiguous and falls through, then it is a source
		// get the symbol at the start address
		//    if there is a symbol, use the references to it for sources
		// a block with a symbol can be fallen to from above.

		if (block == null) {
			return null;
		}

		if (!(block.getModel() instanceof SimpleBlockModel)) {
			throw new IllegalArgumentException();
		}

		return new SimpleSourceReferenceIterator(block, followIndirectFlows, monitor);
	}
Get an iterator over source blocks flowing into this block.
@param block code block to get the source iterator for.
@param monitor task monitor which allows user to cancel operation.
@throws CancelledException if the monitor cancels the operation.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/block/SimpleBlockModel.java