lsif-typed: Symbol relationships
Created by: efritz
From https://github.com/sourcegraph/sourcegraph/pull/29767#discussion_r785070799:
Proposal (or CMV): it would be nicer to flip this encoding instead of having three "tagged" lists (where tags are reference
, implementation
, and type_definition
) with overlapping symbol names to have a single list of symbols, each of which can be tagged. This should reduce the amount of data on the wire (if duplicate string occurrences are a formatting concern here; I'm not sure).
It feels more natural, and also more extensible via enum value, to have something similar to:
{
"relations_to_other_symbols": [
{ "symbol": "A", "tags": ["X", "Y"]},
{ "symbol": "B", "tags": ["Y", "Z"]},
{ "symbol": "C", "tags": ["Z", "W"]},
]
}