@Override
	public DataType recoverDataType(GoTypeManager goTypes) throws IOException {
		DataType elementDt = goTypes.getGhidraDataType(getElement());
		DataType self = goTypes.getGhidraDataType(this, DataType.class, true);
		if (self != null) {
			return self;
		}
		return isValidLength()
				? new ArrayDataType(elementDt, (int) len, -1)
				: new TypedefDataType(elementDt.getCategoryPath(),
					".invalid_arraysize_%d_%s".formatted(len, elementDt.getName()),
					new ArrayDataType(elementDt, 1, -1), elementDt.getDataTypeManager());
	}
Returns a reference to the {@link GoType} that defines the slice version of this array. 
@return reference to the {@link GoType} that defines the slice version of this array
@throws IOException if error reading data
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/rtti/types/GoArrayType.java