gitnexus 1.6.4-rc.48 → 1.6.4-rc.49

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.
Files changed (60) hide show
  1. package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +11 -9
  2. package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -1
  3. package/dist/_shared/scope-resolution/finalize-algorithm.js +41 -34
  4. package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
  5. package/dist/core/ingestion/languages/go/arity-metadata.d.ts +8 -0
  6. package/dist/core/ingestion/languages/go/arity-metadata.js +37 -0
  7. package/dist/core/ingestion/languages/go/arity.d.ts +2 -0
  8. package/dist/core/ingestion/languages/go/arity.js +14 -0
  9. package/dist/core/ingestion/languages/go/cache-stats.d.ts +7 -0
  10. package/dist/core/ingestion/languages/go/cache-stats.js +15 -0
  11. package/dist/core/ingestion/languages/go/captures.d.ts +2 -0
  12. package/dist/core/ingestion/languages/go/captures.js +128 -0
  13. package/dist/core/ingestion/languages/go/expand-wildcards.d.ts +15 -0
  14. package/dist/core/ingestion/languages/go/expand-wildcards.js +93 -0
  15. package/dist/core/ingestion/languages/go/import-decomposer.d.ts +3 -0
  16. package/dist/core/ingestion/languages/go/import-decomposer.js +44 -0
  17. package/dist/core/ingestion/languages/go/import-target.d.ts +21 -0
  18. package/dist/core/ingestion/languages/go/import-target.js +67 -0
  19. package/dist/core/ingestion/languages/go/index.d.ts +17 -0
  20. package/dist/core/ingestion/languages/go/index.js +17 -0
  21. package/dist/core/ingestion/languages/go/interface-impls.d.ts +4 -0
  22. package/dist/core/ingestion/languages/go/interface-impls.js +72 -0
  23. package/dist/core/ingestion/languages/go/interpret.d.ts +11 -0
  24. package/dist/core/ingestion/languages/go/interpret.js +146 -0
  25. package/dist/core/ingestion/languages/go/merge-bindings.d.ts +2 -0
  26. package/dist/core/ingestion/languages/go/merge-bindings.js +18 -0
  27. package/dist/core/ingestion/languages/go/method-owners.d.ts +17 -0
  28. package/dist/core/ingestion/languages/go/method-owners.js +96 -0
  29. package/dist/core/ingestion/languages/go/namespace-mirror.d.ts +15 -0
  30. package/dist/core/ingestion/languages/go/namespace-mirror.js +53 -0
  31. package/dist/core/ingestion/languages/go/package-siblings.d.ts +11 -0
  32. package/dist/core/ingestion/languages/go/package-siblings.js +84 -0
  33. package/dist/core/ingestion/languages/go/query.d.ts +3 -0
  34. package/dist/core/ingestion/languages/go/query.js +207 -0
  35. package/dist/core/ingestion/languages/go/range-binding.d.ts +8 -0
  36. package/dist/core/ingestion/languages/go/range-binding.js +108 -0
  37. package/dist/core/ingestion/languages/go/receiver-binding.d.ts +3 -0
  38. package/dist/core/ingestion/languages/go/receiver-binding.js +21 -0
  39. package/dist/core/ingestion/languages/go/scope-resolver.d.ts +2 -0
  40. package/dist/core/ingestion/languages/go/scope-resolver.js +33 -0
  41. package/dist/core/ingestion/languages/go/simple-hooks.d.ts +4 -0
  42. package/dist/core/ingestion/languages/go/simple-hooks.js +21 -0
  43. package/dist/core/ingestion/languages/go/type-binding.d.ts +3 -0
  44. package/dist/core/ingestion/languages/go/type-binding.js +237 -0
  45. package/dist/core/ingestion/languages/go.js +11 -0
  46. package/dist/core/ingestion/registry-primary-flag.js +1 -0
  47. package/dist/core/ingestion/scope-extractor.js +4 -0
  48. package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +60 -1
  49. package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +3 -1
  50. package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +49 -1
  51. package/dist/core/ingestion/scope-resolution/passes/imported-return-types.d.ts +7 -1
  52. package/dist/core/ingestion/scope-resolution/passes/imported-return-types.js +1 -1
  53. package/dist/core/ingestion/scope-resolution/passes/mro.js +2 -1
  54. package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +48 -25
  55. package/dist/core/ingestion/scope-resolution/pipeline/registry.js +2 -0
  56. package/dist/core/ingestion/scope-resolution/pipeline/run.js +25 -5
  57. package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +1 -1
  58. package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +7 -1
  59. package/dist/core/ingestion/scope-resolution/scope/walkers.js +23 -0
  60. package/package.json +1 -1
