690 B
690 B
There still an issue with inferring for a given function call / constant reference where that thing is defined.
We're currently generating the forest of references from the call graph by calculating a spanning forest. There's a problem with that. Consider the following map of call-sites:
{
a: [b]
b: []
}
The following is a spanning tree:
{
a: []
b: []
}
Here it looks like a
doesn't call b
.
We should also store all the call-sites. These will end up as leaves in the call tree.
{
"K": {},
"A": {},
"f": {
"f": "__cycle__"
},
"A.f": {
"K.g": {}
}
}
Write graphviz output.