(qualifiedName: string)
| 1185 | } |
| 1186 | } |
| 1187 | const callsFrom = (qualifiedName: string) => { |
| 1188 | const from = cg.getNodesByKind('method').find((n) => n.qualifiedName === qualifiedName); |
| 1189 | expect(from, qualifiedName).toBeDefined(); |
| 1190 | return cg |
| 1191 | .getOutgoingEdges(from!.id) |
| 1192 | .filter((e) => e.kind === 'calls') |
| 1193 | .map((e) => ({ |
| 1194 | target: cg.getNode(e.target)?.qualifiedName, |
| 1195 | resolvedBy: (e.metadata as { resolvedBy?: string } | undefined)?.resolvedBy, |
| 1196 | provenance: e.provenance ?? undefined, // a resolved (non-synthesized) edge stores NULL |
| 1197 | })); |
| 1198 | }; |
| 1199 | |
| 1200 | it("resolves `self.field.method()` to the method on the field's declared type, never to the caller itself (#1585)", async () => { |
| 1201 | // The issue's repro: `Outer::run` forwards to `Inner::run` through the |
no test coverage detected