private String getSourceFilename(int fileno) throws IOException {
		GoModuledata moduledata = getModuledata();
		long fileoff;
		GoSlice cutab = moduledata.getCutab();
		GoSlice filetab = moduledata.getFiletab();
		GoSlice nameSlice;
		if (cutab == null) { // when <= 1.15
			fileoff = filetab.readUIntElement(4 /*sizeof(uint32*/, fileno);
			nameSlice = moduledata.getPclntable();
		}
		else { // when >= 1.16
			fileoff = cutab.readUIntElement(4 /*sizeof(uint32)*/, (int) cuOffset + fileno);
			nameSlice = filetab;
		}
		String fileName = fileoff >= 0 // -1 == no value 
				? nameSlice.getElementReader(1, (int) fileoff).readNextUtf8String()
				: null;
		return fileName;
	}
Returns information about the source file that this function was defined in.

@return {@link GoSourceFileInfo}, or null if no source file info present
@throws IOException if error reading lookup data
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/rtti/GoFuncData.java