@Override
	protected String doGetName() {
		if (!checkIsValid()) {
			// TODO: SCR
			return "[Invalid VariableSymbol - Deleted!]";
		}

		if (type == SymbolType.PARAMETER) {
			if (getSource() == SourceType.DEFAULT) {
				return getParamName();
			}
			String storedName = super.doGetName();
			if (SymbolUtilities.isDefaultParameterName(storedName)) {
				return getParamName();
			}
			return storedName;
		}

		VariableStorage storage = getVariableStorage();
		if (storage == null || storage.isBadStorage()) {
			return Function.DEFAULT_LOCAL_PREFIX + "_!BAD!";
		}

		if (getSource() == SourceType.DEFAULT) {
			return SymbolUtilities.getDefaultLocalName(getProgram(), storage, getFirstUseOffset());
		}

		// TODO: we use to check for a default name and regenerate new default name but we should
		// not need to do this if source remains at default

		return super.doGetName();
	}
Constructs a new VariableSymbol
@param symbolMgr the symbol manager
@param cache symbol object cache
@param type the symbol type.
@param variableMgr variable storage manager
@param address the address of the symbol (stack address)
@param record the record for the symbol
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/symbol/VariableSymbolDB.java