private boolean checkOpObject(Navigatable navigatable, CodeUnit codeUnit, int opIndex,
			int subOpIndex, GoToService goToService) {

		if (codeUnit instanceof Data) {
			return handleData((Data) codeUnit, navigatable, goToService);
		}

		if (!(codeUnit instanceof Instruction) || subOpIndex < 0) {
			return false;
		}

		List<?> opObjects = ((Instruction) codeUnit).getDefaultOperandRepresentationList(opIndex);
		if (opObjects == null || opObjects.size() <= subOpIndex) {
			return false;
		}

		Address goToAddr = getAddressForOpObject(opObjects.get(subOpIndex), codeUnit);
		if (goToAddr != null && goToService.goTo(navigatable, goToAddr)) {
			return true;
		}
		return false;
	}
Navigate to the variable, when directly supplied by the field location

@param navigatable the navigatable to which we should navigate
@param loc the source location
@param goToService the GoTo service
@return true if we decide to attempt navigation
Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/OperandFieldMouseHandler.java