From: Junio C Hamano Date: Thu, 21 Dec 2017 21:47:17 GMT Subject: Re: [PATCH 2/6] fsmonitor: Add dir.h include, for untracked_cache_invalidate_path Message-ID: In-Reply-To: Alex Vandiver writes: >> But I am not sure if this is a right direction to go in. If a .C >> user of fsmonitor needs (does not need) things from dir.h, that file >> can (does not need to) include dir.h itself. > > Hm; I was patterning based on existing .h files, which don't seem shy > about pulling in other .h files. IIUC, existing X.h do pull in Y.h when X.h uses a structure or a typedef defined in Y.h (but using pointer to such a structure or a type does not count) defined in Y.h; in such a case, a user of X.h that wants to use what is defined in X.h would not be able to use it without somehow knowing the shape of such a structure or type and would be forced to pull in Y.h itself. "static inline" falls into the same category---as it stands, anybody that includes fsmonitor.h and wants to use one of these static inline functions would need to have definitions from dir.h, which I agree is wrong and I understand that you want to include dir.h there.