def is_submodule($d): (.mod == $d.mod) or (.mod | startswith("\($d.mod).")); def _group_by_vis_map(vis_from): map({ usr: vis_from.usr, display_name: vis_from.display_name, mod: .[0].mod, loc: .[0].loc, kind: .[0].kind, used_from: [.[].used_from[]] | group_by(.mod) | map({ mod: .[0].mod, locs: [ .[].locs[] | split(" ") | if length == 3 then "\(.[1]) \(.[2])" # CXX_METHOD Foo::bar else "\(.[1]) \(.[0])" # STATIC_ASSERT src/mongo/foo.cpp:123:45 end ] | unique, }), }); def group_by_visibility_parent_non_ns: group_by(.vis_from_non_ns.usr) | _group_by_vis_map(.[0].vis_from_non_ns); def group_by_visibility_parent: group_by(.vis_from.usr) | _group_by_vis_map(.[0].vis_from);