@lzehrung/codegraph 2.3.18 → 2.3.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/codegraph-skill/codegraph/SKILL.md +2 -0
- package/dist/bin/cli.js +1606 -1128
- package/dist/graphs/symbol-graph-detailed/ast.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/ast.js +22 -1
- package/dist/graphs/symbol-graph-detailed/ast.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/edgePasses.d.ts +5 -0
- package/dist/graphs/symbol-graph-detailed/edgePasses.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/edgePasses.js +110 -8
- package/dist/graphs/symbol-graph-detailed/edgePasses.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiverCalls.d.ts +69 -0
- package/dist/graphs/symbol-graph-detailed/receiverCalls.d.ts.map +1 -0
- package/dist/graphs/symbol-graph-detailed/receiverCalls.js +408 -0
- package/dist/graphs/symbol-graph-detailed/receiverCalls.js.map +1 -0
- package/dist/graphs/symbol-graph-detailed.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed.js +22 -0
- package/dist/graphs/symbol-graph-detailed.js.map +1 -1
- package/dist/indexer/build-cache/options.d.ts +7 -1
- package/dist/indexer/build-cache/options.d.ts.map +1 -1
- package/dist/indexer/build-cache/options.js +7 -1
- package/dist/indexer/build-cache/options.js.map +1 -1
- package/dist/indexer/navigation-goto.d.ts +6 -0
- package/dist/indexer/navigation-goto.d.ts.map +1 -1
- package/dist/indexer/navigation-goto.js +6 -1
- package/dist/indexer/navigation-goto.js.map +1 -1
- package/dist/util/memberAccess.d.ts.map +1 -1
- package/dist/util/memberAccess.js +12 -2
- package/dist/util/memberAccess.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../src/graphs/symbol-graph-detailed/ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAQxD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,eAAe,EAAE,MAAM,MAAM,KAAG,OACe,CAAC;
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../src/graphs/symbol-graph-detailed/ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAQxD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,eAAe,EAAE,MAAM,MAAM,KAAG,OACe,CAAC;AAqBtF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EAAE,GAClB,6BAA6B,CAoI/B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAKlH;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAO7F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,IAAI,CAKlG;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,cAAc,EACpB,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,GACjD,IAAI,CAMN"}
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import { sliceText, unquote } from "../../util/ast.js";
|
|
2
2
|
import { getMemberAccessParts, memberExpressionTypeFor, memberPropertyIdentifierTypes, } from "../../util/memberAccess.js";
|
|
3
3
|
export const isIdentifierType = (sup, type) => Array.isArray(sup.nodeTypes?.identifier) && sup.nodeTypes.identifier.includes(type);
|
|
4
|
+
/** C and C++ put the function name in a nested declarator, not a `name` field. */
|
|
5
|
+
function functionNameNode(node) {
|
|
6
|
+
const named = node.childForFieldName("name");
|
|
7
|
+
if (named)
|
|
8
|
+
return named;
|
|
9
|
+
let current = node.childForFieldName("declarator");
|
|
10
|
+
while (current) {
|
|
11
|
+
if (current.type === "identifier" || current.type === "field_identifier")
|
|
12
|
+
return current;
|
|
13
|
+
const nested = current.childForFieldName("declarator");
|
|
14
|
+
if (nested) {
|
|
15
|
+
current = nested;
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
return (current.namedChildren.find((child) => child.type === "identifier" || child.type === "field_identifier") ?? null);
|
|
19
|
+
}
|
|
20
|
+
return node.childForFieldName("type");
|
|
21
|
+
}
|
|
4
22
|
export function collectDetailedDeclarations(rootNode, sup, source, locals) {
|
|
5
23
|
const functionNodes = [];
|
|
6
24
|
const classNodes = [];
|
|
@@ -18,6 +36,7 @@ export function collectDetailedDeclarations(rootNode, sup, source, locals) {
|
|
|
18
36
|
"function_item",
|
|
19
37
|
"function_signature_item",
|
|
20
38
|
"method",
|
|
39
|
+
"protocol_function_declaration",
|
|
21
40
|
"singleton_method",
|
|
22
41
|
]);
|
|
23
42
|
const typeNodeTypes = new Set([
|
|
@@ -27,8 +46,10 @@ export function collectDetailedDeclarations(rootNode, sup, source, locals) {
|
|
|
27
46
|
"class_definition",
|
|
28
47
|
"class",
|
|
29
48
|
"interface_declaration",
|
|
49
|
+
"module",
|
|
30
50
|
"protocol_declaration",
|
|
31
51
|
"trait_item",
|
|
52
|
+
"trait_declaration",
|
|
32
53
|
"struct_item",
|
|
33
54
|
"struct_declaration",
|
|
34
55
|
"class_specifier",
|
|
@@ -53,7 +74,7 @@ export function collectDetailedDeclarations(rootNode, sup, source, locals) {
|
|
|
53
74
|
};
|
|
54
75
|
const walk = (node) => {
|
|
55
76
|
if (functionNodeTypes.has(node.type)) {
|
|
56
|
-
const nameNode =
|
|
77
|
+
const nameNode = functionNameNode(node);
|
|
57
78
|
const name = nameNode ? sliceText(nameNode, source) : undefined;
|
|
58
79
|
if (name) {
|
|
59
80
|
const def = findDefinition(name, nameNode);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../src/graphs/symbol-graph-detailed/ast.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../src/graphs/symbol-graph-detailed/ast.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import type { LanguageSupport } from "../../languages.js";
|
|
|
3
3
|
import type { SyntaxNodeLike } from "../../languages/types.js";
|
|
4
4
|
import { type SymbolGraph } from "../symbol-graph.js";
|
|
5
5
|
import type { DetailedClassNode, DetailedFunctionNode } from "./ast.js";
|
|
6
|
+
import { type ReceiverCallCandidate } from "./receiverCalls.js";
|
|
6
7
|
type EdgePassContext = {
|
|
7
8
|
index: ProjectIndex;
|
|
8
9
|
sup: LanguageSupport;
|
|
@@ -19,6 +20,10 @@ type EdgePassContext = {
|
|
|
19
20
|
resolveExportFrom: (file: string, exportedName: string) => SymbolDef | null;
|
|
20
21
|
resolveMemberChainTarget: (chainNode: SyntaxNodeLike) => SymbolDef | null;
|
|
21
22
|
recordEdge: (fromId: string, toId: string, label?: string, site?: SymbolGraph["edges"][number]["site"]) => boolean;
|
|
23
|
+
/** Receiver calls whose target needs the completed graph; resolved after every module. */
|
|
24
|
+
receiverCalls: ReceiverCallCandidate[];
|
|
25
|
+
/** Whether any indexed project file declares a callable with this name. */
|
|
26
|
+
hasCallableNamed: (name: string) => boolean;
|
|
22
27
|
};
|
|
23
28
|
export declare function emitPythonDecoratorEdges(context: EdgePassContext, rootNode: SyntaxNodeLike): void;
|
|
24
29
|
export declare function emitMemberOwnershipEdges(context: EdgePassContext, functionNodes: DetailedFunctionNode[], classNodes: DetailedClassNode[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edgePasses.d.ts","sourceRoot":"","sources":["../../../src/graphs/symbol-graph-detailed/edgePasses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI/D,OAAO,EAAyB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"edgePasses.d.ts","sourceRoot":"","sources":["../../../src/graphs/symbol-graph-detailed/edgePasses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI/D,OAAO,EAAyB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAExE,OAAO,EASL,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAC;AAE5B,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,GAAG,IAAI,CAAC;IACtD,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,SAAS,GAAG,IAAI,CAAC;IAC5E,wBAAwB,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,SAAS,GAAG,IAAI,CAAC;IAC1E,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC;IACnH,0FAA0F;IAC1F,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,2EAA2E;IAC3E,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CAC7C,CAAC;AAyGF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAqDjG;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,oBAAoB,EAAE,EACrC,UAAU,EAAE,iBAAiB,EAAE,GAC9B,IAAI,CAcN;AASD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,IAAI,CA+M3G;AAuCD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAyHzG;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAoB1F;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,GACjH,IAAI,CA4CN"}
|
|
@@ -3,6 +3,7 @@ import { getMemberAccessParts } from "../../util/memberAccess.js";
|
|
|
3
3
|
import { fileIdentityKey } from "../../util/paths.js";
|
|
4
4
|
import { defNodeId, nodeForDef } from "../symbol-graph.js";
|
|
5
5
|
import { collectIdentifiers, collectNodesByType, findFirstNodeByType, isIdentifierType } from "./ast.js";
|
|
6
|
+
import { CALL_ARGUMENT_NODE_TYPES, callArgumentCount, classifyReceiver, declaresMembers, nearestMemberContainer, receiverCallAccess, } from "./receiverCalls.js";
|
|
6
7
|
function ensureNode(context, def) {
|
|
7
8
|
const id = defNodeId(def);
|
|
8
9
|
if (!context.nodes.has(id))
|
|
@@ -53,18 +54,20 @@ function tryResolveChain(context, node, fromId, label = "uses") {
|
|
|
53
54
|
}
|
|
54
55
|
return !!targetDef;
|
|
55
56
|
}
|
|
57
|
+
/** Records an edge for a resolvable target node. Returns whether a target was resolved. */
|
|
56
58
|
function tryResolveNode(context, node, fromId, label) {
|
|
57
59
|
if (isIdentifierType(context.sup, node.type) || node.type === "type_identifier") {
|
|
58
60
|
const name = sliceText(node, context.source);
|
|
59
61
|
const target = context.resolveIdentifier(name);
|
|
60
62
|
if (target) {
|
|
61
63
|
recordDefEdge(context, fromId, target, label, node);
|
|
62
|
-
return;
|
|
64
|
+
return true;
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
67
|
if (context.optionalMemberTypes.has(node.type)) {
|
|
66
|
-
tryResolveChain(context, node, fromId, label);
|
|
68
|
+
return tryResolveChain(context, node, fromId, label);
|
|
67
69
|
}
|
|
70
|
+
return false;
|
|
68
71
|
}
|
|
69
72
|
function getCallTarget(node) {
|
|
70
73
|
const explicitTarget = node.childForFieldName("function") ??
|
|
@@ -75,7 +78,8 @@ function getCallTarget(node) {
|
|
|
75
78
|
node.childForFieldName("expression");
|
|
76
79
|
if (explicitTarget)
|
|
77
80
|
return explicitTarget;
|
|
78
|
-
|
|
81
|
+
// Kotlin and Swift calls name no callee field, so the sole non-argument child is it.
|
|
82
|
+
const nonArgumentChildren = node.namedChildren.filter((child) => !CALL_ARGUMENT_NODE_TYPES[child.type]);
|
|
79
83
|
return nonArgumentChildren.length === 1 ? (nonArgumentChildren[0] ?? null) : null;
|
|
80
84
|
}
|
|
81
85
|
function getNewTarget(node) {
|
|
@@ -161,14 +165,51 @@ export function emitMemberOwnershipEdges(context, functionNodes, classNodes) {
|
|
|
161
165
|
recordDefEdge(context, memberId, owner.def, "member_of");
|
|
162
166
|
}
|
|
163
167
|
}
|
|
168
|
+
/** Type-like defs only, so a PHP `use function` alias cannot steal `Example::m()`. */
|
|
169
|
+
function resolveNamedType(context, name) {
|
|
170
|
+
const fromAlias = context.aliasToTargetDef.get(name);
|
|
171
|
+
if (fromAlias && declaresMembers(fromAlias))
|
|
172
|
+
return fromAlias;
|
|
173
|
+
return context.moduleEntry.locals.find((local) => local.localName === name && declaresMembers(local)) ?? null;
|
|
174
|
+
}
|
|
164
175
|
export function emitFunctionBodyEdges(context, functionNodes) {
|
|
165
|
-
const callNodeTypes = new Set([
|
|
176
|
+
const callNodeTypes = new Set([
|
|
177
|
+
"call_expression",
|
|
178
|
+
"call",
|
|
179
|
+
"method_invocation",
|
|
180
|
+
"invocation_expression",
|
|
181
|
+
// PHP models plain calls and receiver calls as three distinct call nodes.
|
|
182
|
+
"function_call_expression",
|
|
183
|
+
"member_call_expression",
|
|
184
|
+
"nullsafe_member_call_expression",
|
|
185
|
+
"scoped_call_expression",
|
|
186
|
+
]);
|
|
166
187
|
const newNodeTypes = new Set([
|
|
167
188
|
"new_expression",
|
|
168
189
|
"object_creation_expression",
|
|
169
190
|
"struct_expression",
|
|
170
191
|
"composite_literal",
|
|
171
192
|
]);
|
|
193
|
+
// Receiver typing and lexical member lookup are only needed once a receiver call
|
|
194
|
+
// fails the cheaper identifier and import-chain resolution, so both are lazy.
|
|
195
|
+
let membersByContainer;
|
|
196
|
+
const lexicalMembers = (container) => {
|
|
197
|
+
if (!membersByContainer) {
|
|
198
|
+
membersByContainer = new Map();
|
|
199
|
+
for (const candidate of functionNodes) {
|
|
200
|
+
const owner = nearestMemberContainer(candidate.node);
|
|
201
|
+
if (!owner)
|
|
202
|
+
continue;
|
|
203
|
+
const members = membersByContainer.get(owner.startIndex);
|
|
204
|
+
if (members)
|
|
205
|
+
members.push(candidate);
|
|
206
|
+
else
|
|
207
|
+
membersByContainer.set(owner.startIndex, [candidate]);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return membersByContainer.get(container.startIndex) ?? [];
|
|
211
|
+
};
|
|
212
|
+
const receiverProofs = new Map();
|
|
172
213
|
for (const fn of functionNodes) {
|
|
173
214
|
const fromId = ensureNode(context, fn.def);
|
|
174
215
|
const seenAliases = new Set();
|
|
@@ -218,6 +259,69 @@ export function emitFunctionBodyEdges(context, functionNodes) {
|
|
|
218
259
|
recordDefEdge(context, fromId, targetDef, "uses");
|
|
219
260
|
}
|
|
220
261
|
};
|
|
262
|
+
/**
|
|
263
|
+
* Resolves a receiver method call against the receiver's type. Members declared
|
|
264
|
+
* alongside the caller resolve here; anything needing another module's members
|
|
265
|
+
* becomes a deferred candidate.
|
|
266
|
+
*/
|
|
267
|
+
const recordReceiverCall = (node, access) => {
|
|
268
|
+
const memberName = sliceText(access.property, context.source);
|
|
269
|
+
if (!memberName || !context.hasCallableNamed(memberName))
|
|
270
|
+
return;
|
|
271
|
+
const binding = classifyReceiver(context.sup, access.receiver, context.source, receiverProofs, fn.node.startIndex, access.accessNode);
|
|
272
|
+
if (!binding)
|
|
273
|
+
return;
|
|
274
|
+
const site = { file: context.moduleEntry.file, range: toRange(access.property) };
|
|
275
|
+
const argumentCount = callArgumentCount(node);
|
|
276
|
+
if (binding.kind === "named-type") {
|
|
277
|
+
const typeDef = resolveNamedType(context, binding.typeName);
|
|
278
|
+
if (!typeDef)
|
|
279
|
+
return;
|
|
280
|
+
context.receiverCalls.push({
|
|
281
|
+
callerId: fromId,
|
|
282
|
+
ownerId: ensureNode(context, typeDef),
|
|
283
|
+
viaSupertypes: false,
|
|
284
|
+
memberName,
|
|
285
|
+
argumentCount,
|
|
286
|
+
site,
|
|
287
|
+
});
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
if (binding.kind === "own-type") {
|
|
291
|
+
const container = nearestMemberContainer(fn.node);
|
|
292
|
+
const declared = container
|
|
293
|
+
? lexicalMembers(container).filter((candidate) => candidate.def.localName === memberName)
|
|
294
|
+
: [];
|
|
295
|
+
if (declared.length === 1) {
|
|
296
|
+
recordDefEdge(context, fromId, declared[0].def, "calls", access.property);
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
context.receiverCalls.push({
|
|
301
|
+
callerId: fromId,
|
|
302
|
+
ownerId: null,
|
|
303
|
+
viaSupertypes: binding.kind === "supertype",
|
|
304
|
+
memberName,
|
|
305
|
+
argumentCount,
|
|
306
|
+
site,
|
|
307
|
+
});
|
|
308
|
+
};
|
|
309
|
+
/**
|
|
310
|
+
* Records the `calls` edge for one call node. A call with a receiver is resolved
|
|
311
|
+
* only through its import chain or its receiver's type: matching the bare member
|
|
312
|
+
* name against module locals and import aliases would attribute `$this->helper()`
|
|
313
|
+
* to an unrelated imported `helper`.
|
|
314
|
+
*/
|
|
315
|
+
const resolveCallTarget = (node, callee) => {
|
|
316
|
+
const access = receiverCallAccess(context.sup, node, callee);
|
|
317
|
+
if (access) {
|
|
318
|
+
if (!tryResolveChain(context, access.accessNode, fromId, "calls"))
|
|
319
|
+
recordReceiverCall(node, access);
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
if (callee)
|
|
323
|
+
tryResolveNode(context, callee, fromId, "calls");
|
|
324
|
+
};
|
|
221
325
|
const recordCallOrInstantiation = (node) => {
|
|
222
326
|
if (callNodeTypes.has(node.type)) {
|
|
223
327
|
if (context.sup.id === "go") {
|
|
@@ -241,13 +345,11 @@ export function emitFunctionBodyEdges(context, functionNodes) {
|
|
|
241
345
|
return false;
|
|
242
346
|
}
|
|
243
347
|
if (methodNode) {
|
|
244
|
-
|
|
348
|
+
resolveCallTarget(node, methodNode);
|
|
245
349
|
return false;
|
|
246
350
|
}
|
|
247
351
|
}
|
|
248
|
-
|
|
249
|
-
if (callee)
|
|
250
|
-
tryResolveNode(context, callee, fromId, "calls");
|
|
352
|
+
resolveCallTarget(node, getCallTarget(node));
|
|
251
353
|
}
|
|
252
354
|
if (newNodeTypes.has(node.type)) {
|
|
253
355
|
const target = getNewTarget(node);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edgePasses.js","sourceRoot":"","sources":["../../../src/graphs/symbol-graph-detailed/edgePasses.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAoB,MAAM,oBAAoB,CAAC;AAE7E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAoBzG,SAAS,UAAU,CAAC,OAAwB,EAAE,GAAc;IAC1D,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC;AACZ,CAAC;AACD,SAAS,wBAAwB,CAC/B,OAAwB,EACxB,EAAU,EACV,eAA+B,EAC/B,GAAc;IAEd,MAAM,WAAW,GAAG,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAC9E,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnC,IAAI,IAAI;QAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AAC7C,CAAC;AACD,SAAS,eAAe,CAAC,OAAwB,EAAE,EAAU,EAAE,eAA+B;IAC5F,IAAI,UAAU,GAAG,eAAe,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACjE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI;YACjB,mBAAmB;YACnB,gBAAgB;YAChB,YAAY;YACZ,mBAAmB;YACnB,2BAA2B;SAC5B,EAAE,CAAC;YACF,UAAU,GAAG,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,UAAU;gBAAE,MAAM;QACxB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAClG,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnC,IAAI,IAAI;QAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CACpB,OAAwB,EACxB,MAAc,EACd,MAAiB,EACjB,KAAa,EACb,QAAyB;IAEzB,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,UAAU,CACvB,MAAM,EACN,IAAI,EACJ,KAAK,EACL,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CACpF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAAwB,EAAE,IAAoB,EAAE,MAAe,EAAE,KAAK,GAAG,MAAM;IACtG,MAAM,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,CAAC,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,cAAc,CAAC,OAAwB,EAAE,IAAoB,EAAE,MAAc,EAAE,KAAa;IACnG,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAChF,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,MAAM,EAAE,CAAC;YACX,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAoB;IACzC,MAAM,cAAc,GAClB,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAC1C,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IACjG,OAAO,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpF,CAAC;AAED,SAAS,YAAY,CAAC,IAAoB;IACxC,OAAO,CACL,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC;QACpE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAwB,EAAE,QAAwB;IACzF,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ;QAAE,OAAO;IAExC,MAAM,gBAAgB,GAAG,CAAC,IAAoB,EAAQ,EAAE;QACtD,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YACzC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC;YACpF,IAAI,EAAE;gBAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;YAC7B,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBAChD,IAAI,cAAc,CAAC,IAAI,KAAK,WAAW;oBAAE,SAAS;gBAClD,MAAM,QAAQ,GAAG,EAAE,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC/C,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBACxB,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACjD,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;gBACjF,IAAI,CAAC,GAAG;oBAAE,SAAS;gBACnB,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACxC,MAAM,IAAI,GACR,cAAc,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7G,IAAI,IAAI;oBAAE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACjD,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;gBACjF,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;oBACxC,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;oBAChC,OAAO,IAAI,EAAE,CAAC;wBACZ,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;4BACzC,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gCAChD,IAAI,cAAc,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oCACxC,MAAM,IAAI,GACR,cAAc,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC;wCAC1C,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;wCACjC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oCAC1B,IAAI,IAAI;wCAAE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gCAC/D,CAAC;qCAAM,IAAI,cAAc,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oCAC/C,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gCAC/D,CAAC;4BACH,CAAC;wBACH,CAAC;6BAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;4BACrC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAC1F,IAAI,IAAI;gCAAE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;wBAC/D,CAAC;wBACD,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;oBAC9B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa;YAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAAwB,EACxB,aAAqC,EACrC,UAA+B;IAE/B,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,UAAU;aACtB,MAAM,CACL,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAC9G;aACA,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACpH,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAC7C,wBAAwB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAC7D,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAwB,EAAE,aAAqC;IACnG,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,mBAAmB,EAAE,uBAAuB,CAAC,CAAC,CAAC;IACjH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS;QACnC,gBAAgB;QAChB,4BAA4B;QAC5B,mBAAmB;QACnB,mBAAmB;KACpB,CAAC,CAAC;IAEH,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,aAAa;aACV,MAAM,CACL,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI;YAC1B,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU;YAC/C,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAC9C;aACA,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CACtC,CAAC;QAEF,MAAM,cAAc,GAAG,CAAC,IAAoB,EAAQ,EAAE;YACpD,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO;YAC7E,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO;YAClC,IAAI,MAAM,GAAqB,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,YAAY,GAAkB,IAAI,CAAC;oBACvC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC3B,IACE,MAAM;wBACN,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,oBAAoB,IAAI,MAAM,CAAC,IAAI,KAAK,4BAA4B,CAAC,EAC9F,CAAC;wBACD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBACrE,IAAI,IAAI,IAAI,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BAChE,YAAY,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;wBACjD,CAAC;oBACH,CAAC;oBACD,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;wBAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;4BACZ,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;4BACxE,MAAM,GAAG,CAAC,YAAY,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,YAAY,CAAC,IAAI,IAAI,CAAC;wBAClG,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC,CAAC;QAEF,MAAM,eAAe,GAAG,CAAC,IAAoB,EAAQ,EAAE;YACrD,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO;YACxD,MAAM,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,SAAS,EAAE,CAAC;gBACd,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,yBAAyB,GAAG,CAAC,IAAoB,EAAW,EAAE;YAClE,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;oBAC5B,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;oBACvC,MAAM,UAAU,GACd,UAAU,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC9G,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;wBAClD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;wBAC/F,MAAM,QAAQ,GAAG,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,IAAI,CAAC;wBACnG,IAAI,QAAQ,EAAE,CAAC;4BACb,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;wBAC5D,CAAC;wBACD,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBACD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACtD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBACpD,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBACxD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC7E,IAAI,UAAU,KAAK,KAAK,IAAI,YAAY,EAAE,CAAC;wBACzC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;wBAC9D,OAAO,KAAK,CAAC;oBACf,CAAC;oBACD,IAAI,UAAU,EAAE,CAAC;wBACf,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;wBACrD,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,MAAM;oBAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,MAAM;oBAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,gBAAgB,GAAG,CAAC,IAAoB,EAAE,mBAA4B,EAAQ,EAAE;YACpF,IAAI,IAAI,KAAK,EAAE,CAAC,IAAI,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO;YAC1D,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/F,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE;gBAAE,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;QAClG,CAAC,CAAC;QAEF,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAChC,OAAwB,EACxB,MAAc,EACd,SAAyB,EACzB,iBAAqG;IAErG,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,CAAC,IAAoB,EAAQ,EAAE;QAC7C,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAChF,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC,CAAC;IACF,OAAO,CAAC,SAAS,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QACjC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAEhH,uHAAuH;AACvH,SAAS,uCAAuC,CAAC,IAAoB,EAAE,GAAqB;IAC1F,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QACtD,uCAAuC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAwB,EAAE,UAA+B;IACjG,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,UAAU;SACP,MAAM,CACL,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,uBAAuB;QAC/C,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAsB;QAC9C,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;QACpC,iCAAiC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,CAChG;SACA,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAChD,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5C,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAG,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,IAAI,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YAClG,IAAI,SAAS;gBAAE,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAErE,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;YACrE,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC/C,IAAI,MAAM;wBAAE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC5D,IAAI,QAAQ,EAAE,CAAC;gBACb,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACrE,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAC5E,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAC3G,IAAI,KAAK;gBAAE,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC9E,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC1D,IAAI,IAAI;gBAAE,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAE5E,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;YAC3E,IAAI,UAAU;gBAAE,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;YAE3F,MAAM,SAAS,GAAqB,EAAE,CAAC;YACvC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;YAC3D,KAAK,MAAM,QAAQ,IAAI,SAAS;gBAAE,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;YACtG,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC/D,IAAI,UAAU;gBAAE,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAExF,MAAM,KAAK,GAAqB,EAAE,CAAC;YACnC,uCAAuC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;oBAAE,SAAS;gBACjD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACpD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAClF,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,SAAS;oBAAE,SAAS;gBAC9F,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBACjD,IAAI,IAAI;oBAAE,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;YAC5E,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;YACjE,IAAI,KAAK;gBAAE,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC9E,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;YACrE,IAAI,KAAK,EAAE,CAAC;gBACV,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAClE,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAC5E,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAqB,EAAE,CAAC;YACnC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAC7D,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5C,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAC1D,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAC5E,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,SAAS;YAAE,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAErE,MAAM,iBAAiB,GAAqB,EAAE,CAAC;QAC/C,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QACrE,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;YACvC,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,MAAM;oBAAE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAwB,EAAE,QAAwB;IAClF,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM;QAAE,OAAO;IAEtC,MAAM,SAAS,GAAG,CAAC,IAAoB,EAAQ,EAAE;QAC/C,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,EAAE,CAAC;YACtG,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChE,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;oBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC5C,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE;YAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC,CAAC;IACF,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAkB,EAClB,UAAkH;IAElH,MAAM,cAAc,GAAG,IAAI,GAAG,EAAoB,CAAC;IACnD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;YAAE,SAAS;QACzC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwC,CAAC;IACvE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;YAC7G,SAAS;QACX,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;YAAE,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,cAAc,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACjE,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAClE,KAAK,MAAM,cAAc,IAAI,aAAa,EAAE,CAAC;YAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY;gBAAE,SAAS;YAC5B,IAAI,YAAY,CAAC,WAAW,KAAK,SAAS;gBAAE,SAAS;YACrD,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5C,OAAO,SAAS,EAAE,IAAI,KAAK,YAAY,CAAC,IAAI,IAAI,SAAS,CAAC,WAAW,KAAK,YAAY,CAAC,WAAW,CAAC;YACrG,CAAC,CAAC,CAAC;YACH,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACjD,MAAM,gBAAgB,GAAG,aAAa,CAAC,KAAK,KAAK,SAAS,IAAI,YAAY,CAAC,oBAAoB,CAAC;YAChG,IAAI,CAAC,gBAAgB;gBAAE,SAAS;YAChC,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACzD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC9C,OAAO,WAAW,EAAE,IAAI,KAAK,YAAY,CAAC,IAAI,IAAI,WAAW,CAAC,WAAW,KAAK,YAAY,CAAC,WAAW,CAAC;YACzG,CAAC,CAAC,CAAC;YACH,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAC7C,UAAU,CACR,iBAAiB,CAAC,CAAC,CAAE,EACrB,cAAc,EACd,aAAa,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB,EACrE,aAAa,CAAC,IAAI,CACnB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"edgePasses.js","sourceRoot":"","sources":["../../../src/graphs/symbol-graph-detailed/edgePasses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { type SymbolDef } from "../../indexer/types.js";
|
|
2
|
+
import type { LanguageSupport } from "../../languages.js";
|
|
3
|
+
import type { SyntaxNodeLike } from "../../languages/types.js";
|
|
4
|
+
import type { SymbolGraph } from "../symbol-graph.js";
|
|
5
|
+
/**
|
|
6
|
+
* A receiver method call whose target could not be proven from the calling module
|
|
7
|
+
* alone. Resolution is deferred until every module has contributed its `member_of`
|
|
8
|
+
* and type-hierarchy edges, because the declaring type may live in another file.
|
|
9
|
+
*/
|
|
10
|
+
export type ReceiverCallCandidate = {
|
|
11
|
+
/** Symbol node id of the function containing the call. */
|
|
12
|
+
callerId: string;
|
|
13
|
+
/** Declaring type node id, or null to use the type that declares `callerId`. */
|
|
14
|
+
ownerId: string | null;
|
|
15
|
+
/** Resolve only through supertypes, for explicit `parent`/`super`/`base` receivers. */
|
|
16
|
+
viaSupertypes: boolean;
|
|
17
|
+
memberName: string;
|
|
18
|
+
/** Argument count, used only to separate same-named overloads on one type. */
|
|
19
|
+
argumentCount: number;
|
|
20
|
+
site: NonNullable<SymbolGraph["edges"][number]["site"]>;
|
|
21
|
+
};
|
|
22
|
+
/** Nodes holding a call's argument list across the supported grammars. */
|
|
23
|
+
export declare const CALL_ARGUMENT_NODE_TYPES: Record<string, true>;
|
|
24
|
+
export type ReceiverCallAccess = {
|
|
25
|
+
/** Member-access node carrying the receiver, used for import-chain resolution. */
|
|
26
|
+
accessNode: SyntaxNodeLike;
|
|
27
|
+
receiver: SyntaxNodeLike;
|
|
28
|
+
property: SyntaxNodeLike;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Resolves the receiver and member-name nodes of a call, or null when the call has no
|
|
32
|
+
* receiver or its shape is not a member access. `callee` is the call's resolved callee
|
|
33
|
+
* node when the grammar exposes one.
|
|
34
|
+
*/
|
|
35
|
+
export declare function receiverCallAccess(sup: LanguageSupport, callNode: SyntaxNodeLike, callee: SyntaxNodeLike | null): ReceiverCallAccess | null;
|
|
36
|
+
export type ReceiverBinding = {
|
|
37
|
+
kind: "own-type";
|
|
38
|
+
} | {
|
|
39
|
+
kind: "supertype";
|
|
40
|
+
} | {
|
|
41
|
+
kind: "named-type";
|
|
42
|
+
typeName: string;
|
|
43
|
+
};
|
|
44
|
+
/** What one receiver expression proves, memoized per enclosing function and text. */
|
|
45
|
+
export type ReceiverProof = {
|
|
46
|
+
/** Node naming the constructed type, when a prior constructor proves one. */
|
|
47
|
+
constructed: SyntaxNodeLike | null;
|
|
48
|
+
/** Whether an enclosing scope binds the receiver name as a value. */
|
|
49
|
+
locallyBound: boolean;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Classifies a receiver as the declaring type, a supertype, or a named/constructed type.
|
|
53
|
+
* Returns null when the receiver cannot be proven.
|
|
54
|
+
* Named-local constructor lookup is memoized per enclosing function and receiver text.
|
|
55
|
+
*/
|
|
56
|
+
export declare function classifyReceiver(sup: LanguageSupport, receiver: SyntaxNodeLike, source: string, proofCache: Map<string, ReceiverProof>, cacheScope: number, accessNode: SyntaxNodeLike): ReceiverBinding | null;
|
|
57
|
+
/** Whether a resolved definition can declare callable members. */
|
|
58
|
+
export declare function declaresMembers(def: SymbolDef): boolean;
|
|
59
|
+
/** Nearest enclosing declaration that lexically owns `node` as a member. */
|
|
60
|
+
export declare function nearestMemberContainer(node: SyntaxNodeLike): SyntaxNodeLike | null;
|
|
61
|
+
/** Positional argument count of a call, ignoring comments. */
|
|
62
|
+
export declare function callArgumentCount(callNode: SyntaxNodeLike): number;
|
|
63
|
+
/**
|
|
64
|
+
* Records proven `calls` edges for deferred receiver invocations.
|
|
65
|
+
* Ambiguous names at a level stop the walk.
|
|
66
|
+
* `super`/`base`/`parent` follow class `extends` ancestors only.
|
|
67
|
+
*/
|
|
68
|
+
export declare function emitReceiverCallEdges(graph: SymbolGraph, candidates: readonly ReceiverCallCandidate[], recordEdge: (fromId: string, toId: string, label?: string, site?: SymbolGraph["edges"][number]["site"]) => boolean): void;
|
|
69
|
+
//# sourceMappingURL=receiverCalls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receiverCalls.d.ts","sourceRoot":"","sources":["../../../src/graphs/symbol-graph-detailed/receiverCalls.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAQ/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,uFAAuF;IACvF,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;CACzD,CAAC;AA2DF,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAMzD,CAAC;AAoFF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kFAAkF;IAClF,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,cAAc,GAAG,IAAI,GAC5B,kBAAkB,GAAG,IAAI,CAwB3B;AAED,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtH,qFAAqF;AACrF,MAAM,MAAM,aAAa,GAAG;IAC1B,6EAA6E;IAC7E,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,qEAAqE;IACrE,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAuFF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EACtC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,cAAc,GACzB,eAAe,GAAG,IAAI,CAiCxB;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAEvD;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI,CAOlF;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CASlE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAC5C,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,GACjH,IAAI,CAoDN"}
|