@lzehrung/codegraph 2.3.31 → 3.0.0
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/README.md +33 -141
- package/codegraph-skill/codegraph/SKILL.md +8 -6
- package/dist/agent/artifact.d.ts +2 -0
- package/dist/agent/artifact.d.ts.map +1 -1
- package/dist/agent/artifact.js.map +1 -1
- package/dist/agent/call-hierarchy.js +2 -4
- package/dist/agent/call-hierarchy.js.map +1 -1
- package/dist/agent/explore.d.ts +1 -1
- package/dist/agent/explore.d.ts.map +1 -1
- package/dist/agent/explore.js +3 -2
- package/dist/agent/explore.js.map +1 -1
- package/dist/agent/refactor-plan.js +2 -4
- package/dist/agent/refactor-plan.js.map +1 -1
- package/dist/agent/rename-preview.d.ts.map +1 -1
- package/dist/agent/rename-preview.js +4 -3
- package/dist/agent/rename-preview.js.map +1 -1
- package/dist/agent/search.d.ts.map +1 -1
- package/dist/agent/search.js +5 -3
- package/dist/agent/search.js.map +1 -1
- package/dist/agent/semantic-symbols.d.ts.map +1 -1
- package/dist/agent/semantic-symbols.js +2 -3
- package/dist/agent/semantic-symbols.js.map +1 -1
- package/dist/agent/session.d.ts +3 -0
- package/dist/agent/session.d.ts.map +1 -1
- package/dist/agent/session.js +10 -2
- package/dist/agent/session.js.map +1 -1
- package/dist/agent/type-hierarchy.js +2 -4
- package/dist/agent/type-hierarchy.js.map +1 -1
- package/dist/agent/workspace-symbols.d.ts.map +1 -1
- package/dist/agent/workspace-symbols.js +2 -3
- package/dist/agent/workspace-symbols.js.map +1 -1
- package/dist/agent-tools.d.ts +0 -4
- package/dist/agent-tools.d.ts.map +1 -1
- package/dist/agent-tools.js +3 -6
- package/dist/agent-tools.js.map +1 -1
- package/dist/analysis-summary.d.ts +8 -4
- package/dist/analysis-summary.d.ts.map +1 -1
- package/dist/analysis-summary.js +15 -66
- package/dist/analysis-summary.js.map +1 -1
- package/dist/bin/cli.js +51145 -41770
- package/dist/bin/query-index-worker.js +122 -82
- package/dist/cli/affected.d.ts.map +1 -1
- package/dist/cli/affected.js +4 -1
- package/dist/cli/affected.js.map +1 -1
- package/dist/cli/command-catalog.js +1 -1
- package/dist/cli/command-catalog.js.map +1 -1
- package/dist/cli/command-table.d.ts.map +1 -1
- package/dist/cli/command-table.js +9 -17
- package/dist/cli/command-table.js.map +1 -1
- package/dist/cli/context.js +10 -10
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/drift.d.ts +0 -2
- package/dist/cli/drift.d.ts.map +1 -1
- package/dist/cli/drift.js +0 -1
- package/dist/cli/drift.js.map +1 -1
- package/dist/cli/graph-delta.d.ts +0 -2
- package/dist/cli/graph-delta.d.ts.map +1 -1
- package/dist/cli/graph-delta.js +0 -4
- package/dist/cli/graph-delta.js.map +1 -1
- package/dist/cli/graph-queries.d.ts.map +1 -1
- package/dist/cli/graph-queries.js +27 -1
- package/dist/cli/graph-queries.js.map +1 -1
- package/dist/cli/graph.d.ts +0 -3
- package/dist/cli/graph.d.ts.map +1 -1
- package/dist/cli/graph.js +4 -14
- package/dist/cli/graph.js.map +1 -1
- package/dist/cli/help.d.ts +34 -34
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +9 -14
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/impact.d.ts +0 -2
- package/dist/cli/impact.d.ts.map +1 -1
- package/dist/cli/impact.js +0 -1
- package/dist/cli/impact.js.map +1 -1
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/inspect.d.ts +0 -2
- package/dist/cli/inspect.d.ts.map +1 -1
- package/dist/cli/inspect.js +5 -8
- package/dist/cli/inspect.js.map +1 -1
- package/dist/cli/invocation-context.d.ts +0 -3
- package/dist/cli/invocation-context.d.ts.map +1 -1
- package/dist/cli/invocation-context.js +4 -16
- package/dist/cli/invocation-context.js.map +1 -1
- package/dist/cli/navigation.d.ts +0 -2
- package/dist/cli/navigation.d.ts.map +1 -1
- package/dist/cli/navigation.js +0 -1
- package/dist/cli/navigation.js.map +1 -1
- package/dist/cli/options.d.ts.map +1 -1
- package/dist/cli/options.js +4 -14
- package/dist/cli/options.js.map +1 -1
- package/dist/cli/review.d.ts +0 -2
- package/dist/cli/review.d.ts.map +1 -1
- package/dist/cli/review.js +0 -5
- package/dist/cli/review.js.map +1 -1
- package/dist/cli/root-policy.d.ts +0 -2
- package/dist/cli/root-policy.d.ts.map +1 -1
- package/dist/cli/root-policy.js +0 -8
- package/dist/cli/root-policy.js.map +1 -1
- package/dist/cli/server.d.ts.map +1 -1
- package/dist/cli/server.js +0 -2
- package/dist/cli/server.js.map +1 -1
- package/dist/drift/artifact.d.ts.map +1 -1
- package/dist/drift/artifact.js +15 -18
- package/dist/drift/artifact.js.map +1 -1
- package/dist/drift/compare.js +1 -1
- package/dist/drift/compare.js.map +1 -1
- package/dist/drift/git.d.ts.map +1 -1
- package/dist/drift/git.js +0 -1
- package/dist/drift/git.js.map +1 -1
- package/dist/drift/snapshot.d.ts.map +1 -1
- package/dist/drift/snapshot.js +5 -7
- package/dist/drift/snapshot.js.map +1 -1
- package/dist/drift/types.d.ts +2 -2
- package/dist/drift/types.d.ts.map +1 -1
- package/dist/drift/types.js.map +1 -1
- package/dist/duplicates/unit-cache.d.ts +0 -1
- package/dist/duplicates/unit-cache.d.ts.map +1 -1
- package/dist/duplicates/unit-cache.js +3 -11
- package/dist/duplicates/unit-cache.js.map +1 -1
- package/dist/duplicates/units.d.ts +5 -5
- package/dist/duplicates/units.d.ts.map +1 -1
- package/dist/duplicates/units.js +25 -88
- package/dist/duplicates/units.js.map +1 -1
- package/dist/graph-builder.d.ts +0 -6
- package/dist/graph-builder.d.ts.map +1 -1
- package/dist/graph-builder.js +6 -11
- package/dist/graph-builder.js.map +1 -1
- package/dist/graph-edge-collector.d.ts +4 -6
- package/dist/graph-edge-collector.d.ts.map +1 -1
- package/dist/graph-edge-collector.js +31 -26
- package/dist/graph-edge-collector.js.map +1 -1
- package/dist/graphs/angularjs.d.ts.map +1 -1
- package/dist/graphs/angularjs.js +2 -1
- package/dist/graphs/angularjs.js.map +1 -1
- package/dist/graphs/edge-resolution.d.ts +4 -1
- package/dist/graphs/edge-resolution.d.ts.map +1 -1
- package/dist/graphs/edge-resolution.js +24 -76
- package/dist/graphs/edge-resolution.js.map +1 -1
- package/dist/graphs/specifiers.d.ts +4 -13
- package/dist/graphs/specifiers.d.ts.map +1 -1
- package/dist/graphs/specifiers.js +80 -173
- package/dist/graphs/specifiers.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/ast.d.ts +20 -0
- package/dist/graphs/symbol-graph-detailed/ast.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/ast.js +154 -15
- package/dist/graphs/symbol-graph-detailed/ast.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts +60 -8
- package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/edge-passes.js +997 -168
- package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/import-aliases.d.ts +2 -1
- package/dist/graphs/symbol-graph-detailed/import-aliases.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/import-aliases.js +150 -7
- package/dist/graphs/symbol-graph-detailed/import-aliases.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/member-chains.d.ts +1 -0
- package/dist/graphs/symbol-graph-detailed/member-chains.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/member-chains.js +3 -1
- package/dist/graphs/symbol-graph-detailed/member-chains.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +141 -25
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js +1015 -166
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed.js +449 -46
- package/dist/graphs/symbol-graph-detailed.js.map +1 -1
- package/dist/graphs/symbol-graph.d.ts +2 -0
- package/dist/graphs/symbol-graph.d.ts.map +1 -1
- package/dist/graphs/symbol-graph.js +34 -16
- package/dist/graphs/symbol-graph.js.map +1 -1
- package/dist/graphs/types.d.ts +0 -4
- package/dist/graphs/types.d.ts.map +1 -1
- package/dist/graphs.d.ts +1 -1
- package/dist/graphs.d.ts.map +1 -1
- package/dist/impact/call-compatibility/providers/index.d.ts +4 -4
- package/dist/impact/call-compatibility/providers/index.d.ts.map +1 -1
- package/dist/impact/call-compatibility/providers/index.js +6 -6
- package/dist/impact/call-compatibility/providers/index.js.map +1 -1
- package/dist/impact/call-compatibility/providers/types.d.ts +2 -0
- package/dist/impact/call-compatibility/providers/types.d.ts.map +1 -1
- package/dist/impact/call-compatibility/types.d.ts +6 -0
- package/dist/impact/call-compatibility/types.d.ts.map +1 -1
- package/dist/impact/call-compatibility.d.ts.map +1 -1
- package/dist/impact/call-compatibility.js +316 -526
- package/dist/impact/call-compatibility.js.map +1 -1
- package/dist/impact/map.js +1 -0
- package/dist/impact/map.js.map +1 -1
- package/dist/impact/reference-cache.d.ts.map +1 -1
- package/dist/impact/reference-cache.js +2 -2
- package/dist/impact/reference-cache.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/indexer/ambiguous-resolution.d.ts +11 -0
- package/dist/indexer/ambiguous-resolution.d.ts.map +1 -0
- package/dist/indexer/ambiguous-resolution.js +19 -0
- package/dist/indexer/ambiguous-resolution.js.map +1 -0
- package/dist/indexer/build-cache/module-cache.d.ts +39 -1
- package/dist/indexer/build-cache/module-cache.d.ts.map +1 -1
- package/dist/indexer/build-cache/module-cache.js +218 -21
- package/dist/indexer/build-cache/module-cache.js.map +1 -1
- package/dist/indexer/build-cache/options.d.ts +30 -44
- package/dist/indexer/build-cache/options.d.ts.map +1 -1
- package/dist/indexer/build-cache/options.js +32 -71
- package/dist/indexer/build-cache/options.js.map +1 -1
- package/dist/indexer/build-cache/project-snapshot.d.ts +3 -3
- package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
- package/dist/indexer/build-cache/project-snapshot.js +164 -84
- package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
- package/dist/indexer/build-cache/reports.d.ts +0 -2
- package/dist/indexer/build-cache/reports.d.ts.map +1 -1
- package/dist/indexer/build-cache/reports.js +0 -97
- package/dist/indexer/build-cache/reports.js.map +1 -1
- package/dist/indexer/build-cache/resolver-environment.d.ts.map +1 -1
- package/dist/indexer/build-cache/resolver-environment.js +32 -2
- package/dist/indexer/build-cache/resolver-environment.js.map +1 -1
- package/dist/indexer/build-cache.d.ts +2 -2
- package/dist/indexer/build-cache.d.ts.map +1 -1
- package/dist/indexer/build-cache.js +2 -2
- package/dist/indexer/build-cache.js.map +1 -1
- package/dist/indexer/build-index.d.ts.map +1 -1
- package/dist/indexer/build-index.js +656 -71
- package/dist/indexer/build-index.js.map +1 -1
- package/dist/indexer/build-workers.d.ts.map +1 -1
- package/dist/indexer/build-workers.js +9 -9
- package/dist/indexer/build-workers.js.map +1 -1
- package/dist/indexer/call-hierarchy.js +1 -1
- package/dist/indexer/call-hierarchy.js.map +1 -1
- package/dist/indexer/callable-identity.d.ts +24 -0
- package/dist/indexer/callable-identity.d.ts.map +1 -0
- package/dist/indexer/callable-identity.js +111 -0
- package/dist/indexer/callable-identity.js.map +1 -0
- package/dist/indexer/compilation-units.d.ts +103 -0
- package/dist/indexer/compilation-units.d.ts.map +1 -0
- package/dist/indexer/compilation-units.js +607 -0
- package/dist/indexer/compilation-units.js.map +1 -0
- package/dist/indexer/cpp-callables.d.ts +25 -0
- package/dist/indexer/cpp-callables.d.ts.map +1 -0
- package/dist/indexer/cpp-callables.js +562 -0
- package/dist/indexer/cpp-callables.js.map +1 -0
- package/dist/indexer/declaration-visibility.d.ts +43 -2
- package/dist/indexer/declaration-visibility.d.ts.map +1 -1
- package/dist/indexer/declaration-visibility.js +158 -2
- package/dist/indexer/declaration-visibility.js.map +1 -1
- package/dist/indexer/expand-star-imports.d.ts +6 -1
- package/dist/indexer/expand-star-imports.d.ts.map +1 -1
- package/dist/indexer/expand-star-imports.js +131 -37
- package/dist/indexer/expand-star-imports.js.map +1 -1
- package/dist/indexer/finalize.d.ts.map +1 -1
- package/dist/indexer/finalize.js +0 -1
- package/dist/indexer/finalize.js.map +1 -1
- package/dist/indexer/import-resolution-tables.d.ts +72 -0
- package/dist/indexer/import-resolution-tables.d.ts.map +1 -0
- package/dist/indexer/import-resolution-tables.js +137 -0
- package/dist/indexer/import-resolution-tables.js.map +1 -0
- package/dist/indexer/import-types.d.ts +54 -0
- package/dist/indexer/import-types.d.ts.map +1 -1
- package/dist/indexer/import-types.js +24 -1
- package/dist/indexer/import-types.js.map +1 -1
- package/dist/indexer/imports/context.d.ts +16 -1
- package/dist/indexer/imports/context.d.ts.map +1 -1
- package/dist/indexer/imports/import-binding-tables.d.ts +13 -1
- package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -1
- package/dist/indexer/imports/import-binding-tables.js +149 -30
- package/dist/indexer/imports/import-binding-tables.js.map +1 -1
- package/dist/indexer/imports/js-text-imports.js +4 -4
- package/dist/indexer/imports/js-text-imports.js.map +1 -1
- package/dist/indexer/imports/native-captures.d.ts.map +1 -1
- package/dist/indexer/imports/native-captures.js +24 -6
- package/dist/indexer/imports/native-captures.js.map +1 -1
- package/dist/indexer/imports/python.d.ts +10 -2
- package/dist/indexer/imports/python.d.ts.map +1 -1
- package/dist/indexer/imports/python.js +128 -112
- package/dist/indexer/imports/python.js.map +1 -1
- package/dist/indexer/imports/text-import-extractors.d.ts.map +1 -1
- package/dist/indexer/imports/text-import-extractors.js +68 -19
- package/dist/indexer/imports/text-import-extractors.js.map +1 -1
- package/dist/indexer/imports.d.ts +3 -4
- package/dist/indexer/imports.d.ts.map +1 -1
- package/dist/indexer/imports.js +116 -72
- package/dist/indexer/imports.js.map +1 -1
- package/dist/indexer/incremental-plan.d.ts +33 -0
- package/dist/indexer/incremental-plan.d.ts.map +1 -1
- package/dist/indexer/incremental-plan.js +203 -1
- package/dist/indexer/incremental-plan.js.map +1 -1
- package/dist/indexer/locals-and-exports.d.ts +3 -2
- package/dist/indexer/locals-and-exports.d.ts.map +1 -1
- package/dist/indexer/locals-and-exports.js +659 -78
- package/dist/indexer/locals-and-exports.js.map +1 -1
- package/dist/indexer/member-selection.d.ts +46 -0
- package/dist/indexer/member-selection.d.ts.map +1 -0
- package/dist/indexer/member-selection.js +169 -0
- package/dist/indexer/member-selection.js.map +1 -0
- package/dist/indexer/name-lookup-policies/c-family.d.ts +7 -0
- package/dist/indexer/name-lookup-policies/c-family.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/c-family.js +137 -0
- package/dist/indexer/name-lookup-policies/c-family.js.map +1 -0
- package/dist/indexer/name-lookup-policies/csharp-using-static.d.ts +11 -0
- package/dist/indexer/name-lookup-policies/csharp-using-static.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/csharp-using-static.js +136 -0
- package/dist/indexer/name-lookup-policies/csharp-using-static.js.map +1 -0
- package/dist/indexer/name-lookup-policies/implicit-self.d.ts +10 -0
- package/dist/indexer/name-lookup-policies/implicit-self.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/implicit-self.js +119 -0
- package/dist/indexer/name-lookup-policies/implicit-self.js.map +1 -0
- package/dist/indexer/name-lookup-policies/index.d.ts +3 -0
- package/dist/indexer/name-lookup-policies/index.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/index.js +132 -0
- package/dist/indexer/name-lookup-policies/index.js.map +1 -0
- package/dist/indexer/name-lookup-policies/php.d.ts +3 -0
- package/dist/indexer/name-lookup-policies/php.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/php.js +82 -0
- package/dist/indexer/name-lookup-policies/php.js.map +1 -0
- package/dist/indexer/name-resolution-types.d.ts +101 -0
- package/dist/indexer/name-resolution-types.d.ts.map +1 -0
- package/dist/indexer/name-resolution-types.js +2 -0
- package/dist/indexer/name-resolution-types.js.map +1 -0
- package/dist/indexer/name-resolution.d.ts +57 -0
- package/dist/indexer/name-resolution.d.ts.map +1 -0
- package/dist/indexer/name-resolution.js +204 -0
- package/dist/indexer/name-resolution.js.map +1 -0
- package/dist/indexer/navigation-cpp.d.ts +58 -0
- package/dist/indexer/navigation-cpp.d.ts.map +1 -0
- package/dist/indexer/navigation-cpp.js +935 -0
- package/dist/indexer/navigation-cpp.js.map +1 -0
- package/dist/indexer/navigation-goto.d.ts +115 -3
- package/dist/indexer/navigation-goto.d.ts.map +1 -1
- package/dist/indexer/navigation-goto.js +2469 -190
- package/dist/indexer/navigation-goto.js.map +1 -1
- package/dist/indexer/navigation-local.d.ts +21 -2
- package/dist/indexer/navigation-local.d.ts.map +1 -1
- package/dist/indexer/navigation-local.js +520 -63
- package/dist/indexer/navigation-local.js.map +1 -1
- package/dist/indexer/navigation-php.d.ts +66 -0
- package/dist/indexer/navigation-php.d.ts.map +1 -1
- package/dist/indexer/navigation-php.js +287 -4
- package/dist/indexer/navigation-php.js.map +1 -1
- package/dist/indexer/navigation-provenance.d.ts +1 -1
- package/dist/indexer/navigation-provenance.d.ts.map +1 -1
- package/dist/indexer/navigation-provenance.js +4 -13
- package/dist/indexer/navigation-provenance.js.map +1 -1
- package/dist/indexer/navigation-references.d.ts +73 -6
- package/dist/indexer/navigation-references.d.ts.map +1 -1
- package/dist/indexer/navigation-references.js +661 -67
- package/dist/indexer/navigation-references.js.map +1 -1
- package/dist/indexer/navigation-resolve.d.ts +46 -2
- package/dist/indexer/navigation-resolve.d.ts.map +1 -1
- package/dist/indexer/navigation-resolve.js +599 -193
- package/dist/indexer/navigation-resolve.js.map +1 -1
- package/dist/indexer/navigation.d.ts +29 -2
- package/dist/indexer/navigation.d.ts.map +1 -1
- package/dist/indexer/navigation.js +1092 -153
- package/dist/indexer/navigation.js.map +1 -1
- package/dist/indexer/parse-context.d.ts +2 -3
- package/dist/indexer/parse-context.d.ts.map +1 -1
- package/dist/indexer/parse-context.js +8 -21
- package/dist/indexer/parse-context.js.map +1 -1
- package/dist/indexer/php-namespace-symbols.d.ts +66 -0
- package/dist/indexer/php-namespace-symbols.d.ts.map +1 -0
- package/dist/indexer/php-namespace-symbols.js +342 -0
- package/dist/indexer/php-namespace-symbols.js.map +1 -0
- package/dist/indexer/reference-candidates.d.ts.map +1 -1
- package/dist/indexer/reference-candidates.js +13 -7
- package/dist/indexer/reference-candidates.js.map +1 -1
- package/dist/indexer/reference-context.d.ts +2 -0
- package/dist/indexer/reference-context.d.ts.map +1 -1
- package/dist/indexer/reference-context.js +4 -0
- package/dist/indexer/reference-context.js.map +1 -1
- package/dist/indexer/scope-nodes.d.ts +92 -13
- package/dist/indexer/scope-nodes.d.ts.map +1 -1
- package/dist/indexer/scope-nodes.js +212 -20
- package/dist/indexer/scope-nodes.js.map +1 -1
- package/dist/indexer/scope-types.d.ts +29 -1
- package/dist/indexer/scope-types.d.ts.map +1 -1
- package/dist/indexer/scope.d.ts +2 -3
- package/dist/indexer/scope.d.ts.map +1 -1
- package/dist/indexer/scope.js +968 -47
- package/dist/indexer/scope.js.map +1 -1
- package/dist/indexer/shared-owner-identity.d.ts +53 -0
- package/dist/indexer/shared-owner-identity.d.ts.map +1 -0
- package/dist/indexer/shared-owner-identity.js +460 -0
- package/dist/indexer/shared-owner-identity.js.map +1 -0
- package/dist/indexer/shared.d.ts +1 -1
- package/dist/indexer/shared.d.ts.map +1 -1
- package/dist/indexer/shared.js +1 -1
- package/dist/indexer/shared.js.map +1 -1
- package/dist/indexer/star-import-precedence.d.ts +113 -0
- package/dist/indexer/star-import-precedence.d.ts.map +1 -0
- package/dist/indexer/star-import-precedence.js +402 -0
- package/dist/indexer/star-import-precedence.js.map +1 -0
- package/dist/indexer/symbols.d.ts +3 -1
- package/dist/indexer/symbols.d.ts.map +1 -1
- package/dist/indexer/symbols.js +58 -18
- package/dist/indexer/symbols.js.map +1 -1
- package/dist/indexer/ts-callables.d.ts +42 -0
- package/dist/indexer/ts-callables.d.ts.map +1 -0
- package/dist/indexer/ts-callables.js +233 -0
- package/dist/indexer/ts-callables.js.map +1 -0
- package/dist/indexer/types.d.ts +41 -26
- package/dist/indexer/types.d.ts.map +1 -1
- package/dist/indexer/unused-exports.d.ts +13 -0
- package/dist/indexer/unused-exports.d.ts.map +1 -0
- package/dist/indexer/unused-exports.js +159 -0
- package/dist/indexer/unused-exports.js.map +1 -0
- package/dist/indexer/workspace-symbols.d.ts.map +1 -1
- package/dist/indexer/workspace-symbols.js +3 -2
- package/dist/indexer/workspace-symbols.js.map +1 -1
- package/dist/indexer.d.ts +3 -8
- package/dist/indexer.d.ts.map +1 -1
- package/dist/indexer.js +1 -1
- package/dist/indexer.js.map +1 -1
- package/dist/languages/callable-arity.d.ts +223 -0
- package/dist/languages/callable-arity.d.ts.map +1 -0
- package/dist/languages/callable-arity.js +1199 -0
- package/dist/languages/callable-arity.js.map +1 -0
- package/dist/languages/definitions/c-family.d.ts.map +1 -1
- package/dist/languages/definitions/c-family.js +30 -1
- package/dist/languages/definitions/c-family.js.map +1 -1
- package/dist/languages/definitions/c.d.ts +4 -0
- package/dist/languages/definitions/c.d.ts.map +1 -1
- package/dist/languages/definitions/c.js +19 -0
- package/dist/languages/definitions/c.js.map +1 -1
- package/dist/languages/definitions/cpp.d.ts.map +1 -1
- package/dist/languages/definitions/cpp.js +12 -0
- package/dist/languages/definitions/cpp.js.map +1 -1
- package/dist/languages/definitions/csharp.d.ts.map +1 -1
- package/dist/languages/definitions/csharp.js +2 -8
- package/dist/languages/definitions/csharp.js.map +1 -1
- package/dist/languages/definitions/go.d.ts.map +1 -1
- package/dist/languages/definitions/go.js +3 -0
- package/dist/languages/definitions/go.js.map +1 -1
- package/dist/languages/definitions/javascript.d.ts.map +1 -1
- package/dist/languages/definitions/javascript.js +10 -1
- package/dist/languages/definitions/javascript.js.map +1 -1
- package/dist/languages/definitions/js-family.d.ts +1 -1
- package/dist/languages/definitions/js-family.d.ts.map +1 -1
- package/dist/languages/definitions/js-family.js +7 -1
- package/dist/languages/definitions/js-family.js.map +1 -1
- package/dist/languages/definitions/php.d.ts.map +1 -1
- package/dist/languages/definitions/php.js +5 -1
- package/dist/languages/definitions/php.js.map +1 -1
- package/dist/languages/definitions/typescript.d.ts.map +1 -1
- package/dist/languages/definitions/typescript.js +8 -1
- package/dist/languages/definitions/typescript.js.map +1 -1
- package/dist/languages/definitions/zig.d.ts.map +1 -1
- package/dist/languages/definitions/zig.js +8 -0
- package/dist/languages/definitions/zig.js.map +1 -1
- package/dist/lifecycle/manifest.d.ts.map +1 -1
- package/dist/lifecycle/manifest.js +0 -1
- package/dist/lifecycle/manifest.js.map +1 -1
- package/dist/mcp/handlers.js +14 -7
- package/dist/mcp/handlers.js.map +1 -1
- package/dist/native/byte-index.d.ts +6 -0
- package/dist/native/byte-index.d.ts.map +1 -1
- package/dist/native/byte-index.js +11 -6
- package/dist/native/byte-index.js.map +1 -1
- package/dist/native/contracts.d.ts +2 -3
- package/dist/native/contracts.d.ts.map +1 -1
- package/dist/native/execution.d.ts +9 -9
- package/dist/native/execution.d.ts.map +1 -1
- package/dist/native/execution.js +37 -77
- package/dist/native/execution.js.map +1 -1
- package/dist/native/js-bridge.d.ts +2 -15
- package/dist/native/js-bridge.d.ts.map +1 -1
- package/dist/native/js-bridge.js +2 -15
- package/dist/native/js-bridge.js.map +1 -1
- package/dist/native/query-results.js +2 -2
- package/dist/native/query-results.js.map +1 -1
- package/dist/native/runtime.d.ts +12 -12
- package/dist/native/runtime.d.ts.map +1 -1
- package/dist/native/runtime.js +24 -69
- package/dist/native/runtime.js.map +1 -1
- package/dist/native/tree-sitter-native.d.ts +3 -3
- package/dist/native/tree-sitter-native.d.ts.map +1 -1
- package/dist/native/tree-sitter-native.js +2 -2
- package/dist/native/tree-sitter-native.js.map +1 -1
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +0 -4
- package/dist/presets.js.map +1 -1
- package/dist/review/candidates.d.ts.map +1 -1
- package/dist/review/candidates.js +1 -1
- package/dist/review/candidates.js.map +1 -1
- package/dist/review/deleted.d.ts +3 -3
- package/dist/review/deleted.d.ts.map +1 -1
- package/dist/review/deleted.js +82 -32
- package/dist/review/deleted.js.map +1 -1
- package/dist/review/report.d.ts +1 -0
- package/dist/review/report.d.ts.map +1 -1
- package/dist/review/report.js +1 -1
- package/dist/review/report.js.map +1 -1
- package/dist/review.d.ts.map +1 -1
- package/dist/review.js +3 -20
- package/dist/review.js.map +1 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +0 -5
- package/dist/session.js.map +1 -1
- package/dist/sql/navigation.d.ts.map +1 -1
- package/dist/sql/navigation.js +2 -1
- package/dist/sql/navigation.js.map +1 -1
- package/dist/sql/source-graph.d.ts.map +1 -1
- package/dist/sql/source-graph.js +2 -2
- package/dist/sql/source-graph.js.map +1 -1
- package/dist/sqlite/schema.d.ts +1 -1
- package/dist/sqlite/schema.d.ts.map +1 -1
- package/dist/sqlite/schema.js +8 -2
- package/dist/sqlite/schema.js.map +1 -1
- package/dist/sqlite/write.js +2 -2
- package/dist/sqlite/write.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/util/bloom-filter.d.ts +8 -1
- package/dist/util/bloom-filter.d.ts.map +1 -1
- package/dist/util/bloom-filter.js +15 -2
- package/dist/util/bloom-filter.js.map +1 -1
- package/dist/util/glob.d.ts +32 -0
- package/dist/util/glob.d.ts.map +1 -0
- package/dist/util/glob.js +137 -0
- package/dist/util/glob.js.map +1 -0
- package/dist/util/graph-edges.d.ts +19 -1
- package/dist/util/graph-edges.d.ts.map +1 -1
- package/dist/util/graph-edges.js +30 -4
- package/dist/util/graph-edges.js.map +1 -1
- package/dist/util/identifiers.d.ts +15 -0
- package/dist/util/identifiers.d.ts.map +1 -1
- package/dist/util/identifiers.js +35 -0
- package/dist/util/identifiers.js.map +1 -1
- package/dist/util/member-access-tables.d.ts +61 -4
- package/dist/util/member-access-tables.d.ts.map +1 -1
- package/dist/util/member-access-tables.js +139 -19
- package/dist/util/member-access-tables.js.map +1 -1
- package/dist/util/member-access.d.ts +17 -0
- package/dist/util/member-access.d.ts.map +1 -1
- package/dist/util/member-access.js +98 -3
- package/dist/util/member-access.js.map +1 -1
- package/dist/util/project-files.d.ts +2 -10
- package/dist/util/project-files.d.ts.map +1 -1
- package/dist/util/project-files.js +29 -51
- package/dist/util/project-files.js.map +1 -1
- package/dist/util/python-type-checking.d.ts +18 -0
- package/dist/util/python-type-checking.d.ts.map +1 -0
- package/dist/util/python-type-checking.js +160 -0
- package/dist/util/python-type-checking.js.map +1 -0
- package/dist/util/resolution/cargo-targets.d.ts +11 -0
- package/dist/util/resolution/cargo-targets.d.ts.map +1 -1
- package/dist/util/resolution/cargo-targets.js +174 -13
- package/dist/util/resolution/cargo-targets.js.map +1 -1
- package/dist/util/resolution/csharp.d.ts +33 -1
- package/dist/util/resolution/csharp.d.ts.map +1 -1
- package/dist/util/resolution/csharp.js +145 -30
- package/dist/util/resolution/csharp.js.map +1 -1
- package/dist/util/resolution/jvm.d.ts +7 -3
- package/dist/util/resolution/jvm.d.ts.map +1 -1
- package/dist/util/resolution/jvm.js +56 -38
- package/dist/util/resolution/jvm.js.map +1 -1
- package/dist/util/resolution/php.d.ts.map +1 -1
- package/dist/util/resolution/php.js +35 -8
- package/dist/util/resolution/php.js.map +1 -1
- package/dist/util/resolution/python.d.ts +9 -0
- package/dist/util/resolution/python.d.ts.map +1 -1
- package/dist/util/resolution/python.js +46 -0
- package/dist/util/resolution/python.js.map +1 -1
- package/dist/util/resolution/rust.d.ts +0 -1
- package/dist/util/resolution/rust.d.ts.map +1 -1
- package/dist/util/resolution/rust.js +95 -35
- package/dist/util/resolution/rust.js.map +1 -1
- package/dist/util/resolution/specifier-targets.d.ts +44 -0
- package/dist/util/resolution/specifier-targets.d.ts.map +1 -0
- package/dist/util/resolution/specifier-targets.js +152 -0
- package/dist/util/resolution/specifier-targets.js.map +1 -0
- package/dist/util/resolution-candidates.d.ts +5 -0
- package/dist/util/resolution-candidates.d.ts.map +1 -1
- package/dist/util/resolution-candidates.js +16 -3
- package/dist/util/resolution-candidates.js.map +1 -1
- package/dist/util/resolution.d.ts +2 -1
- package/dist/util/resolution.d.ts.map +1 -1
- package/dist/util/resolution.js +101 -15
- package/dist/util/resolution.js.map +1 -1
- package/dist/util/specifiers.d.ts +29 -1
- package/dist/util/specifiers.d.ts.map +1 -1
- package/dist/util/specifiers.js +56 -8
- package/dist/util/specifiers.js.map +1 -1
- package/dist/util/trivia.d.ts.map +1 -1
- package/dist/util/trivia.js +49 -30
- package/dist/util/trivia.js.map +1 -1
- package/dist/util/workspace.d.ts.map +1 -1
- package/dist/util/workspace.js +32 -4
- package/dist/util/workspace.js.map +1 -1
- package/docs/mcp.md +3 -2
- package/package.json +5 -7
- package/dist/impact/call-compatibility/providers/profiles.d.ts +0 -80
- package/dist/impact/call-compatibility/providers/profiles.d.ts.map +0 -1
- package/dist/impact/call-compatibility/providers/profiles.js +0 -164
- package/dist/impact/call-compatibility/providers/profiles.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Per-language member-access and
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* the
|
|
2
|
+
* Per-language member-access, receiver, and ancestry tables for `./member-access.ts`, keyword
|
|
3
|
+
* navigation, and the detailed graph passes. Rows are keyed by language id, following the
|
|
4
|
+
* trivia-table precedent in `./trivia-tables.ts`: walkers keep the algorithms; this table keeps
|
|
5
|
+
* the per-language node types, extraction shapes, receiver keywords, and ancestry forms.
|
|
6
6
|
*
|
|
7
7
|
* Every registered language has a row. A document, style, or data format row carries only
|
|
8
8
|
* `omittedReason`; a source-language row declares each capability it has and names a one-line
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
export type ReceiverKeywords = {
|
|
15
15
|
/** Keywords naming the type that declares the calling member. */
|
|
16
16
|
own: readonly string[];
|
|
17
|
+
/** Own-type keywords that name an instance rather than the type itself. */
|
|
18
|
+
instanceOwn: readonly string[];
|
|
17
19
|
/** Keywords naming a supertype of the declaring type. */
|
|
18
20
|
supertype: readonly string[];
|
|
19
21
|
};
|
|
@@ -41,6 +43,35 @@ export type MemberAccessShape = {
|
|
|
41
43
|
navigation: true;
|
|
42
44
|
};
|
|
43
45
|
};
|
|
46
|
+
export type ReceiverAncestryRelation = "extends" | "implements" | "trait" | "mixin";
|
|
47
|
+
export type ReceiverAncestorClause = {
|
|
48
|
+
/** Syntax node that contains one or more declared ancestors. */
|
|
49
|
+
nodeType: string;
|
|
50
|
+
/** Detailed-graph edge label, or superclass-first classification for mixed base lists. */
|
|
51
|
+
relation: ReceiverAncestryRelation | "superclass-first";
|
|
52
|
+
/** Descend into this field before collecting ancestors. */
|
|
53
|
+
field?: string;
|
|
54
|
+
/** Treat every matching clause separately. */
|
|
55
|
+
each?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Which ancestors a `super`/`parent`/`base` receiver may address. Own-type receivers use every
|
|
58
|
+
* declaration in the clause.
|
|
59
|
+
*/
|
|
60
|
+
supertype?: "all" | "first-child" | "first-match";
|
|
61
|
+
};
|
|
62
|
+
export type ReceiverAncestorEmbed = {
|
|
63
|
+
body: string;
|
|
64
|
+
memberList?: string;
|
|
65
|
+
member: string;
|
|
66
|
+
typeField?: string;
|
|
67
|
+
nameless?: boolean;
|
|
68
|
+
};
|
|
69
|
+
export type ReceiverAncestry = {
|
|
70
|
+
clauses: readonly ReceiverAncestorClause[];
|
|
71
|
+
embeds?: readonly ReceiverAncestorEmbed[];
|
|
72
|
+
/** Call names that add mixins to the declaring type, such as Ruby `include` and `prepend`. */
|
|
73
|
+
mixinCalls?: readonly string[];
|
|
74
|
+
};
|
|
44
75
|
export type MemberAccessRow = {
|
|
45
76
|
/** Why the language has no member-access capability at all; only document, style, and data formats set it. */
|
|
46
77
|
omittedReason?: string;
|
|
@@ -58,8 +89,25 @@ export type MemberAccessRow = {
|
|
|
58
89
|
navigationFallbackLastChild?: true;
|
|
59
90
|
/** Identifiers that name the type declaring the calling member. */
|
|
60
91
|
receiverKeywords?: ReceiverKeywords;
|
|
92
|
+
/**
|
|
93
|
+
* A receiver keyword may also be spelled as a zero-argument call to that keyword identifier
|
|
94
|
+
* (Python's `super()`, which has no bare-name form unlike `self`/`cls`). Absent for every
|
|
95
|
+
* language whose receiver keywords are always bare names.
|
|
96
|
+
*/
|
|
97
|
+
receiverKeywordCallShape?: true;
|
|
61
98
|
/** Why the language declares no receiver keywords. */
|
|
62
99
|
receiverKeywordsOmittedReason?: string;
|
|
100
|
+
/** Language syntax that declares ancestors visible to own-type and supertype receivers. */
|
|
101
|
+
receiverAncestry?: ReceiverAncestry;
|
|
102
|
+
/**
|
|
103
|
+
* Member syntax can name a free function (`!isMember`): Kotlin extensions
|
|
104
|
+
* (`fun Widget.describe()`) and Go methods, which are indexed as free functions.
|
|
105
|
+
* Swift extensions, Rust methods, and C# extension methods are `isMember`, so they
|
|
106
|
+
* stay on the member path and do not set this flag.
|
|
107
|
+
*/
|
|
108
|
+
memberCallNamesFreeFunction?: true;
|
|
109
|
+
/** Why a member call cannot name a free function in this language. */
|
|
110
|
+
memberCallNamesFreeFunctionOmittedReason?: string;
|
|
63
111
|
};
|
|
64
112
|
export declare const MEMBER_ACCESS_ROWS: Record<string, MemberAccessRow>;
|
|
65
113
|
/** Every language that declares receiver keywords, guarded by the registry-consistency test. */
|
|
@@ -68,5 +116,14 @@ export declare const receiverKeywordLanguageIds: readonly string[];
|
|
|
68
116
|
export declare function supportsReceiverCallEdges(languageId: string): boolean;
|
|
69
117
|
/** Languages where goto and references require proven receivers and do not fall back to a bare name. */
|
|
70
118
|
export declare function supportsReceiverMemberNavigation(languageId: string): boolean;
|
|
119
|
+
export declare function keywordReceiverKind(languageId: string, receiverName: string): "own" | "supertype" | null;
|
|
120
|
+
/**
|
|
121
|
+
* Instance-own keywords (`this`, `$this`) require instance members.
|
|
122
|
+
* Other own keywords name the declaring type and may still bind instance members
|
|
123
|
+
* (PHP `self::` / `static::` late static binding), so they do not force a static-only filter.
|
|
124
|
+
*/
|
|
125
|
+
export declare function ownReceiverMemberScope(languageId: string, receiverName: string): "instance" | "any" | null;
|
|
71
126
|
export declare function isKeywordReceiver(languageId: string, receiverName: string): boolean;
|
|
127
|
+
/** Whether `receiver.name()` can refer to a free function rather than only a member. */
|
|
128
|
+
export declare function memberSyntaxNamesFreeFunction(languageId: string): boolean;
|
|
72
129
|
//# sourceMappingURL=member-access-tables.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-access-tables.d.ts","sourceRoot":"","sources":["../../src/util/member-access-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,0FAA0F;AAC1F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iEAAiE;IACjE,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,yDAAyD;IACzD,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,mGAAmG;IACnG,QAAQ,EAAE,iBAAiB,GAAG;QAAE,UAAU,EAAE,IAAI,CAAA;KAAE,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,8GAA8G;IAC9G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yGAAyG;IACzG,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yFAAyF;IACzF,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,yFAAyF;IACzF,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,sGAAsG;IACtG,kBAAkB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAClD,oGAAoG;IACpG,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,gHAAgH;IAChH,2BAA2B,CAAC,EAAE,IAAI,CAAC;IACnC,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,sDAAsD;IACtD,6BAA6B,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"member-access-tables.d.ts","sourceRoot":"","sources":["../../src/util/member-access-tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Per-language member-access and
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* the
|
|
2
|
+
* Per-language member-access, receiver, and ancestry tables for `./member-access.ts`, keyword
|
|
3
|
+
* navigation, and the detailed graph passes. Rows are keyed by language id, following the
|
|
4
|
+
* trivia-table precedent in `./trivia-tables.ts`: walkers keep the algorithms; this table keeps
|
|
5
|
+
* the per-language node types, extraction shapes, receiver keywords, and ancestry forms.
|
|
6
6
|
*
|
|
7
7
|
* Every registered language has a row. A document, style, or data format row carries only
|
|
8
8
|
* `omittedReason`; a source-language row declares each capability it has and names a one-line
|
|
@@ -21,23 +21,39 @@ const CPP_QUALIFIED_ACCESS_SHAPE = {
|
|
|
21
21
|
object: { field: "scope", fallbackIndex: 0 },
|
|
22
22
|
property: { field: "name", fallbackIndex: 2 },
|
|
23
23
|
};
|
|
24
|
-
const THIS_SUPER_RECEIVERS = { own: ["this"], supertype: ["super"] };
|
|
25
|
-
const SELF_RECEIVERS = { own: ["self"], supertype: ["super"] };
|
|
24
|
+
const THIS_SUPER_RECEIVERS = { own: ["this"], instanceOwn: ["this"], supertype: ["super"] };
|
|
25
|
+
const SELF_RECEIVERS = { own: ["self"], instanceOwn: ["self"], supertype: ["super"] };
|
|
26
26
|
export const MEMBER_ACCESS_ROWS = {
|
|
27
27
|
adoc: { omittedReason: "AsciiDoc document format; embedded code blocks parse as their own language." },
|
|
28
28
|
astro: { omittedReason: "Astro document format; scripts parse as js/ts and templates as html." },
|
|
29
29
|
c: {
|
|
30
30
|
memberAccessShapes: [C_FIELD_ACCESS_SHAPE],
|
|
31
31
|
receiverKeywordsOmittedReason: "C has no receiver keyword; member access always names an explicit object or pointer.",
|
|
32
|
+
memberCallNamesFreeFunctionOmittedReason: "A member expression names a field of an object, not a free function.",
|
|
32
33
|
},
|
|
33
34
|
cpp: {
|
|
34
35
|
memberAccessShapes: [C_FIELD_ACCESS_SHAPE, CPP_QUALIFIED_ACCESS_SHAPE],
|
|
35
|
-
receiverKeywords: { own: ["this"], supertype: [] },
|
|
36
|
+
receiverKeywords: { own: ["this"], instanceOwn: ["this"], supertype: [] },
|
|
37
|
+
receiverAncestry: { clauses: [{ nodeType: "base_class_clause", relation: "extends" }] },
|
|
38
|
+
memberCallNamesFreeFunctionOmittedReason: "A member call on an object or parameter cannot name a namespace free function.",
|
|
36
39
|
},
|
|
37
40
|
css: { omittedReason: "Style language; no member-access concept." },
|
|
38
41
|
csharp: {
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
extraTraversalTypes: ["qualified_name", "alias_qualified_name"],
|
|
43
|
+
extraMemberAccessTypes: ["alias_qualified_name"],
|
|
44
|
+
memberAccessShapes: [
|
|
45
|
+
{
|
|
46
|
+
nodeTypes: ["alias_qualified_name"],
|
|
47
|
+
object: { field: "alias", fallbackIndex: 0 },
|
|
48
|
+
property: { field: "name", fallbackIndex: 2 },
|
|
49
|
+
},
|
|
50
|
+
{ object: { index: 0 }, property: { index: 2 } },
|
|
51
|
+
],
|
|
52
|
+
receiverKeywords: { own: ["this"], instanceOwn: ["this"], supertype: ["base"] },
|
|
53
|
+
receiverAncestry: {
|
|
54
|
+
clauses: [{ nodeType: "base_list", relation: "superclass-first", supertype: "first-child" }],
|
|
55
|
+
},
|
|
56
|
+
memberCallNamesFreeFunctionOmittedReason: "Extension methods are members; a free function is not called with member syntax.",
|
|
41
57
|
},
|
|
42
58
|
go: {
|
|
43
59
|
extraTraversalTypes: ["qualified_type"],
|
|
@@ -45,11 +61,26 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
45
61
|
memberAccessShapes: [{ nodeTypes: ["qualified_type"], object: { namedIndex: 0 }, property: { namedIndex: 1 } }],
|
|
46
62
|
// Go has no receiver keyword: a method call's receiver is an ordinary value. The row still
|
|
47
63
|
// exists so go receivers must be proven rather than falling back to a bare name.
|
|
48
|
-
receiverKeywords: { own: [], supertype: [] },
|
|
64
|
+
receiverKeywords: { own: [], instanceOwn: [], supertype: [] },
|
|
65
|
+
receiverAncestry: {
|
|
66
|
+
clauses: [],
|
|
67
|
+
embeds: [
|
|
68
|
+
{ body: "interface_type", member: "type_elem" },
|
|
69
|
+
{
|
|
70
|
+
body: "struct_type",
|
|
71
|
+
memberList: "field_declaration_list",
|
|
72
|
+
member: "field_declaration",
|
|
73
|
+
typeField: "type",
|
|
74
|
+
nameless: true,
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
memberCallNamesFreeFunction: true,
|
|
49
79
|
},
|
|
50
80
|
hbs: { omittedReason: "Handlebars document format; embedded scripts parse as their own language." },
|
|
51
81
|
html: { omittedReason: "Document format; embedded scripts parse as their own language." },
|
|
52
82
|
java: {
|
|
83
|
+
extraTraversalTypes: ["field_access", "scoped_identifier", "scoped_type_identifier"],
|
|
53
84
|
memberAccessShapes: [
|
|
54
85
|
{
|
|
55
86
|
nodeTypes: ["method_invocation"],
|
|
@@ -63,10 +94,19 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
63
94
|
},
|
|
64
95
|
],
|
|
65
96
|
receiverKeywords: THIS_SUPER_RECEIVERS,
|
|
97
|
+
receiverAncestry: {
|
|
98
|
+
clauses: [
|
|
99
|
+
{ nodeType: "superclass", relation: "extends", supertype: "all" },
|
|
100
|
+
{ nodeType: "super_interfaces", relation: "implements" },
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
memberCallNamesFreeFunctionOmittedReason: "A method call names a member of the receiver type, not a free function.",
|
|
66
104
|
},
|
|
67
105
|
js: {
|
|
68
106
|
memberAccessOmittedReason: "The shared generic default already reads member_expression's object and property fields.",
|
|
69
107
|
receiverKeywords: THIS_SUPER_RECEIVERS,
|
|
108
|
+
receiverAncestry: { clauses: [{ nodeType: "class_heritage", relation: "extends", supertype: "all" }] },
|
|
109
|
+
memberCallNamesFreeFunctionOmittedReason: "Member syntax names an object property; a free function is not called that way.",
|
|
70
110
|
},
|
|
71
111
|
kotlin: {
|
|
72
112
|
memberAccessShapes: [
|
|
@@ -74,12 +114,21 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
74
114
|
],
|
|
75
115
|
navigationFallbackLastChild: true,
|
|
76
116
|
receiverKeywords: THIS_SUPER_RECEIVERS,
|
|
117
|
+
receiverAncestry: {
|
|
118
|
+
clauses: [{ nodeType: "delegation_specifiers", relation: "superclass-first", supertype: "first-child" }],
|
|
119
|
+
},
|
|
120
|
+
memberCallNamesFreeFunction: true,
|
|
77
121
|
},
|
|
78
122
|
less: { omittedReason: "Style language; no member-access concept." },
|
|
79
123
|
markdown: { omittedReason: "Document format; fenced code blocks parse as their own language." },
|
|
80
124
|
mdx: { omittedReason: "MDX document format; scripts parse as js/ts and templates as html." },
|
|
81
125
|
php: {
|
|
82
|
-
extraMemberAccessTypes: [
|
|
126
|
+
extraMemberAccessTypes: [
|
|
127
|
+
"member_call_expression",
|
|
128
|
+
"nullsafe_member_call_expression",
|
|
129
|
+
"scoped_call_expression",
|
|
130
|
+
"class_constant_access_expression",
|
|
131
|
+
],
|
|
83
132
|
memberAccessShapes: [
|
|
84
133
|
{
|
|
85
134
|
nodeTypes: ["member_call_expression", "nullsafe_member_call_expression"],
|
|
@@ -91,15 +140,31 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
91
140
|
object: { field: "scope", fallbackIndex: 0 },
|
|
92
141
|
property: { field: "name", fallbackIndex: 2 },
|
|
93
142
|
},
|
|
143
|
+
{
|
|
144
|
+
nodeTypes: ["class_constant_access_expression"],
|
|
145
|
+
object: { namedIndex: 0 },
|
|
146
|
+
property: { namedIndex: 1 },
|
|
147
|
+
},
|
|
94
148
|
],
|
|
95
|
-
receiverKeywords: { own: ["$this", "self", "static"], supertype: ["parent"] },
|
|
149
|
+
receiverKeywords: { own: ["$this", "self", "static"], instanceOwn: ["$this"], supertype: ["parent"] },
|
|
150
|
+
receiverAncestry: {
|
|
151
|
+
clauses: [
|
|
152
|
+
{ nodeType: "base_clause", relation: "extends", supertype: "all" },
|
|
153
|
+
{ nodeType: "class_interface_clause", relation: "implements" },
|
|
154
|
+
{ nodeType: "use_declaration", relation: "trait", each: true },
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
memberCallNamesFreeFunctionOmittedReason: "A member or scoped call names a class member, not a free function.",
|
|
96
158
|
},
|
|
97
159
|
python: {
|
|
98
160
|
memberExpressionType: "attribute",
|
|
99
161
|
memberAccessShapes: [
|
|
100
162
|
{ object: { field: "object", fallbackIndex: 0 }, property: { field: "attribute", fallbackIndex: 2 } },
|
|
101
163
|
],
|
|
102
|
-
receiverKeywords: { own: ["self", "cls"], supertype: [] },
|
|
164
|
+
receiverKeywords: { own: ["self", "cls"], instanceOwn: ["self"], supertype: ["super"] },
|
|
165
|
+
receiverKeywordCallShape: true,
|
|
166
|
+
receiverAncestry: { clauses: [{ nodeType: "argument_list", relation: "extends" }] },
|
|
167
|
+
memberCallNamesFreeFunctionOmittedReason: "Attribute access names a member; a free function is not called that way.",
|
|
103
168
|
},
|
|
104
169
|
rst: { omittedReason: "reStructuredText document format; embedded code blocks parse as their own language." },
|
|
105
170
|
ruby: {
|
|
@@ -113,9 +178,15 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
113
178
|
// Ruby models every other member access as a `call` node with receiver and method fields.
|
|
114
179
|
{ object: { field: "receiver", fallbackIndex: 0 }, property: { field: "method", fallbackIndex: 2 } },
|
|
115
180
|
],
|
|
116
|
-
receiverKeywords: { own: ["self"], supertype: [] },
|
|
181
|
+
receiverKeywords: { own: ["self"], instanceOwn: ["self"], supertype: [] },
|
|
182
|
+
receiverAncestry: {
|
|
183
|
+
clauses: [{ nodeType: "superclass", relation: "extends", supertype: "all" }],
|
|
184
|
+
mixinCalls: ["include", "extend", "prepend"],
|
|
185
|
+
},
|
|
186
|
+
memberCallNamesFreeFunctionOmittedReason: "A call with a receiver names a method, not a free function.",
|
|
117
187
|
},
|
|
118
188
|
rust: {
|
|
189
|
+
extraTraversalTypes: ["scoped_identifier"],
|
|
119
190
|
memberAccessShapes: [
|
|
120
191
|
{
|
|
121
192
|
nodeTypes: ["scoped_identifier"],
|
|
@@ -123,7 +194,8 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
123
194
|
property: { field: "name", fallbackIndex: 2 },
|
|
124
195
|
},
|
|
125
196
|
],
|
|
126
|
-
receiverKeywords: { own: ["self", "Self"], supertype: [] },
|
|
197
|
+
receiverKeywords: { own: ["self", "Self"], instanceOwn: ["self"], supertype: [] },
|
|
198
|
+
memberCallNamesFreeFunctionOmittedReason: "Methods are members; a free function is not invoked with member syntax.",
|
|
127
199
|
},
|
|
128
200
|
scss: { omittedReason: "Style language; no member-access concept." },
|
|
129
201
|
svelte: { omittedReason: "Svelte component format; script blocks parse as js/ts and templates as html." },
|
|
@@ -133,19 +205,45 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
133
205
|
{ nodeTypes: ["navigation_expression"], object: { namedIndex: 0 }, property: { navigation: true } },
|
|
134
206
|
],
|
|
135
207
|
receiverKeywords: SELF_RECEIVERS,
|
|
208
|
+
receiverAncestry: {
|
|
209
|
+
clauses: [
|
|
210
|
+
{
|
|
211
|
+
nodeType: "inheritance_specifier",
|
|
212
|
+
relation: "superclass-first",
|
|
213
|
+
each: true,
|
|
214
|
+
supertype: "first-match",
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
},
|
|
218
|
+
memberCallNamesFreeFunctionOmittedReason: "Extension methods are members; a free function is not called with member syntax.",
|
|
136
219
|
},
|
|
137
220
|
ts: {
|
|
138
221
|
memberAccessOmittedReason: "The shared generic default already reads member_expression's object and property fields.",
|
|
139
222
|
receiverKeywords: THIS_SUPER_RECEIVERS,
|
|
223
|
+
receiverAncestry: {
|
|
224
|
+
clauses: [
|
|
225
|
+
{ nodeType: "extends_clause", relation: "extends", field: "value", supertype: "all" },
|
|
226
|
+
{ nodeType: "implements_clause", relation: "implements" },
|
|
227
|
+
],
|
|
228
|
+
},
|
|
229
|
+
memberCallNamesFreeFunctionOmittedReason: "Member syntax names an object property; a free function is not called that way.",
|
|
140
230
|
},
|
|
141
231
|
tsx: {
|
|
142
232
|
memberAccessOmittedReason: "The shared generic default already reads member_expression's object and property fields.",
|
|
143
233
|
receiverKeywords: THIS_SUPER_RECEIVERS,
|
|
234
|
+
receiverAncestry: {
|
|
235
|
+
clauses: [
|
|
236
|
+
{ nodeType: "extends_clause", relation: "extends", field: "value", supertype: "all" },
|
|
237
|
+
{ nodeType: "implements_clause", relation: "implements" },
|
|
238
|
+
],
|
|
239
|
+
},
|
|
240
|
+
memberCallNamesFreeFunctionOmittedReason: "Member syntax names an object property; a free function is not called that way.",
|
|
144
241
|
},
|
|
145
242
|
vue: { omittedReason: "Vue component format; script blocks parse as js/ts and templates as html." },
|
|
146
243
|
zig: {
|
|
147
244
|
memberAccessOmittedReason: "No per-language extraction today; the shared generic default is zig's behavior.",
|
|
148
|
-
receiverKeywords: { own: ["self"], supertype: [] },
|
|
245
|
+
receiverKeywords: { own: ["self"], instanceOwn: ["self"], supertype: [] },
|
|
246
|
+
memberCallNamesFreeFunctionOmittedReason: "A member call names a container member, not a free function.",
|
|
149
247
|
},
|
|
150
248
|
};
|
|
151
249
|
/** Every language that declares receiver keywords, guarded by the registry-consistency test. */
|
|
@@ -158,10 +256,32 @@ export function supportsReceiverCallEdges(languageId) {
|
|
|
158
256
|
export function supportsReceiverMemberNavigation(languageId) {
|
|
159
257
|
return MEMBER_ACCESS_ROWS[languageId]?.receiverKeywords !== undefined;
|
|
160
258
|
}
|
|
161
|
-
export function
|
|
259
|
+
export function keywordReceiverKind(languageId, receiverName) {
|
|
162
260
|
const keywords = MEMBER_ACCESS_ROWS[languageId]?.receiverKeywords;
|
|
163
261
|
if (!keywords)
|
|
164
|
-
return
|
|
165
|
-
|
|
262
|
+
return null;
|
|
263
|
+
if (keywords.own.includes(receiverName))
|
|
264
|
+
return "own";
|
|
265
|
+
if (keywords.supertype.includes(receiverName))
|
|
266
|
+
return "supertype";
|
|
267
|
+
return null;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Instance-own keywords (`this`, `$this`) require instance members.
|
|
271
|
+
* Other own keywords name the declaring type and may still bind instance members
|
|
272
|
+
* (PHP `self::` / `static::` late static binding), so they do not force a static-only filter.
|
|
273
|
+
*/
|
|
274
|
+
export function ownReceiverMemberScope(languageId, receiverName) {
|
|
275
|
+
const keywords = MEMBER_ACCESS_ROWS[languageId]?.receiverKeywords;
|
|
276
|
+
if (!keywords?.own.includes(receiverName))
|
|
277
|
+
return null;
|
|
278
|
+
return keywords.instanceOwn.includes(receiverName) ? "instance" : "any";
|
|
279
|
+
}
|
|
280
|
+
export function isKeywordReceiver(languageId, receiverName) {
|
|
281
|
+
return keywordReceiverKind(languageId, receiverName) !== null;
|
|
282
|
+
}
|
|
283
|
+
/** Whether `receiver.name()` can refer to a free function rather than only a member. */
|
|
284
|
+
export function memberSyntaxNamesFreeFunction(languageId) {
|
|
285
|
+
return !!MEMBER_ACCESS_ROWS[languageId]?.memberCallNamesFreeFunction;
|
|
166
286
|
}
|
|
167
287
|
//# sourceMappingURL=member-access-tables.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-access-tables.js","sourceRoot":"","sources":["../../src/util/member-access-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"member-access-tables.js","sourceRoot":"","sources":["../../src/util/member-access-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAoGH,oGAAoG;AACpG,MAAM,oBAAoB,GAAsB;IAC9C,SAAS,EAAE,CAAC,kBAAkB,CAAC;IAC/B,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,EAAE;IAC/C,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE;CAC/C,CAAC;AAEF,MAAM,0BAA0B,GAAsB;IACpD,SAAS,EAAE,CAAC,sBAAsB,CAAC;IACnC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE;IAC5C,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE;CAC9C,CAAC;AAEF,MAAM,oBAAoB,GAAqB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AAC9G,MAAM,cAAc,GAAqB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AAExG,MAAM,CAAC,MAAM,kBAAkB,GAAoC;IACjE,IAAI,EAAE,EAAE,aAAa,EAAE,6EAA6E,EAAE;IACtG,KAAK,EAAE,EAAE,aAAa,EAAE,sEAAsE,EAAE;IAChG,CAAC,EAAE;QACD,kBAAkB,EAAE,CAAC,oBAAoB,CAAC;QAC1C,6BAA6B,EAC3B,sFAAsF;QACxF,wCAAwC,EAAE,sEAAsE;KACjH;IACD,GAAG,EAAE;QACH,kBAAkB,EAAE,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;QACtE,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QACzE,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QACvF,wCAAwC,EACtC,gFAAgF;KACnF;IACD,GAAG,EAAE,EAAE,aAAa,EAAE,2CAA2C,EAAE;IACnE,MAAM,EAAE;QACN,mBAAmB,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;QAC/D,sBAAsB,EAAE,CAAC,sBAAsB,CAAC;QAChD,kBAAkB,EAAE;YAClB;gBACE,SAAS,EAAE,CAAC,sBAAsB,CAAC;gBACnC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC5C,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE;aAC9C;YACD,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;SACjD;QACD,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE;QAC/E,gBAAgB,EAAE;YAChB,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;SAC7F;QACD,wCAAwC,EACtC,kFAAkF;KACrF;IACD,EAAE,EAAE;QACF,mBAAmB,EAAE,CAAC,gBAAgB,CAAC;QACvC,sBAAsB,EAAE,CAAC,gBAAgB,CAAC;QAC1C,kBAAkB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/G,2FAA2F;QAC3F,iFAAiF;QACjF,gBAAgB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QAC7D,gBAAgB,EAAE;YAChB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE;gBAC/C;oBACE,IAAI,EAAE,aAAa;oBACnB,UAAU,EAAE,wBAAwB;oBACpC,MAAM,EAAE,mBAAmB;oBAC3B,SAAS,EAAE,MAAM;oBACjB,QAAQ,EAAE,IAAI;iBACf;aACF;SACF;QACD,2BAA2B,EAAE,IAAI;KAClC;IACD,GAAG,EAAE,EAAE,aAAa,EAAE,2EAA2E,EAAE;IACnG,IAAI,EAAE,EAAE,aAAa,EAAE,gEAAgE,EAAE;IACzF,IAAI,EAAE;QACJ,mBAAmB,EAAE,CAAC,cAAc,EAAE,mBAAmB,EAAE,wBAAwB,CAAC;QACpF,kBAAkB,EAAE;YAClB;gBACE,SAAS,EAAE,CAAC,mBAAmB,CAAC;gBAChC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC7C,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE;aAC9C;YACD;gBACE,SAAS,EAAE,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;gBAC1D,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC5C,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE;aAC9C;SACF;QACD,gBAAgB,EAAE,oBAAoB;QACtC,gBAAgB,EAAE;YAChB,OAAO,EAAE;gBACP,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE;gBACjE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE;aACzD;SACF;QACD,wCAAwC,EAAE,yEAAyE;KACpH;IACD,EAAE,EAAE;QACF,yBAAyB,EACvB,0FAA0F;QAC5F,gBAAgB,EAAE,oBAAoB;QACtC,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;QACtG,wCAAwC,EACtC,iFAAiF;KACpF;IACD,MAAM,EAAE;QACN,kBAAkB,EAAE;YAClB,EAAE,SAAS,EAAE,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;SACpG;QACD,2BAA2B,EAAE,IAAI;QACjC,gBAAgB,EAAE,oBAAoB;QACtC,gBAAgB,EAAE;YAChB,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,uBAAuB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;SACzG;QACD,2BAA2B,EAAE,IAAI;KAClC;IACD,IAAI,EAAE,EAAE,aAAa,EAAE,2CAA2C,EAAE;IACpE,QAAQ,EAAE,EAAE,aAAa,EAAE,kEAAkE,EAAE;IAC/F,GAAG,EAAE,EAAE,aAAa,EAAE,oEAAoE,EAAE;IAC5F,GAAG,EAAE;QACH,sBAAsB,EAAE;YACtB,wBAAwB;YACxB,iCAAiC;YACjC,wBAAwB;YACxB,kCAAkC;SACnC;QACD,kBAAkB,EAAE;YAClB;gBACE,SAAS,EAAE,CAAC,wBAAwB,EAAE,iCAAiC,CAAC;gBACxE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC7C,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE;aAC9C;YACD;gBACE,SAAS,EAAE,CAAC,wBAAwB,CAAC;gBACrC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC5C,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE;aAC9C;YACD;gBACE,SAAS,EAAE,CAAC,kCAAkC,CAAC;gBAC/C,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;gBACzB,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;aAC5B;SACF;QACD,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE;QACrG,gBAAgB,EAAE;YAChB,OAAO,EAAE;gBACP,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE;gBAClE,EAAE,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,YAAY,EAAE;gBAC9D,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;aAC/D;SACF;QACD,wCAAwC,EAAE,oEAAoE;KAC/G;IACD,MAAM,EAAE;QACN,oBAAoB,EAAE,WAAW;QACjC,kBAAkB,EAAE;YAClB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE;SACtG;QACD,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE;QACvF,wBAAwB,EAAE,IAAI;QAC9B,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QACnF,wCAAwC,EACtC,0EAA0E;KAC7E;IACD,GAAG,EAAE,EAAE,aAAa,EAAE,qFAAqF,EAAE;IAC7G,IAAI,EAAE;QACJ,oBAAoB,EAAE,MAAM;QAC5B,kBAAkB,EAAE;YAClB;gBACE,SAAS,EAAE,CAAC,kBAAkB,CAAC;gBAC/B,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC5C,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE;aAC9C;YACD,0FAA0F;YAC1F,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE;SACrG;QACD,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QACzE,gBAAgB,EAAE;YAChB,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAC5E,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;SAC7C;QACD,wCAAwC,EAAE,6DAA6D;KACxG;IACD,IAAI,EAAE;QACJ,mBAAmB,EAAE,CAAC,mBAAmB,CAAC;QAC1C,kBAAkB,EAAE;YAClB;gBACE,SAAS,EAAE,CAAC,mBAAmB,CAAC;gBAChC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC3C,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE;aAC9C;SACF;QACD,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QACjF,wCAAwC,EAAE,yEAAyE;KACpH;IACD,IAAI,EAAE,EAAE,aAAa,EAAE,2CAA2C,EAAE;IACpE,MAAM,EAAE,EAAE,aAAa,EAAE,8EAA8E,EAAE;IACzG,GAAG,EAAE,EAAE,aAAa,EAAE,0CAA0C,EAAE;IAClE,KAAK,EAAE;QACL,kBAAkB,EAAE;YAClB,EAAE,SAAS,EAAE,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;SACpG;QACD,gBAAgB,EAAE,cAAc;QAChC,gBAAgB,EAAE;YAChB,OAAO,EAAE;gBACP;oBACE,QAAQ,EAAE,uBAAuB;oBACjC,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI;oBACV,SAAS,EAAE,aAAa;iBACzB;aACF;SACF;QACD,wCAAwC,EACtC,kFAAkF;KACrF;IACD,EAAE,EAAE;QACF,yBAAyB,EACvB,0FAA0F;QAC5F,gBAAgB,EAAE,oBAAoB;QACtC,gBAAgB,EAAE;YAChB,OAAO,EAAE;gBACP,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;gBACrF,EAAE,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,YAAY,EAAE;aAC1D;SACF;QACD,wCAAwC,EACtC,iFAAiF;KACpF;IACD,GAAG,EAAE;QACH,yBAAyB,EACvB,0FAA0F;QAC5F,gBAAgB,EAAE,oBAAoB;QACtC,gBAAgB,EAAE;YAChB,OAAO,EAAE;gBACP,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;gBACrF,EAAE,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,YAAY,EAAE;aAC1D;SACF;QACD,wCAAwC,EACtC,iFAAiF;KACpF;IACD,GAAG,EAAE,EAAE,aAAa,EAAE,2EAA2E,EAAE;IACnG,GAAG,EAAE;QACH,yBAAyB,EAAE,iFAAiF;QAC5G,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QACzE,wCAAwC,EAAE,8DAA8D;KACzG;CACF,CAAC;AAEF,gGAAgG;AAChG,MAAM,CAAC,MAAM,0BAA0B,GAAsB,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CACjG,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAE,CAAC,gBAAgB,KAAK,SAAS,CAC/E,CAAC;AAEF,uFAAuF;AACvF,MAAM,UAAU,yBAAyB,CAAC,UAAkB;IAC1D,OAAO,kBAAkB,CAAC,UAAU,CAAC,EAAE,gBAAgB,KAAK,SAAS,CAAC;AACxE,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,gCAAgC,CAAC,UAAkB;IACjE,OAAO,kBAAkB,CAAC,UAAU,CAAC,EAAE,gBAAgB,KAAK,SAAS,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,YAAoB;IAC1E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAClE,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,WAAW,CAAC;IAClE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB,EAAE,YAAoB;IAC7E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAClE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,YAAoB;IACxE,OAAO,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC;AAChE,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,6BAA6B,CAAC,UAAkB;IAC9D,OAAO,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,2BAA2B,CAAC;AACvE,CAAC"}
|
|
@@ -17,6 +17,14 @@ export declare function isMemberObjectIdentifier(nodeType: string): boolean;
|
|
|
17
17
|
/** Identifier-like nodes that can name a receiver, including Ruby `@ivar`/`@@cvar`. */
|
|
18
18
|
export declare function isReceiverNameNode(sup: LanguageSupport, nodeType: string): boolean;
|
|
19
19
|
export declare function isMemberReferencePropertyIdentifier(sup: LanguageSupport, nodeType: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* The text used to classify a receiver as an own-type or supertype keyword. Ordinarily this is
|
|
22
|
+
* the receiver node's own source spelling, but a language whose row sets `receiverKeywordCallShape`
|
|
23
|
+
* may also spell a keyword receiver as a zero-argument call to that keyword - Python's `super()`,
|
|
24
|
+
* which (unlike `self`/`cls`) has no bare-name form. Only unwrap that call when its callee is
|
|
25
|
+
* not shadowed by a visible lexical binding.
|
|
26
|
+
*/
|
|
27
|
+
export declare function receiverKeywordText(sup: LanguageSupport, node: SyntaxNodeLike, source: string, hasLexicalBinding: (callee: SyntaxNodeLike) => boolean): string;
|
|
20
28
|
export declare function getNavigationExpressionProperty(sup: LanguageSupport, expr: SyntaxNodeLike): SyntaxNodeLike | null;
|
|
21
29
|
export declare function getMemberAccessParts(sup: LanguageSupport, memberNode: SyntaxNodeLike): MemberAccessParts;
|
|
22
30
|
export declare function collectMemberAccessChain(args: {
|
|
@@ -25,4 +33,13 @@ export declare function collectMemberAccessChain(args: {
|
|
|
25
33
|
chainNode: SyntaxNodeLike;
|
|
26
34
|
constStringOf?: Map<string, string>;
|
|
27
35
|
}): MemberAccessChain | null;
|
|
36
|
+
/**
|
|
37
|
+
* Whether a name inside a Rust macro token tree follows a `.` or `::` separator, ignoring comments:
|
|
38
|
+
* `counter.bump()` with a block comment after the dot is still a member call, and `m::run()` with
|
|
39
|
+
* one after the `::` is still a path call. Raw
|
|
40
|
+
* tokens cannot prove such a receiver, so both consumers stay conservative there.
|
|
41
|
+
*/
|
|
42
|
+
export declare function rustTokenTreeNameFollowsSeparator(name: SyntaxNodeLike): boolean;
|
|
43
|
+
/** Whether a Rust token tree is (nested in) the arguments of a standard expression macro. */
|
|
44
|
+
export declare function rustTokenTreeHoldsExpressions(tokenTree: SyntaxNodeLike): boolean;
|
|
28
45
|
//# sourceMappingURL=member-access.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-access.d.ts","sourceRoot":"","sources":["../../src/util/member-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAsBF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAGpE;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAE5E;AAED,wBAAgB,sCAAsC,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAErF;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,CAS5E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAMtF;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAWlE;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElF;AAED,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnG;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI,CAajH;AAgBD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,GAAG,iBAAiB,CAiBxG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,cAAc,CAAC;IAC1B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,GAAG,iBAAiB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"member-access.d.ts","sourceRoot":"","sources":["../../src/util/member-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAsBF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAGpE;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAE5E;AAED,wBAAgB,sCAAsC,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAErF;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,CAS5E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAMtF;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAWlE;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElF;AAED,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnG;AAID;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,GACrD,MAAM,CAUR;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI,CAajH;AAgBD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,GAAG,iBAAiB,CAiBxG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,cAAc,CAAC;IAC1B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,GAAG,iBAAiB,GAAG,IAAI,CAmD3B;AAID;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAU/E;AAgCD,6FAA6F;AAC7F,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAYhF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { sliceText, unquote } from "./ast.js";
|
|
2
|
-
import { MEMBER_ACCESS_ROWS } from "./member-access-tables.js";
|
|
2
|
+
import { isKeywordReceiver, MEMBER_ACCESS_ROWS } from "./member-access-tables.js";
|
|
3
3
|
/**
|
|
4
4
|
* Member-access node types accepted for every language. The list is deliberately wider than any
|
|
5
5
|
* one grammar: node types are language-scoped in practice, so an over-broad shared list cannot
|
|
@@ -63,6 +63,26 @@ export function isReceiverNameNode(sup, nodeType) {
|
|
|
63
63
|
export function isMemberReferencePropertyIdentifier(sup, nodeType) {
|
|
64
64
|
return memberReferencePropertyIdentifierTypes(sup).includes(nodeType);
|
|
65
65
|
}
|
|
66
|
+
const RECEIVER_KEYWORD_CALL_NODE_TYPES = { call: true, call_expression: true };
|
|
67
|
+
/**
|
|
68
|
+
* The text used to classify a receiver as an own-type or supertype keyword. Ordinarily this is
|
|
69
|
+
* the receiver node's own source spelling, but a language whose row sets `receiverKeywordCallShape`
|
|
70
|
+
* may also spell a keyword receiver as a zero-argument call to that keyword - Python's `super()`,
|
|
71
|
+
* which (unlike `self`/`cls`) has no bare-name form. Only unwrap that call when its callee is
|
|
72
|
+
* not shadowed by a visible lexical binding.
|
|
73
|
+
*/
|
|
74
|
+
export function receiverKeywordText(sup, node, source, hasLexicalBinding) {
|
|
75
|
+
const text = sliceText(node, source).trim();
|
|
76
|
+
if (!MEMBER_ACCESS_ROWS[sup.id]?.receiverKeywordCallShape || !RECEIVER_KEYWORD_CALL_NODE_TYPES[node.type]) {
|
|
77
|
+
return text;
|
|
78
|
+
}
|
|
79
|
+
const callee = node.childForFieldName("function") ?? node.namedChildren[0] ?? null;
|
|
80
|
+
const args = node.childForFieldName("arguments") ?? node.childForFieldName("argument_list");
|
|
81
|
+
if (!callee || (args && args.namedChildren.length))
|
|
82
|
+
return text;
|
|
83
|
+
const calleeText = sliceText(callee, source).trim();
|
|
84
|
+
return isKeywordReceiver(sup.id, calleeText) && !hasLexicalBinding(callee) ? calleeText : text;
|
|
85
|
+
}
|
|
66
86
|
export function getNavigationExpressionProperty(sup, expr) {
|
|
67
87
|
const suffix = expr.namedChildren.find((child) => child.type === "navigation_suffix") ?? expr.child(1);
|
|
68
88
|
if (!suffix)
|
|
@@ -124,12 +144,21 @@ export function collectMemberAccessChain(args) {
|
|
|
124
144
|
names.push(unquote(sliceText(propNode, args.source)));
|
|
125
145
|
return;
|
|
126
146
|
}
|
|
127
|
-
|
|
147
|
+
let nameNode = propNode;
|
|
148
|
+
if (args.sup.id === "csharp" && nameNode.type === "generic_name") {
|
|
149
|
+
nameNode = nameNode.childForFieldName("name") ?? nameNode.namedChildren[0] ?? nameNode;
|
|
150
|
+
}
|
|
151
|
+
if (nameNode.type !== "identifier" && !(args.sup.id === "java" && nameNode.type === "type_identifier"))
|
|
128
152
|
return;
|
|
129
|
-
const keyName = sliceText(
|
|
153
|
+
const keyName = sliceText(nameNode, args.source);
|
|
130
154
|
const value = args.constStringOf?.get(keyName);
|
|
131
155
|
if (typeof value === "string")
|
|
132
156
|
names.push(value);
|
|
157
|
+
// C#/Java qualified names, Rust's `mod::item` path, and Ruby's `receiver.method` call node
|
|
158
|
+
// all spell every segment as a plain `identifier`, with no dedicated property-identifier
|
|
159
|
+
// node type to tell a name from a value.
|
|
160
|
+
else if (args.sup.id === "csharp" || args.sup.id === "java" || args.sup.id === "rust" || args.sup.id === "ruby")
|
|
161
|
+
names.push(keyName);
|
|
133
162
|
};
|
|
134
163
|
while (current && traversalTypes.has(current.type)) {
|
|
135
164
|
if (current.type === "subscript_expression") {
|
|
@@ -151,4 +180,70 @@ export function collectMemberAccessChain(args) {
|
|
|
151
180
|
return null;
|
|
152
181
|
return { base: current, names };
|
|
153
182
|
}
|
|
183
|
+
const RUST_COMMENT_NODE_TYPES = new Set(["line_comment", "block_comment"]);
|
|
184
|
+
/**
|
|
185
|
+
* Whether a name inside a Rust macro token tree follows a `.` or `::` separator, ignoring comments:
|
|
186
|
+
* `counter.bump()` with a block comment after the dot is still a member call, and `m::run()` with
|
|
187
|
+
* one after the `::` is still a path call. Raw
|
|
188
|
+
* tokens cannot prove such a receiver, so both consumers stay conservative there.
|
|
189
|
+
*/
|
|
190
|
+
export function rustTokenTreeNameFollowsSeparator(name) {
|
|
191
|
+
const tree = name.parent;
|
|
192
|
+
if (tree?.type !== "token_tree")
|
|
193
|
+
return false;
|
|
194
|
+
let previous = null;
|
|
195
|
+
for (let index = 0;; index += 1) {
|
|
196
|
+
const child = tree.child(index);
|
|
197
|
+
if (!child || child.startIndex >= name.startIndex)
|
|
198
|
+
break;
|
|
199
|
+
if (!RUST_COMMENT_NODE_TYPES.has(child.type))
|
|
200
|
+
previous = child;
|
|
201
|
+
}
|
|
202
|
+
return previous?.type === "." || previous?.type === "::";
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Standard Rust macros whose arguments are ordinary expressions (after an optional format string
|
|
206
|
+
* or target). Any other macro, and every `macro_rules!` definition, takes raw tokens whose meaning
|
|
207
|
+
* depends on its expansion, so `name(...)` inside them is not a proven call.
|
|
208
|
+
*/
|
|
209
|
+
const RUST_EXPRESSION_ARGUMENT_MACROS = new Set([
|
|
210
|
+
"assert",
|
|
211
|
+
"assert_eq",
|
|
212
|
+
"assert_ne",
|
|
213
|
+
"debug_assert",
|
|
214
|
+
"debug_assert_eq",
|
|
215
|
+
"debug_assert_ne",
|
|
216
|
+
"dbg",
|
|
217
|
+
"eprint",
|
|
218
|
+
"eprintln",
|
|
219
|
+
"format",
|
|
220
|
+
"format_args",
|
|
221
|
+
"panic",
|
|
222
|
+
"print",
|
|
223
|
+
"println",
|
|
224
|
+
"todo",
|
|
225
|
+
"unimplemented",
|
|
226
|
+
"unreachable",
|
|
227
|
+
"vec",
|
|
228
|
+
"write",
|
|
229
|
+
"writeln",
|
|
230
|
+
]);
|
|
231
|
+
const RUST_STANDARD_CRATES = new Set(["std", "core", "alloc"]);
|
|
232
|
+
/** Whether a Rust token tree is (nested in) the arguments of a standard expression macro. */
|
|
233
|
+
export function rustTokenTreeHoldsExpressions(tokenTree) {
|
|
234
|
+
let current = tokenTree;
|
|
235
|
+
while (current?.type === "token_tree")
|
|
236
|
+
current = current.parent;
|
|
237
|
+
if (current?.type !== "macro_invocation")
|
|
238
|
+
return false;
|
|
239
|
+
const macro = current.childForFieldName("macro");
|
|
240
|
+
if (!macro)
|
|
241
|
+
return false;
|
|
242
|
+
// `my_dsl::println!` is a custom macro that only shares a name; a path proves a standard macro
|
|
243
|
+
// only when it is rooted at a standard crate (`std::println!`, `::core::assert!`).
|
|
244
|
+
const segments = macro.text.replace(/\s+/g, "").replace(/^::/, "").split("::");
|
|
245
|
+
const name = segments.pop();
|
|
246
|
+
const standardPath = !segments.length || (segments.length === 1 && RUST_STANDARD_CRATES.has(segments[0]));
|
|
247
|
+
return standardPath && RUST_EXPRESSION_ARGUMENT_MACROS.has(name);
|
|
248
|
+
}
|
|
154
249
|
//# sourceMappingURL=member-access.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-access.js","sourceRoot":"","sources":["../../src/util/member-access.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAA0B,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"member-access.js","sourceRoot":"","sources":["../../src/util/member-access.ts"],"names":[],"mappings":"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"}
|