}
// Resolution chain: with the substituted RHS in hand, look for
- // a matching class instance of @predClassQn@.
+ // a matching class instance of @predClassQn@. The matched
+ // instance's own label already names its class, so we don't
+ // also pull a class node into the graph alongside it — it
+ // would just be a redundant box with a green arrow that says
+ // the same thing.
if (predClassQn && resolvedArgs) {
const reduced = resolvedArgs.map(reduceTypeArg);
const matched = findMatchingInstances(predClassQn, reduced);
m, predClassQn,
'inst:' + m._idx
);
- // Make sure the matched instance hangs under its class node
- // so the user has a stable place to find it.
- const predClsId = ensureClassNode(predClassQn);
- const defId = predClsId + '=>' + mId;
- if (!seenNodes.has(defId)) {
- seenNodes.add(defId);
- els.push({ group: 'edges', data: {
- id: defId, source: predClsId, target: mId, kind: 'defines',
- }});
- }
const resId = fiNodeId + '=>resolves=>' + mId;
if (!seenNodes.has(resId)) {
seenNodes.add(resId);