Description
It was expressed by @ChuanqiXu9 in the last module implementors meeting that both Clang and GCC have a richer representation of source locations than was initially required from MSVC (the early adopter of the IFC). One example cited was declarations:
int i = 0;
// ^ ^
// | | Decl end
// | Decl begin
The other vendors have a span of source locations for declarations in which represent the declaration node as written in source. In Clang it is represented as DeclStmt <line:2:5, col:14>
where the span is assumed to start at column '5' and end at column '14'.
In the IFC, today we only have a single source location for nearly every node but this representation appears to be insufficient for the needs of other compiler implementations. We should rethink this or provide a richer source location structure which could allow for ranges of locations.