@Override
	public DataType recoverDataType(GoTypeManager goTypes) throws IOException {
		GoType chanGoType = goTypes.getChanGoType();
		if (chanGoType == null) {
			// if we couldn't find the underlying/hidden runtime.hchan struct type, just return
			// a void*
			return goTypes.getVoidPtrDT();
		}

		DataType chanDT = goTypes.getGhidraDataType(chanGoType);
		Pointer ptrChanDt = goTypes.getDTM().getPointer(chanDT);
		if (typ.getSize() != ptrChanDt.getLength()) {
			Msg.warn(this, "Size mismatch between chan type and recovered type");
		}
		TypedefDataType typedef = new TypedefDataType(goTypes.getCP(this),
			goTypes.getTypeName(this), ptrChanDt, goTypes.getDTM());
		return typedef;

	}
Returns a reference to the {@link GoType} that defines the elements this channel uses
@return reference to the {@link GoType} that defines the elements this channel uses
@throws IOException if error reading type
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/rtti/types/GoChanType.java