@Override
		public boolean matchesStatus(VTMatch match) {
			if (!isSelected()) {
				return false;
			}

			//
			// Our filter matches on two different columns
			//

			VTAssociation association = match.getAssociation();
			VTSession session = association.getSession();

			Address sourceAddress = association.getSourceAddress();
			Program sourceProgram = session.getSourceProgram();
			SymbolTable sourceSymbolTable = sourceProgram.getSymbolTable();
			Symbol sourceSymbol = sourceSymbolTable.getPrimarySymbol(sourceAddress);
			if (sourceSymbol != null) {
				SourceType sourceSymbolSourceType = sourceSymbol.getSource();
				if (sourceSymbolSourceType.equals(sourceType)) {
					return true;
				}
			}

			Address destinationAddress = association.getDestinationAddress();
			Program destinationProgram = session.getDestinationProgram();
			SymbolTable destinationSymbolTable = destinationProgram.getSymbolTable();
			Symbol destinationSymbol = destinationSymbolTable.getPrimarySymbol(destinationAddress);
			if (destinationSymbol != null) {
				SourceType destinationSymbolSourceType = destinationSymbol.getSource();
				return destinationSymbolSourceType.equals(sourceType);
			}
			return false;
		}
This filter allows through any match that has a source *or* destination symbol type matches
the selected source types.
Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/matchtable/SymbolTypeFilter.java