@@ -83,7 +83,7 @@ export interface FinalizeHooks {
83
83
  * Return `null` when no target file is resolvable (e.g., `np.foo` when
84
84
  * `numpy` is external to the workspace).
85
85
  */
86
- resolveImportTarget(targetRaw: string, fromFile: string, workspaceIndex: WorkspaceIndex): string | null;
86
+ resolveImportTarget(targetRaw: string, fromFile: string, workspaceIndex: WorkspaceIndex): string | readonly string[] | null;
87
87
  /**
88
88
  * For a wildcard `import * from M`, return the names visible in the
89
89
  * exporting module scope `M`. The finalize pass looks each name up in
@@ -109,20 +109,22 @@ export interface FinalizedScc {
109
109
  /**
110
110
  * Counters reported by `finalize`.
111
111
  *
112
- * **Counting granularity** — all edge counters are **per-`ParsedImport`**,
113
- * not per-materialized-`ImportEdge`. A single `wildcard` ParsedImport that
114
- * expands to N exports counts as one linked edge in these stats; the
115
- * materialized output (`FinalizeOutput.imports`) will have N edges for
116
- * that input. `dynamic-unresolved` ParsedImports count as linked (they
117
- * pass through with no `linkStatus`), so `linkedEdges` ≠ "has a
112
+ * **Counting granularity** — `totalEdges` is **per-generated-`ImportEdgeDraft`**,
113
+ * which may exceed the number of `ParsedImport` records when
114
+ * `resolveImportTarget` returns a multi-file array (e.g. Go package-scoped
115
+ * imports fan out to every `.go` file in the target directory). A single
116
+ * `wildcard` ParsedImport that expands to N exports also counts as one
117
+ * linked edge here; the materialized output (`FinalizeOutput.imports`) will
118
+ * have N edges for that input. `dynamic-unresolved` ParsedImports count as
119
+ * linked (they pass through with no `linkStatus`), so `linkedEdges` ≠ "has a
118
120
  * BindingRef" — use the `bindings` map for that.
119
121
  *
120
- * In other words: `totalEdges === input.parsedImports.length` summed
122
+ * In other words: `totalEdges >= input.parsedImports.length` summed
121
123
  * across files, and `linkedEdges + unresolvedEdges === totalEdges`.
122
124
  */
123
125
  export interface FinalizeStats {
124
126
  readonly totalFiles: number;
125
- /** Total `ParsedImport` records seen across all files. */
127
+ /** Total `ImportEdgeDraft` records generated (≥ ParsedImport count). */
126
128
  readonly totalEdges: number;
127
129
  /**
128
130
  * `ParsedImport`s whose finalized edge does NOT carry
@@ -1 +1 @@
1
- {"version":3,"file":"finalize-algorithm.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/finalize-algorithm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIhG,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACjD;AAED,2BAA2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,4DAA4D;IAC5D,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,GAC7B,MAAM,GAAG,IAAI,CAAC;IAEjB;;;;;OAKG;IACH,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CAAC;IAEjG;;;;;;OAMG;IACH,aAAa,CACX,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,KAAK,EAAE,OAAO,GACb,SAAS,UAAU,EAAE,CAAC;CAC1B;AAED,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;IAC9D,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC,CAAC;IACpF,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B;AAID,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,cAAc,CA8InF"}
1
+ {"version":3,"file":"finalize-algorithm.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/finalize-algorithm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIhG,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACjD;AAED,2BAA2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,4DAA4D;IAC5D,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,GAC7B,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAErC;;;;;OAKG;IACH,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CAAC;IAEjG;;;;;;OAMG;IACH,aAAa,CACX,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,KAAK,EAAE,OAAO,GACb,SAAS,UAAU,EAAE,CAAC;CAC1B;AAED,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;IAC9D,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC,CAAC;IACpF,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B;AAID,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,cAAc,CA8InF"}
@@ -44,9 +44,9 @@ export function finalize(input, hooks) {
44
44
  for (const file of input.files) {
45
45
  const drafts = [];
46
46
  for (const parsed of file.parsedImports) {
47
- const draft = makeEdgeDraft(parsed, file, hooks, input.workspaceIndex);
48
- drafts.push(draft);
49
- totalEdges++;
47
+ const draftArray = makeEdgeDrafts(parsed, file, hooks, input.workspaceIndex);
48
+ drafts.push(...draftArray);
49
+ totalEdges += draftArray.length;
50
50
  }
51
51
  edgeIndex.set(file.filePath, drafts);
52
52
  }
@@ -172,7 +172,7 @@ export function finalize(input, hooks) {
172
172
  stats,
173
173
  });
174
174
  }
175
- function makeEdgeDraft(parsed, file, hooks, workspace) {
175
+ function makeEdgeDrafts(parsed, file, hooks, workspace) {
176
176
  // Dynamic-unresolved passes through — no `BindingRef`, no target file.
177
177
  if (parsed.kind === 'dynamic-unresolved') {
178
178
  const base = {
@@ -181,14 +181,16 @@ function makeEdgeDraft(parsed, file, hooks, workspace) {
181
181
  targetExportedName: '',
182
182
  kind: 'dynamic-unresolved',
183
183
  };
184
- return {
185
- source: parsed,
186
- fromFile: file.filePath,
187
- fromScope: file.moduleScope,
188
- targetFile: null,
189
- base,
190
- finalized: base, // already fully finalized
191
- };
184
+ return [
185
+ {
186
+ source: parsed,
187
+ fromFile: file.filePath,
188
+ fromScope: file.moduleScope,
189
+ targetFile: null,
190
+ base,
191
+ finalized: base, // already fully finalized
192
+ },
193
+ ];
192
194
  }
193
195
  const targetFile = hooks.resolveImportTarget(parsed.targetRaw ?? '', file.filePath, workspace);
194
196
  // Edge is unresolvable at the file level — mark unresolved now.
@@ -200,35 +202,40 @@ function makeEdgeDraft(parsed, file, hooks, workspace) {
200
202
  kind: edgeKindFor(parsed),
201
203
  linkStatus: 'unresolved',
202
204
  };
203
- return {
204
- source: parsed,
205
- fromFile: file.filePath,
206
- fromScope: file.moduleScope,
207
- targetFile: null,
208
- base,
209
- finalized: base,
210
- };
205
+ return [
206
+ {
207
+ source: parsed,
208
+ fromFile: file.filePath,
209
+ fromScope: file.moduleScope,
210
+ targetFile: null,
211
+ base,
212
+ finalized: base,
213
+ },
214
+ ];
211
215
  }
212
216
  // Resolvable at the file level; intra-SCC fixpoint may still fail to fill
213
217
  // in `targetDefId` (e.g., symbol not exported from target). Side-effect
214
218
  // and resolved-dynamic imports are terminal at the file level — no
215
219
  // `targetDefId` needed since they materialize no `BindingRef`. Pre-
216
220
  // finalize them here so the fixpoint loop skips them entirely.
217
- const base = {
218
- localName: extractLocalName(parsed),
219
- targetFile,
220
- targetExportedName: extractExportedName(parsed),
221
- kind: edgeKindFor(parsed),
222
- };
221
+ const targetFiles = Array.isArray(targetFile) ? targetFile : [targetFile];
223
222
  const isFileLevelTerminal = parsed.kind === 'side-effect' || parsed.kind === 'dynamic-resolved';
224
- return {
225
- source: parsed,
226
- fromFile: file.filePath,
227
- fromScope: file.moduleScope,
228
- targetFile,
229
- base,
230
- finalized: isFileLevelTerminal ? base : null,
231
- };
223
+ return targetFiles.map((tf) => {
224
+ const base = {
225
+ localName: extractLocalName(parsed),
226
+ targetFile: tf,
227
+ targetExportedName: extractExportedName(parsed),
228
+ kind: edgeKindFor(parsed),
229
+ };
230
+ return {
231
+ source: parsed,
232
+ fromFile: file.filePath,
233
+ fromScope: file.moduleScope,
234
+ targetFile: tf,
235
+ base,
236
+ finalized: isFileLevelTerminal ? base : null,
237
+ };
238
+ });
232
239
  }
233
240
  function edgeKindFor(parsed) {
234
241
  if (parsed.kind === 'wildcard')
@@ -1 +1 @@
1
- {"version":3,"file":"finalize-algorithm.js","sourceRoot":"","sources":["../../src/scope-resolution/finalize-algorithm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAsIH,8EAA8E;AAE9E,MAAM,UAAU,QAAQ,CAAC,KAAoB,EAAE,KAAoB;IACjE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAwB,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK;QAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAE3D,yEAAyE;IACzE,gEAAgE;IAChE,sEAAsE;IACtE,2BAA2B;IAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAC,CAAC,oBAAoB;IAC5E,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,UAAU,EAAE,CAAC;QACf,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,wEAAwE;IACxE,gEAAgE;IAChE,wBAAwB;IACxB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1D,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAE/B,sEAAsE;IACtE,mEAAmE;IACnE,mEAAmE;IACnE,iDAAiD;IACjD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAEnF,wEAAwE;IACxE,yEAAyE;IACzE,kEAAkE;IAClE,qEAAqE;IACrE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkC,CAAC;IAChE,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEvD,wEAAwE;QACxE,sEAAsE;QACtE,qBAAqB;QACrB,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,OAAO,UAAU,IAAI,UAAU,GAAG,QAAQ,EAAE,CAAC;YAC3C,UAAU,GAAG,KAAK,CAAC;YACnB,UAAU,EAAE,CAAC;YACb,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,MAAM,KAAK,SAAS;oBAAE,SAAS;gBACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI;wBAAE,SAAS;oBACvC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;oBACnE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;wBACvB,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;wBAC5B,UAAU,GAAG,IAAI,CAAC;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,MAAM,KAAK,SAAS;gBAAE,SAAS;YACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI;oBAAE,SAAS;gBACvC,KAAK,CAAC,SAAS,GAAG;oBAChB,GAAG,KAAK,CAAC,IAAI;oBACb,UAAU,EAAE,YAAqB;iBAClC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,sEAAsE;IACtE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QACnC,MAAM,SAAS,GAAiB,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC;YACzB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,yDAAyD,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;gBACrE,gEAAgE;gBAChE,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC/E,KAAK,MAAM,CAAC,IAAI,QAAQ;oBAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY;gBAAE,WAAW,EAAE,CAAC;QACtD,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,+EAA+E;IAC/E,qDAAqD;IACrD,MAAM,eAAe,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IAE/E,YAAY;IACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc;YAAE,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3E,CAAC;IACD,MAAM,KAAK,GAAkB;QAC3B,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;QAC9B,UAAU;QACV,WAAW;QACX,eAAe,EAAE,UAAU,GAAG,WAAW;QACzC,QAAQ;QACR,cAAc;KACf,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,eAAe;QACzB,IAAI;QACJ,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAaD,SAAS,aAAa,CACpB,MAAoB,EACpB,IAAkB,EAClB,KAAoB,EACpB,SAAyB;IAEzB,uEAAuE;IACvE,IAAI,MAAM,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QACzC,MAAM,IAAI,GAAe;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,IAAI;YAChB,kBAAkB,EAAE,EAAE;YACtB,IAAI,EAAE,oBAAoB;SAC3B,CAAC;QACF,OAAO;YACL,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,UAAU,EAAE,IAAI;YAChB,IAAI;YACJ,SAAS,EAAE,IAAI,EAAE,0BAA0B;SAC5C,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAE/F,gEAAgE;IAChE,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,GAAe;YACvB,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC;YACnC,UAAU,EAAE,IAAI;YAChB,kBAAkB,EAAE,mBAAmB,CAAC,MAAM,CAAC;YAC/C,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC;YACzB,UAAU,EAAE,YAAY;SACzB,CAAC;QACF,OAAO;YACL,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,UAAU,EAAE,IAAI;YAChB,IAAI;YACJ,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,wEAAwE;IACxE,mEAAmE;IACnE,oEAAoE;IACpE,+DAA+D;IAC/D,MAAM,IAAI,GAAe;QACvB,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACnC,UAAU;QACV,kBAAkB,EAAE,mBAAmB,CAAC,MAAM,CAAC;QAC/C,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC;KAC1B,CAAC;IACF,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,CAAC;IAChG,OAAO;QACL,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,WAAW;QAC3B,UAAU;QACV,IAAI;QACJ,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;KAC7C,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAoB;IACvC,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,mBAAmB,CAAC;IAC3D,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAoB;IAC5C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,UAAU,CAAC;QAChB,KAAK,aAAa,CAAC;QACnB,KAAK,kBAAkB;YACrB,OAAO,EAAE,CAAC;QACZ;YACE,OAAO,MAAM,CAAC,SAAS,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAoB;IAC/C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,MAAM,CAAC,YAAY,CAAC;QAC7B,KAAK,UAAU,CAAC;QAChB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,kBAAkB,CAAC;QACxB,KAAK,aAAa;YAChB,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,8EAA8E;AAE9E,SAAS,WAAW,CAClB,KAAsB,EACtB,UAAqC,EACrC,gBAA0D;IAE1D,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,mBAAmB;IAE/D,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,gCAAgC;IAEnF,yEAAyE;IACzE,oEAAoE;IACpE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO;YACL,GAAG,KAAK,CAAC,IAAI;YACb,iBAAiB,EAAE,YAAY,CAAC,WAAW;SAC5C,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,wEAAwE;IACxE,oEAAoE;IACpE,0EAA0E;IAC1E,yEAAyE;IACzE,aAAa;IACb,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9F,OAAO;YACL,GAAG,KAAK,CAAC,IAAI;YACb,iBAAiB,EAAE,YAAY,CAAC,WAAW;YAC3C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtE,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,uEAAuE;IACvE,4CAA4C;IAC5C,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAExE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,aAAa,GACjB,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,OAAO;YACL,GAAG,KAAK,CAAC,IAAI;YACb,iBAAiB,EAAE,YAAY,CAAC,WAAW;YAC3C,WAAW,EAAE,QAAQ,CAAC,MAAM;YAC5B,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,iBAAiB;IACjB,mCAAmC;IACnC,qEAAqE;IACrE,qEAAqE;IACrE,qEAAqE;IACrE,qEAAqE;IACrE,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAClF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,wEAAwE;QACxE,sEAAsE;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,aAAa,GACjB,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhG,OAAO;QACL,GAAG,KAAK,CAAC,IAAI;QACb,iBAAiB,EAAE,YAAY,CAAC,WAAW;QAC3C,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM;QAChC,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;AACJ,CAAC;AAgBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,SAAS,qBAAqB,CAC5B,KAA8B,EAC9B,UAA6C,EAC7C,SAAiD;IAEjD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6C,CAAC;IACtE,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAEjE,4DAA4D;IAC5D,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU;oBAAE,SAAS;gBAC3E,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI;oBAAE,SAAS;gBACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;oBAAE,SAAS;gBAC5C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,sEAAsE;IACtE,kEAAkE;IAClE,8DAA8D;IAC9D,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAErC,gEAAgE;IAChE,qEAAqE;IACrE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,mBAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACjE,CAAC;YACD,SAAS;QACX,CAAC;QACD,iEAAiE;QACjE,iEAAiE;QACjE,4DAA4D;QAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,OAAO,UAAU,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;YAChC,UAAU,GAAG,KAAK,CAAC;YACnB,IAAI,EAAE,CAAC;YACP,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACjC,IAAI,mBAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACnE,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,mBAAmB,CAC1B,QAAgB,EAChB,UAA6C,EAC7C,SAAiD,EACjD,QAAwD;IAExD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEvC,kEAAkE;IAClE,uDAAuD;IACvD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU;YAAE,SAAS;QAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QAClC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,YAAY,KAAK,SAAS;YAAE,SAAS;QAEzC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;QACzC,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS;QAEvC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;QAC/C,MAAM,MAAM,GAAG,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACtE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5E,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE;gBACvB,GAAG,EAAE,SAAS,CAAC,GAAG;gBAClB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QACD,+DAA+D;QAC/D,uCAAuC;IACzC,CAAC;IAED,oEAAoE;IACpE,qEAAqE;IACrE,4DAA4D;IAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU;YAAE,SAAS;QAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QAClC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,YAAY,KAAK,SAAS;YAAE,SAAS;QAEzC,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACnD,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC1C,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAClC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE;oBAClB,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;iBAC/C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAC3B,QAAkD,EAClD,QAAgB,EAChB,IAAY;IAEZ,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,GAAqB;IAC7C,MAAM,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC;IAC5B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAiC,EACjC,IAAY;IAEZ,8DAA8D;IAC9D,sEAAsE;IACtE,mEAAmE;IACnE,gEAAgE;IAChE,mEAAmE;IACnE,0DAA0D;IAC1D,kEAAkE;IAClE,YAAY;IACZ,EAAE;IACF,oEAAoE;IACpE,oEAAoE;IACpE,EAAE;IACF,+DAA+D;IAC/D,oEAAoE;IACpE,mEAAmE;IACnE,iEAAiE;IACjE,oEAAoE;IACpE,+DAA+D;IAC/D,qEAAqE;IACrE,4DAA4D;IAC5D,sCAAsC;IACtC,EAAE;IACF,6EAA6E;IAC7E,oDAAoD;IACpD,IAAI,QAAsC,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,SAAS;QAC3C,IAAI,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,QAAQ,KAAK,SAAS;YAAE,QAAQ,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IACzD,UAAU;IACV,QAAQ;IACR,aAAa;IACb,OAAO;IACP,WAAW;IACX,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,WAAW;IACX,QAAQ;IACR,WAAW;IACX,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAEH,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAyC,EAAE,KAAkB;IACrF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QACnC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;gBAAE,CAAC,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,4EAA4E;IAC5E,4EAA4E;IAC5E,oCAAoC;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,CAAC;AAED,8EAA8E;AAE9E,SAAS,cAAc,CACrB,IAAgB,EAChB,UAAqC,EACrC,KAAoB,EACpB,SAAyB;IAEzB,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,2DAA2D;IAC5E,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,GAAG,KAAK,SAAS;YAAE,SAAS;QAChC,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE,mBAAmB;YACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,WAAW,EAAE,GAAG,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,+EAA+E;AAE/E,SAAS,mBAAmB,CAC1B,KAA8B,EAC9B,aAA0D,EAC1D,KAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAuD,CAAC;IAE3E,kEAAkE;IAClE,qEAAqE;IACrE,gEAAgE;IAChE,iEAAiE;IACjE,iEAAiE;IACjE,qDAAqD;IACrD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAiC,CAAC;QAE/D,uDAAuD;QACvD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,IAAI,KAAK,IAAI;gBAAE,SAAS;YAC5B,MAAM,QAAQ,GAAiB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/C,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACrF,CAAC;QAED,8BAA8B;QAC9B,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY;gBAAE,SAAS;YACjF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,GAAG,KAAK,SAAS;gBAAE,SAAS;YAEhC,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,KAAK,WAAW;gBACvB,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,mBAAmB;oBACjC,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;wBACxB,CAAC,CAAC,UAAU;wBACZ,CAAC,CAAC,QAAQ,CAAC;YACnB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YACnE,IAAI,IAAI,KAAK,IAAI;gBAAE,SAAS;YAC5B,MAAM,QAAQ,GAAiB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/C,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACrF,CAAC;QAED,0CAA0C;QAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;QACxD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAE9E;;;;GAIG;AACH,SAAS,UAAU,CAAC,KAA+C;IACjE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAmB,EAAE,CAAC;IAChC,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,sBAAsB;IACxE,MAAM,SAAS,GAA0E,EAAE,CAAC;IAE5F,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9B,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC,CAAC,MAAM,EAAE;YACzD,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9C,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM;YAE/B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7B,GAAG,EAAE,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAED,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBACnB,8DAA8D;gBAC9D,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtD,MAAM,GAAG,GAAa,EAAE,CAAC;oBACzB,IAAI,WAAW,GAAG,KAAK,CAAC;oBACxB,OAAO,IAAI,EAAE,CAAC;wBACZ,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;wBACtB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;4BACpB,MAAM,IAAI,KAAK,CAAC,iDAAiD,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;wBACjF,CAAC;wBACD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAClB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACZ,6CAA6C;wBAC7C,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;4BACrB,WAAW,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BACjD,MAAM;wBACR,CAAC;oBACH,CAAC;oBACD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC;oBAC9C,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;gBACpD,CAAC;gBACD,SAAS,CAAC,GAAG,EAAE,CAAC;gBAChB,+BAA+B;gBAC/B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBACzB,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,IAAI,EACX,IAAI,CAAC,GAAG,CACN,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EAC/C,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAC/C,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,KAAK;oBACX,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC,CAAC,MAAM,EAAE;oBAC1D,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,EACV,IAAI,CAAC,GAAG,CACN,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,EAC9C,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CACtC,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,GAAgC,EAAE,GAAW,EAAE,KAAa;IAClF,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"finalize-algorithm.js","sourceRoot":"","sources":["../../src/scope-resolution/finalize-algorithm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { SyntaxNode } from '../../utils/ast-helpers.js';
2
+ export interface GoArityMetadata {
3
+ readonly parameterCount?: number;
4
+ readonly requiredParameterCount?: number;
5
+ readonly parameterTypes?: readonly string[];
6
+ }
7
+ export declare function computeGoDeclarationArity(node: SyntaxNode): GoArityMetadata;
8
+ export declare function computeGoCallArity(callNode: SyntaxNode): number;
@@ -0,0 +1,37 @@
1
+ export function computeGoDeclarationArity(node) {
2
+ const params = node.childForFieldName('parameters');
3
+ if (params === null)
4
+ return {};
5
+ let count = 0;
6
+ let required = 0;
7
+ const types = [];
8
+ for (let i = 0; i < params.namedChildCount; i++) {
9
+ const param = params.namedChild(i);
10
+ if (param === null)
11
+ continue;
12
+ if (param.type === 'parameter_declaration') {
13
+ const typeNode = param.childForFieldName('type');
14
+ const typeName = typeNode === null ? '' : typeNode.text;
15
+ const names = param.namedChildren.filter((c) => c.type === 'identifier');
16
+ const n = Math.max(1, names.length);
17
+ for (let j = 0; j < n; j++) {
18
+ count++;
19
+ required++;
20
+ types.push(typeName);
21
+ }
22
+ }
23
+ if (param.type === 'variadic_parameter_declaration') {
24
+ const typeNode = param.childForFieldName('type');
25
+ const typeName = typeNode === null ? '...' : `...${typeNode.text}`;
26
+ count++;
27
+ types.push(typeName);
28
+ }
29
+ }
30
+ return { parameterCount: count, requiredParameterCount: required, parameterTypes: types };
31
+ }
32
+ export function computeGoCallArity(callNode) {
33
+ const args = callNode.childForFieldName('arguments');
34
+ if (args === null)
35
+ return 0;
36
+ return args.namedChildCount;
37
+ }
@@ -0,0 +1,2 @@
1
+ import type { Callsite, SymbolDefinition } from '../../../../_shared/index.js';
2
+ export declare function goArityCompatibility(def: SymbolDefinition, callsite: Callsite): 'compatible' | 'unknown' | 'incompatible';
@@ -0,0 +1,14 @@
1
+ export function goArityCompatibility(def, callsite) {
2
+ const max = def.parameterCount;
3
+ const min = def.requiredParameterCount;
4
+ if (max === undefined && min === undefined)
5
+ return 'unknown';
6
+ if (!Number.isFinite(callsite.arity) || callsite.arity < 0)
7
+ return 'unknown';
8
+ const variadic = def.parameterTypes?.some((t) => t.startsWith('...')) ?? false;
9
+ if (min !== undefined && callsite.arity < min)
10
+ return 'incompatible';
11
+ if (max !== undefined && callsite.arity > max && !variadic)
12
+ return 'incompatible';
13
+ return 'compatible';
14
+ }
@@ -0,0 +1,7 @@
1
+ export declare function recordGoCacheHit(): void;
2
+ export declare function recordGoCacheMiss(): void;
3
+ export declare function getGoCaptureCacheStats(): {
4
+ readonly hits: number;
5
+ readonly misses: number;
6
+ };
7
+ export declare function resetGoCaptureCacheStats(): void;
@@ -0,0 +1,15 @@
1
+ let hits = 0;
2
+ let misses = 0;
3
+ export function recordGoCacheHit() {
4
+ hits++;
5
+ }
6
+ export function recordGoCacheMiss() {
7
+ misses++;
8
+ }
9
+ export function getGoCaptureCacheStats() {
10
+ return { hits, misses };
11
+ }
12
+ export function resetGoCaptureCacheStats() {
13
+ hits = 0;
14
+ misses = 0;
15
+ }
@@ -0,0 +1,2 @@
1
+ import type { CaptureMatch } from '../../../../_shared/index.js';
2
+ export declare function emitGoScopeCaptures(sourceText: string, _filePath: string, cachedTree?: unknown): readonly CaptureMatch[];
@@ -0,0 +1,128 @@
1
+ import { findNodeAtRange, nodeToCapture, syntheticCapture, } from '../../utils/ast-helpers.js';
2
+ import { getGoParser, getGoScopeQuery } from './query.js';
3
+ import { recordGoCacheHit, recordGoCacheMiss } from './cache-stats.js';
4
+ import { computeGoCallArity, computeGoDeclarationArity } from './arity-metadata.js';
5
+ import { splitGoImportStatement } from './import-decomposer.js';
6
+ import { synthesizeGoReceiverBinding } from './receiver-binding.js';
7
+ import { synthesizeGoTypeBindings } from './type-binding.js';
8
+ import { getTreeSitterBufferSize } from '../../constants.js';
9
+ export function emitGoScopeCaptures(sourceText, _filePath, cachedTree) {
10
+ let tree = cachedTree;
11
+ if (tree === undefined) {
12
+ tree = getGoParser().parse(sourceText, undefined, {
13
+ bufferSize: getTreeSitterBufferSize(sourceText),
14
+ });
15
+ recordGoCacheMiss();
16
+ }
17
+ else {
18
+ recordGoCacheHit();
19
+ }
20
+ const rawMatches = getGoScopeQuery().matches(tree.rootNode);
21
+ const out = [];
22
+ for (const m of rawMatches) {
23
+ const grouped = {};
24
+ for (const c of m.captures) {
25
+ const tag = '@' + c.name;
26
+ if (tag.startsWith('@_'))
27
+ continue; // skip anonymous captures
28
+ grouped[tag] = nodeToCapture(tag, c.node);
29
+ }
30
+ if (Object.keys(grouped).length === 0)
31
+ continue;
32
+ if (grouped['@import.statement'] !== undefined) {
33
+ const anchor = grouped['@import.statement'];
34
+ const importNode = findNodeAtRange(tree.rootNode, anchor.range, 'import_declaration') ??
35
+ findNodeAtRange(tree.rootNode, anchor.range, 'import_spec');
36
+ if (importNode !== null) {
37
+ out.push(...splitGoImportStatement(importNode));
38
+ continue;
39
+ }
40
+ }
41
+ if (grouped['@scope.function'] !== undefined) {
42
+ const scopeCap = grouped['@scope.function'];
43
+ const fnNode = findNodeAtRange(tree.rootNode, scopeCap.range, 'function_declaration') ??
44
+ findNodeAtRange(tree.rootNode, scopeCap.range, 'method_declaration');
45
+ if (fnNode !== null) {
46
+ const receiver = synthesizeGoReceiverBinding(fnNode);
47
+ if (receiver !== null)
48
+ out.push(receiver);
49
+ }
50
+ }
51
+ if (isRawMultiAssignTypeBinding(tree.rootNode, grouped))
52
+ continue;
53
+ const declAnchor = grouped['@declaration.function'] ?? grouped['@declaration.method'];
54
+ if (declAnchor !== undefined) {
55
+ const fnNode = findNodeAtRange(tree.rootNode, declAnchor.range, 'function_declaration') ??
56
+ findNodeAtRange(tree.rootNode, declAnchor.range, 'method_declaration');
57
+ if (fnNode !== null) {
58
+ const arity = computeGoDeclarationArity(fnNode);
59
+ if (arity.parameterCount !== undefined) {
60
+ grouped['@declaration.parameter-count'] = syntheticCapture('@declaration.parameter-count', fnNode, String(arity.parameterCount));
61
+ }
62
+ if (arity.requiredParameterCount !== undefined) {
63
+ grouped['@declaration.required-parameter-count'] = syntheticCapture('@declaration.required-parameter-count', fnNode, String(arity.requiredParameterCount));
64
+ }
65
+ if (arity.parameterTypes !== undefined) {
66
+ grouped['@declaration.parameter-types'] = syntheticCapture('@declaration.parameter-types', fnNode, JSON.stringify(arity.parameterTypes));
67
+ }
68
+ }
69
+ out.push(grouped);
70
+ continue;
71
+ }
72
+ const callAnchor = grouped['@reference.call.free'] ??
73
+ grouped['@reference.call.member'] ??
74
+ grouped['@reference.call.constructor'];
75
+ if (callAnchor !== undefined && grouped['@reference.arity'] === undefined) {
76
+ const callNode = findNodeAtRange(tree.rootNode, callAnchor.range, 'call_expression') ??
77
+ findNodeAtRange(tree.rootNode, callAnchor.range, 'composite_literal');
78
+ if (callNode !== null) {
79
+ grouped['@reference.arity'] = syntheticCapture('@reference.arity', callNode, String(computeGoCallArity(callNode)));
80
+ }
81
+ }
82
+ out.push(grouped);
83
+ }
84
+ // Layer on type-binding synthesis (new/make/qualified composite literal)
85
+ const synthesized = synthesizeGoTypeBindings(tree.rootNode);
86
+ out.push(...synthesized);
87
+ // Synthesize typeBindings for struct fields so compound receiver
88
+ // resolution (`user.Address.Save()`) can walk field types.
89
+ for (const match of out) {
90
+ if (match['@declaration.field'] === undefined)
91
+ continue;
92
+ const nameCap = match['@declaration.name'];
93
+ const typeCap = match['@declaration.field-type'];
94
+ if (nameCap === undefined || typeCap === undefined)
95
+ continue;
96
+ // Create a synthetic @type-binding.field match using the field
97
+ // name and its declared type from the @declaration.field-type capture.
98
+ // This lands in the Class scope's typeBindings (via pass4 positioning).
99
+ out.push({
100
+ '@type-binding.field': typeCap,
101
+ '@type-binding.name': nameCap,
102
+ '@type-binding.type': {
103
+ name: '@type-binding.type',
104
+ text: typeCap.text,
105
+ range: { ...typeCap.range },
106
+ },
107
+ });
108
+ }
109
+ return out;
110
+ }
111
+ function isRawMultiAssignTypeBinding(rootNode, grouped) {
112
+ const anchor = grouped['@type-binding.constructor'] ??
113
+ grouped['@type-binding.call-return'] ??
114
+ grouped['@type-binding.assertion'];
115
+ if (anchor === undefined)
116
+ return false;
117
+ const node = findNodeAtRange(rootNode, anchor.range, 'short_var_declaration');
118
+ if (node === null)
119
+ return false;
120
+ const lhs = node.childForFieldName('left');
121
+ const rhs = node.childForFieldName('right');
122
+ if (lhs === null)
123
+ return false;
124
+ if (rhs === null)
125
+ return false;
126
+ return (lhs.namedChildren.filter((c) => c.type === 'identifier').length >= 2 &&
127
+ rhs.namedChildren.length >= 2);
128
+ }
@@ -0,0 +1,15 @@
1
+ import type { ParsedFile, ScopeId } from '../../../../_shared/index.js';
2
+ import type { ScopeResolutionIndexes } from '../../model/scope-resolution-indexes.js';
3
+ /**
4
+ * Expand Go dot imports (`import . "pkg"`) into binding augmentations.
5
+ *
6
+ * Go dot imports are treated as wildcard imports in the scope model.
7
+ * The shared `expandsWildcardTo` hook defaults to returning `[]` for Go
8
+ * because it can't easily access the target module's exported defs
9
+ * (it only receives a `ScopeId`). Instead we post-process wildcard
10
+ * import edges and augment bindings with the target file's exported
11
+ * (uppercase) defs — the same augmentation channel used by
12
+ * `populateGoPackageSiblings` for same-package cross-file visibility.
13
+ */
14
+ export declare function expandGoDotImports(parsedFiles: readonly ParsedFile[], indexes: ScopeResolutionIndexes): void;
15
+ export declare function expandGoWildcardNames(targetModuleScope: ScopeId, parsedFiles: readonly ParsedFile[]): readonly string[];
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Expand Go dot imports (`import . "pkg"`) into binding augmentations.
3
+ *
4
+ * Go dot imports are treated as wildcard imports in the scope model.
5
+ * The shared `expandsWildcardTo` hook defaults to returning `[]` for Go
6
+ * because it can't easily access the target module's exported defs
7
+ * (it only receives a `ScopeId`). Instead we post-process wildcard
8
+ * import edges and augment bindings with the target file's exported
9
+ * (uppercase) defs — the same augmentation channel used by
10
+ * `populateGoPackageSiblings` for same-package cross-file visibility.
11
+ */
12
+ export function expandGoDotImports(parsedFiles, indexes) {
13
+ const augmentations = indexes.bindingAugmentations;
14
+ for (const parsed of parsedFiles) {
15
+ const moduleEdges = indexes.imports.get(parsed.moduleScope);
16
+ if (moduleEdges === undefined)
17
+ continue;
18
+ const wildcardTargets = [];
19
+ for (const edge of moduleEdges) {
20
+ // Go dot imports start as `kind: 'wildcard'`; finalize materializes
21
+ // them as `wildcard-expanded` import edges.
22
+ if (edge.kind !== 'wildcard-expanded' && edge.kind !== 'dynamic-resolved') {
23
+ continue;
24
+ }
25
+ if (edge.targetFile === null)
26
+ continue;
27
+ if (!wildcardTargets.includes(edge.targetFile))
28
+ wildcardTargets.push(edge.targetFile);
29
+ }
30
+ if (wildcardTargets.length === 0)
31
+ continue;
32
+ for (const targetFile of wildcardTargets) {
33
+ const targetModule = indexes.moduleScopes.byFilePath.get(targetFile);
34
+ if (targetModule === undefined)
35
+ continue;
36
+ // Walk target module's local bindings — these are the exported symbols.
37
+ const targetBindings = indexes.bindings.get(targetModule);
38
+ if (targetBindings === undefined)
39
+ continue;
40
+ for (const [name, refs] of targetBindings) {
41
+ if (name.length === 0)
42
+ continue;
43
+ // V1: ASCII-only export check; Unicode uppercase identifiers (e.g. Ñame)
44
+ // are not recognized as exported. Conforms to Go community convention.
45
+ const first = name[0];
46
+ if (first < 'A' || first > 'Z')
47
+ continue;
48
+ // Check if the importer already has this name.
49
+ const importerBindings = indexes.bindings.get(parsed.moduleScope);
50
+ if (importerBindings?.has(name))
51
+ continue;
52
+ let augBucket = augmentations.get(parsed.moduleScope);
53
+ if (augBucket === undefined) {
54
+ augBucket = new Map();
55
+ augmentations.set(parsed.moduleScope, augBucket);
56
+ }
57
+ let entries = augBucket.get(name);
58
+ if (entries === undefined) {
59
+ entries = [];
60
+ augBucket.set(name, entries);
61
+ }
62
+ for (const ref of refs) {
63
+ if (ref.origin !== 'local')
64
+ continue;
65
+ if (entries.some((e) => e.def.nodeId === ref.def.nodeId))
66
+ continue;
67
+ entries.push({ def: ref.def, origin: 'wildcard' });
68
+ }
69
+ }
70
+ }
71
+ }
72
+ }
73
+ export function expandGoWildcardNames(targetModuleScope, parsedFiles) {
74
+ const target = parsedFiles.find((parsed) => parsed.moduleScope === targetModuleScope);
75
+ if (target === undefined)
76
+ return [];
77
+ const names = [];
78
+ for (const def of target.localDefs) {
79
+ const name = simpleName(def);
80
+ if (name === '')
81
+ continue;
82
+ // V1: ASCII-only export check; see expandGoDotImports for full note.
83
+ const first = name[0];
84
+ if (first < 'A' || first > 'Z')
85
+ continue;
86
+ if (!names.includes(name))
87
+ names.push(name);
88
+ }
89
+ return names;
90
+ }
91
+ function simpleName(def) {
92
+ return def.qualifiedName?.split('.').pop() ?? def.qualifiedName ?? '';
93
+ }
@@ -0,0 +1,3 @@
1
+ import type { CaptureMatch } from '../../../../_shared/index.js';
2
+ import type { SyntaxNode } from '../../utils/ast-helpers.js';
3
+ export declare function splitGoImportStatement(node: SyntaxNode): CaptureMatch[];