It's a chunk from D26390
Represent compilation as object, which can be hashed or checked for equality. Also responsible to create different views (mainly the compilation database entry view) and for the construction from different sources (from compilation database, or from command execution).
(Will provide usage of the new methods in next PR, but that would have been a much bigger change.)
This sounds not like english. Remove for ?