@colbymchenry/codegraph-darwin-x64 0.9.8 → 1.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/lib/dist/bin/codegraph.d.ts +1 -0
- package/lib/dist/bin/codegraph.d.ts.map +1 -1
- package/lib/dist/bin/codegraph.js +247 -39
- package/lib/dist/bin/codegraph.js.map +1 -1
- package/lib/dist/context/index.d.ts +9 -0
- package/lib/dist/context/index.d.ts.map +1 -1
- package/lib/dist/context/index.js +102 -6
- package/lib/dist/context/index.js.map +1 -1
- package/lib/dist/context/markers.d.ts +19 -0
- package/lib/dist/context/markers.d.ts.map +1 -0
- package/lib/dist/context/markers.js +22 -0
- package/lib/dist/context/markers.js.map +1 -0
- package/lib/dist/db/index.d.ts.map +1 -1
- package/lib/dist/db/index.js +2 -1
- package/lib/dist/db/index.js.map +1 -1
- package/lib/dist/db/migrations.d.ts +1 -1
- package/lib/dist/db/migrations.d.ts.map +1 -1
- package/lib/dist/db/migrations.js +10 -1
- package/lib/dist/db/migrations.js.map +1 -1
- package/lib/dist/db/queries.d.ts +43 -0
- package/lib/dist/db/queries.d.ts.map +1 -1
- package/lib/dist/db/queries.js +103 -7
- package/lib/dist/db/queries.js.map +1 -1
- package/lib/dist/db/schema.sql +1 -0
- package/lib/dist/db/sqlite-adapter.d.ts +7 -0
- package/lib/dist/db/sqlite-adapter.d.ts.map +1 -1
- package/lib/dist/db/sqlite-adapter.js +3 -0
- package/lib/dist/db/sqlite-adapter.js.map +1 -1
- package/lib/dist/directory.d.ts +34 -2
- package/lib/dist/directory.d.ts.map +1 -1
- package/lib/dist/directory.js +129 -35
- package/lib/dist/directory.js.map +1 -1
- package/lib/dist/extraction/astro-extractor.d.ts +79 -0
- package/lib/dist/extraction/astro-extractor.d.ts.map +1 -0
- package/lib/dist/extraction/astro-extractor.js +320 -0
- package/lib/dist/extraction/astro-extractor.js.map +1 -0
- package/lib/dist/extraction/extraction-version.d.ts +25 -0
- package/lib/dist/extraction/extraction-version.d.ts.map +1 -0
- package/lib/dist/extraction/extraction-version.js +28 -0
- package/lib/dist/extraction/extraction-version.js.map +1 -0
- package/lib/dist/extraction/function-ref.d.ts +118 -0
- package/lib/dist/extraction/function-ref.d.ts.map +1 -0
- package/lib/dist/extraction/function-ref.js +727 -0
- package/lib/dist/extraction/function-ref.js.map +1 -0
- package/lib/dist/extraction/generated-detection.d.ts.map +1 -1
- package/lib/dist/extraction/generated-detection.js +3 -0
- package/lib/dist/extraction/generated-detection.js.map +1 -1
- package/lib/dist/extraction/grammars.d.ts +7 -1
- package/lib/dist/extraction/grammars.d.ts.map +1 -1
- package/lib/dist/extraction/grammars.js +52 -4
- package/lib/dist/extraction/grammars.js.map +1 -1
- package/lib/dist/extraction/index.d.ts +34 -0
- package/lib/dist/extraction/index.d.ts.map +1 -1
- package/lib/dist/extraction/index.js +346 -62
- package/lib/dist/extraction/index.js.map +1 -1
- package/lib/dist/extraction/languages/c-cpp.d.ts +8 -0
- package/lib/dist/extraction/languages/c-cpp.d.ts.map +1 -1
- package/lib/dist/extraction/languages/c-cpp.js +87 -28
- package/lib/dist/extraction/languages/c-cpp.js.map +1 -1
- package/lib/dist/extraction/languages/csharp.d.ts +22 -0
- package/lib/dist/extraction/languages/csharp.d.ts.map +1 -1
- package/lib/dist/extraction/languages/csharp.js +84 -2
- package/lib/dist/extraction/languages/csharp.js.map +1 -1
- package/lib/dist/extraction/languages/dart.d.ts.map +1 -1
- package/lib/dist/extraction/languages/dart.js +161 -1
- package/lib/dist/extraction/languages/dart.js.map +1 -1
- package/lib/dist/extraction/languages/go.d.ts.map +1 -1
- package/lib/dist/extraction/languages/go.js +43 -2
- package/lib/dist/extraction/languages/go.js.map +1 -1
- package/lib/dist/extraction/languages/index.d.ts.map +1 -1
- package/lib/dist/extraction/languages/index.js +2 -0
- package/lib/dist/extraction/languages/index.js.map +1 -1
- package/lib/dist/extraction/languages/java.d.ts.map +1 -1
- package/lib/dist/extraction/languages/java.js +42 -1
- package/lib/dist/extraction/languages/java.js.map +1 -1
- package/lib/dist/extraction/languages/javascript.d.ts.map +1 -1
- package/lib/dist/extraction/languages/javascript.js +16 -0
- package/lib/dist/extraction/languages/javascript.js.map +1 -1
- package/lib/dist/extraction/languages/kotlin.d.ts.map +1 -1
- package/lib/dist/extraction/languages/kotlin.js +69 -0
- package/lib/dist/extraction/languages/kotlin.js.map +1 -1
- package/lib/dist/extraction/languages/objc.d.ts.map +1 -1
- package/lib/dist/extraction/languages/objc.js +42 -0
- package/lib/dist/extraction/languages/objc.js.map +1 -1
- package/lib/dist/extraction/languages/pascal.d.ts.map +1 -1
- package/lib/dist/extraction/languages/pascal.js +11 -0
- package/lib/dist/extraction/languages/pascal.js.map +1 -1
- package/lib/dist/extraction/languages/php.d.ts.map +1 -1
- package/lib/dist/extraction/languages/php.js +90 -1
- package/lib/dist/extraction/languages/php.js.map +1 -1
- package/lib/dist/extraction/languages/r.d.ts +3 -0
- package/lib/dist/extraction/languages/r.d.ts.map +1 -0
- package/lib/dist/extraction/languages/r.js +314 -0
- package/lib/dist/extraction/languages/r.js.map +1 -0
- package/lib/dist/extraction/languages/ruby.d.ts.map +1 -1
- package/lib/dist/extraction/languages/ruby.js +35 -0
- package/lib/dist/extraction/languages/ruby.js.map +1 -1
- package/lib/dist/extraction/languages/rust.d.ts.map +1 -1
- package/lib/dist/extraction/languages/rust.js +35 -2
- package/lib/dist/extraction/languages/rust.js.map +1 -1
- package/lib/dist/extraction/languages/scala.d.ts.map +1 -1
- package/lib/dist/extraction/languages/scala.js +61 -1
- package/lib/dist/extraction/languages/scala.js.map +1 -1
- package/lib/dist/extraction/languages/swift.d.ts.map +1 -1
- package/lib/dist/extraction/languages/swift.js +61 -0
- package/lib/dist/extraction/languages/swift.js.map +1 -1
- package/lib/dist/extraction/languages/typescript.d.ts +13 -0
- package/lib/dist/extraction/languages/typescript.d.ts.map +1 -1
- package/lib/dist/extraction/languages/typescript.js +38 -0
- package/lib/dist/extraction/languages/typescript.js.map +1 -1
- package/lib/dist/extraction/liquid-extractor.d.ts +7 -0
- package/lib/dist/extraction/liquid-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/liquid-extractor.js +53 -9
- package/lib/dist/extraction/liquid-extractor.js.map +1 -1
- package/lib/dist/extraction/razor-extractor.d.ts +42 -0
- package/lib/dist/extraction/razor-extractor.d.ts.map +1 -0
- package/lib/dist/extraction/razor-extractor.js +285 -0
- package/lib/dist/extraction/razor-extractor.js.map +1 -0
- package/lib/dist/extraction/svelte-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/svelte-extractor.js +6 -3
- package/lib/dist/extraction/svelte-extractor.js.map +1 -1
- package/lib/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter-helpers.js +59 -10
- package/lib/dist/extraction/tree-sitter-helpers.js.map +1 -1
- package/lib/dist/extraction/tree-sitter-types.d.ts +33 -0
- package/lib/dist/extraction/tree-sitter-types.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter.d.ts +237 -0
- package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter.js +1820 -68
- package/lib/dist/extraction/tree-sitter.js.map +1 -1
- package/lib/dist/extraction/vue-extractor.d.ts +15 -0
- package/lib/dist/extraction/vue-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/vue-extractor.js +94 -3
- package/lib/dist/extraction/vue-extractor.js.map +1 -1
- package/lib/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/lib/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
- package/lib/dist/graph/queries.d.ts.map +1 -1
- package/lib/dist/graph/queries.js +13 -40
- package/lib/dist/graph/queries.js.map +1 -1
- package/lib/dist/graph/traversal.d.ts.map +1 -1
- package/lib/dist/graph/traversal.js +16 -4
- package/lib/dist/graph/traversal.js.map +1 -1
- package/lib/dist/index.d.ts +41 -3
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +99 -9
- package/lib/dist/index.js.map +1 -1
- package/lib/dist/installer/index.d.ts.map +1 -1
- package/lib/dist/installer/index.js +52 -2
- package/lib/dist/installer/index.js.map +1 -1
- package/lib/dist/installer/instructions-template.d.ts +34 -11
- package/lib/dist/installer/instructions-template.d.ts.map +1 -1
- package/lib/dist/installer/instructions-template.js +44 -12
- package/lib/dist/installer/instructions-template.js.map +1 -1
- package/lib/dist/installer/targets/claude.d.ts.map +1 -1
- package/lib/dist/installer/targets/claude.js +6 -10
- package/lib/dist/installer/targets/claude.js.map +1 -1
- package/lib/dist/installer/targets/codex.js +4 -6
- package/lib/dist/installer/targets/codex.js.map +1 -1
- package/lib/dist/installer/targets/gemini.js +4 -6
- package/lib/dist/installer/targets/gemini.js.map +1 -1
- package/lib/dist/installer/targets/opencode.d.ts +9 -1
- package/lib/dist/installer/targets/opencode.d.ts.map +1 -1
- package/lib/dist/installer/targets/opencode.js +91 -40
- package/lib/dist/installer/targets/opencode.js.map +1 -1
- package/lib/dist/installer/targets/shared.d.ts +14 -0
- package/lib/dist/installer/targets/shared.d.ts.map +1 -1
- package/lib/dist/installer/targets/shared.js +19 -2
- package/lib/dist/installer/targets/shared.js.map +1 -1
- package/lib/dist/mcp/daemon.d.ts +60 -1
- package/lib/dist/mcp/daemon.d.ts.map +1 -1
- package/lib/dist/mcp/daemon.js +221 -8
- package/lib/dist/mcp/daemon.js.map +1 -1
- package/lib/dist/mcp/dynamic-boundaries.d.ts +41 -0
- package/lib/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
- package/lib/dist/mcp/dynamic-boundaries.js +359 -0
- package/lib/dist/mcp/dynamic-boundaries.js.map +1 -0
- package/lib/dist/mcp/index.d.ts.map +1 -1
- package/lib/dist/mcp/index.js +18 -9
- package/lib/dist/mcp/index.js.map +1 -1
- package/lib/dist/mcp/ppid-watchdog.d.ts +44 -0
- package/lib/dist/mcp/ppid-watchdog.d.ts.map +1 -0
- package/lib/dist/mcp/ppid-watchdog.js +27 -0
- package/lib/dist/mcp/ppid-watchdog.js.map +1 -0
- package/lib/dist/mcp/proxy.d.ts +6 -0
- package/lib/dist/mcp/proxy.d.ts.map +1 -1
- package/lib/dist/mcp/proxy.js +153 -24
- package/lib/dist/mcp/proxy.js.map +1 -1
- package/lib/dist/mcp/server-instructions.d.ts +12 -1
- package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
- package/lib/dist/mcp/server-instructions.js +58 -32
- package/lib/dist/mcp/server-instructions.js.map +1 -1
- package/lib/dist/mcp/session.d.ts +2 -0
- package/lib/dist/mcp/session.d.ts.map +1 -1
- package/lib/dist/mcp/session.js +49 -2
- package/lib/dist/mcp/session.js.map +1 -1
- package/lib/dist/mcp/stdin-teardown.d.ts +27 -0
- package/lib/dist/mcp/stdin-teardown.d.ts.map +1 -0
- package/lib/dist/mcp/stdin-teardown.js +49 -0
- package/lib/dist/mcp/stdin-teardown.js.map +1 -0
- package/lib/dist/mcp/tools.d.ts +110 -49
- package/lib/dist/mcp/tools.d.ts.map +1 -1
- package/lib/dist/mcp/tools.js +1222 -972
- package/lib/dist/mcp/tools.js.map +1 -1
- package/lib/dist/mcp/transport.d.ts.map +1 -1
- package/lib/dist/mcp/transport.js +18 -2
- package/lib/dist/mcp/transport.js.map +1 -1
- package/lib/dist/resolution/callback-synthesizer.d.ts +3 -3
- package/lib/dist/resolution/callback-synthesizer.d.ts.map +1 -1
- package/lib/dist/resolution/callback-synthesizer.js +549 -21
- package/lib/dist/resolution/callback-synthesizer.js.map +1 -1
- package/lib/dist/resolution/frameworks/astro.d.ts +9 -0
- package/lib/dist/resolution/frameworks/astro.d.ts.map +1 -0
- package/lib/dist/resolution/frameworks/astro.js +169 -0
- package/lib/dist/resolution/frameworks/astro.js.map +1 -0
- package/lib/dist/resolution/frameworks/expo-modules.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/expo-modules.js +6 -1
- package/lib/dist/resolution/frameworks/expo-modules.js.map +1 -1
- package/lib/dist/resolution/frameworks/index.d.ts +1 -0
- package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/index.js +5 -1
- package/lib/dist/resolution/frameworks/index.js.map +1 -1
- package/lib/dist/resolution/frameworks/java.js +6 -1
- package/lib/dist/resolution/frameworks/java.js.map +1 -1
- package/lib/dist/resolution/frameworks/python.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/python.js +7 -3
- package/lib/dist/resolution/frameworks/python.js.map +1 -1
- package/lib/dist/resolution/frameworks/react-native.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/react-native.js +53 -3
- package/lib/dist/resolution/frameworks/react-native.js.map +1 -1
- package/lib/dist/resolution/frameworks/react.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/react.js +15 -3
- package/lib/dist/resolution/frameworks/react.js.map +1 -1
- package/lib/dist/resolution/frameworks/svelte.js +5 -1
- package/lib/dist/resolution/frameworks/svelte.js.map +1 -1
- package/lib/dist/resolution/frameworks/vue.js +24 -27
- package/lib/dist/resolution/frameworks/vue.js.map +1 -1
- package/lib/dist/resolution/import-resolver.d.ts +10 -0
- package/lib/dist/resolution/import-resolver.d.ts.map +1 -1
- package/lib/dist/resolution/import-resolver.js +564 -2
- package/lib/dist/resolution/import-resolver.js.map +1 -1
- package/lib/dist/resolution/index.d.ts +80 -0
- package/lib/dist/resolution/index.d.ts.map +1 -1
- package/lib/dist/resolution/index.js +457 -7
- package/lib/dist/resolution/index.js.map +1 -1
- package/lib/dist/resolution/name-matcher.d.ts +61 -0
- package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
- package/lib/dist/resolution/name-matcher.js +590 -14
- package/lib/dist/resolution/name-matcher.js.map +1 -1
- package/lib/dist/resolution/types.d.ts +27 -3
- package/lib/dist/resolution/types.d.ts.map +1 -1
- package/lib/dist/resolution/workspace-packages.d.ts +48 -0
- package/lib/dist/resolution/workspace-packages.d.ts.map +1 -0
- package/lib/dist/resolution/workspace-packages.js +208 -0
- package/lib/dist/resolution/workspace-packages.js.map +1 -0
- package/lib/dist/search/query-utils.d.ts +35 -1
- package/lib/dist/search/query-utils.d.ts.map +1 -1
- package/lib/dist/search/query-utils.js +109 -10
- package/lib/dist/search/query-utils.js.map +1 -1
- package/lib/dist/sync/watcher.d.ts +124 -32
- package/lib/dist/sync/watcher.d.ts.map +1 -1
- package/lib/dist/sync/watcher.js +326 -111
- package/lib/dist/sync/watcher.js.map +1 -1
- package/lib/dist/telemetry/index.d.ts +146 -0
- package/lib/dist/telemetry/index.d.ts.map +1 -0
- package/lib/dist/telemetry/index.js +544 -0
- package/lib/dist/telemetry/index.js.map +1 -0
- package/lib/dist/types.d.ts +25 -2
- package/lib/dist/types.d.ts.map +1 -1
- package/lib/dist/types.js +3 -0
- package/lib/dist/types.js.map +1 -1
- package/lib/dist/upgrade/index.d.ts +132 -0
- package/lib/dist/upgrade/index.d.ts.map +1 -0
- package/lib/dist/upgrade/index.js +462 -0
- package/lib/dist/upgrade/index.js.map +1 -0
- package/lib/dist/utils.d.ts +30 -24
- package/lib/dist/utils.d.ts.map +1 -1
- package/lib/dist/utils.js +64 -48
- package/lib/dist/utils.js.map +1 -1
- package/lib/node_modules/.package-lock.json +1 -29
- package/lib/package.json +1 -2
- package/package.json +1 -1
- package/lib/node_modules/chokidar/LICENSE +0 -21
- package/lib/node_modules/chokidar/README.md +0 -305
- package/lib/node_modules/chokidar/esm/handler.d.ts +0 -90
- package/lib/node_modules/chokidar/esm/handler.js +0 -629
- package/lib/node_modules/chokidar/esm/index.d.ts +0 -215
- package/lib/node_modules/chokidar/esm/index.js +0 -798
- package/lib/node_modules/chokidar/esm/package.json +0 -1
- package/lib/node_modules/chokidar/handler.d.ts +0 -90
- package/lib/node_modules/chokidar/handler.js +0 -635
- package/lib/node_modules/chokidar/index.d.ts +0 -215
- package/lib/node_modules/chokidar/index.js +0 -804
- package/lib/node_modules/chokidar/package.json +0 -69
- package/lib/node_modules/readdirp/LICENSE +0 -21
- package/lib/node_modules/readdirp/README.md +0 -120
- package/lib/node_modules/readdirp/esm/index.d.ts +0 -108
- package/lib/node_modules/readdirp/esm/index.js +0 -257
- package/lib/node_modules/readdirp/esm/package.json +0 -1
- package/lib/node_modules/readdirp/index.d.ts +0 -108
- package/lib/node_modules/readdirp/index.js +0 -263
- package/lib/node_modules/readdirp/package.json +0 -70
|
@@ -2,10 +2,124 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.dartExtractor = void 0;
|
|
4
4
|
const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
|
|
5
|
+
/**
|
|
6
|
+
* The `function_signature` carrying a method's return type — unwrapped from a
|
|
7
|
+
* `method_signature` wrapper (Dart nests the signature one level for methods).
|
|
8
|
+
*/
|
|
9
|
+
function dartInnerSignature(node) {
|
|
10
|
+
if (node.type === 'method_signature') {
|
|
11
|
+
const inner = node.namedChildren.find((c) => c.type === 'function_signature' || c.type === 'getter_signature' || c.type === 'setter_signature');
|
|
12
|
+
if (inner)
|
|
13
|
+
return inner;
|
|
14
|
+
}
|
|
15
|
+
return node;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The factory/named-constructor signature inside a node, if any. A constructor
|
|
19
|
+
* parses as `method_signature > {factory_,}constructor_signature` (e.g.
|
|
20
|
+
* `factory Foo.create()` or `Foo._()`), whose children are the class identifier
|
|
21
|
+
* and — for a named ctor — the constructor-name identifier.
|
|
22
|
+
*/
|
|
23
|
+
function dartConstructorSignature(node) {
|
|
24
|
+
if (node.type === 'factory_constructor_signature' || node.type === 'constructor_signature') {
|
|
25
|
+
return node;
|
|
26
|
+
}
|
|
27
|
+
if (node.type === 'method_signature') {
|
|
28
|
+
return node.namedChildren.find((c) => c.type === 'factory_constructor_signature' || c.type === 'constructor_signature');
|
|
29
|
+
}
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
/** The name of the class/mixin/extension/enum lexically enclosing `node`. */
|
|
33
|
+
function dartEnclosingTypeName(node) {
|
|
34
|
+
let p = node.parent;
|
|
35
|
+
while (p) {
|
|
36
|
+
if (p.type === 'class_definition' || p.type === 'mixin_declaration' ||
|
|
37
|
+
p.type === 'extension_declaration' || p.type === 'enum_declaration') {
|
|
38
|
+
return p.childForFieldName('name')?.text;
|
|
39
|
+
}
|
|
40
|
+
p = p.parent;
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Validated constructor info for `node`, or undefined if it isn't genuinely a
|
|
46
|
+
* constructor. A constructor signature is structurally `<Class>` or
|
|
47
|
+
* `<Class>.<name>`, but tree-sitter-dart MISPARSES `@override (T) m()` — the
|
|
48
|
+
* annotation swallows the record return type `(T)`, leaving `m()` looking like a
|
|
49
|
+
* single-identifier constructor_signature. We disambiguate by the class name:
|
|
50
|
+
* a real ctor's class identifier matches the enclosing type; a misparsed method
|
|
51
|
+
* (`reduce` inside class `Action`) doesn't, and is treated as the method it is.
|
|
52
|
+
*/
|
|
53
|
+
function dartCtorInfo(node) {
|
|
54
|
+
const ctor = dartConstructorSignature(node);
|
|
55
|
+
if (!ctor)
|
|
56
|
+
return undefined;
|
|
57
|
+
const ids = ctor.namedChildren.filter((c) => c.type === 'identifier');
|
|
58
|
+
const className = dartEnclosingTypeName(node);
|
|
59
|
+
if (!className || !ids[0])
|
|
60
|
+
return undefined;
|
|
61
|
+
if (ids[0].text !== className)
|
|
62
|
+
return undefined; // misparsed method, not a ctor
|
|
63
|
+
// `<Class>.<name>` is a named ctor; bare `<Class>` is the unnamed ctor.
|
|
64
|
+
return { className, ctorName: ids[1]?.text ?? className };
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Capture a Dart method/function's declared return type as a bare type name, for
|
|
68
|
+
* the chained static-factory / fluent call mechanism (#750). `Bar makeBar()`
|
|
69
|
+
* yields `Bar`; a generic `List<Foo>` yields its container `List` (the method is
|
|
70
|
+
* on the container, not the element); a prefixed `prefix.Bar` yields `Bar`. A
|
|
71
|
+
* factory / named constructor returns its enclosing class implicitly, so its
|
|
72
|
+
* "return type" is the class.
|
|
73
|
+
*/
|
|
74
|
+
function extractDartReturnType(node, source) {
|
|
75
|
+
const ctor = dartCtorInfo(node);
|
|
76
|
+
if (ctor)
|
|
77
|
+
return ctor.className;
|
|
78
|
+
const sig = dartInnerSignature(node);
|
|
79
|
+
// The return type precedes the method name; it's the first type_identifier
|
|
80
|
+
// (generic args sit in a sibling `type_arguments`, so this is the container).
|
|
81
|
+
const retType = sig.namedChildren.find((c) => c.type === 'type_identifier');
|
|
82
|
+
if (!retType)
|
|
83
|
+
return undefined;
|
|
84
|
+
const text = (0, tree_sitter_helpers_1.getNodeText)(retType, source).replace(/<[^>]*>/g, '').trim();
|
|
85
|
+
const last = text.split('.').pop(); // prefixed `p.Bar` → `Bar`
|
|
86
|
+
if (!last || !/^[A-Za-z_]\w*$/.test(last))
|
|
87
|
+
return undefined;
|
|
88
|
+
return last;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* The callee name of the Dart call whose `argument_part` selector is `argPart`
|
|
92
|
+
* — mirrors the main extractBareCall accessor logic so a chained receiver
|
|
93
|
+
* (`Foo.create()` in `Foo.create().bar()`) can be reconstructed. Returns
|
|
94
|
+
* `Foo.create`, a bare `create`, or `Foo` (constructor) — or undefined.
|
|
95
|
+
*/
|
|
96
|
+
function dartCalleeOfArgPart(argPart) {
|
|
97
|
+
const prev = argPart.previousNamedSibling;
|
|
98
|
+
if (!prev)
|
|
99
|
+
return undefined;
|
|
100
|
+
if (prev.type === 'identifier')
|
|
101
|
+
return prev.text; // bare `Foo()` / `create()`
|
|
102
|
+
if (prev.type === 'selector') {
|
|
103
|
+
const accessor = prev.namedChildren.find((c) => c.type === 'unconditional_assignable_selector' || c.type === 'conditional_assignable_selector');
|
|
104
|
+
const methodId = accessor?.namedChildren.find((c) => c.type === 'identifier');
|
|
105
|
+
if (methodId) {
|
|
106
|
+
const accessorPrev = prev.previousNamedSibling;
|
|
107
|
+
if (accessorPrev?.type === 'identifier')
|
|
108
|
+
return accessorPrev.text + '.' + methodId.text;
|
|
109
|
+
return methodId.text;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
5
114
|
exports.dartExtractor = {
|
|
6
115
|
functionTypes: ['function_signature'],
|
|
7
116
|
classTypes: ['class_definition'],
|
|
8
|
-
|
|
117
|
+
// `method_signature` covers regular methods AND factory constructors (which
|
|
118
|
+
// parse as method_signature > factory_constructor_signature). A plain named
|
|
119
|
+
// constructor `Foo._()` parses as a bare `constructor_signature`, so include
|
|
120
|
+
// it too — resolveName names it by the ctor name and getReturnType gives it
|
|
121
|
+
// the class as its return type, so `Foo._().bar()` chains resolve (#750).
|
|
122
|
+
methodTypes: ['method_signature', 'constructor_signature'],
|
|
9
123
|
interfaceTypes: [],
|
|
10
124
|
structTypes: [],
|
|
11
125
|
enumTypes: ['enum_declaration'],
|
|
@@ -33,6 +147,19 @@ exports.dartExtractor = {
|
|
|
33
147
|
bodyField: 'body', // class_definition uses 'body' field
|
|
34
148
|
paramsField: 'formal_parameter_list',
|
|
35
149
|
returnField: 'type',
|
|
150
|
+
getReturnType: extractDartReturnType,
|
|
151
|
+
isMisparsedFunction: (_name, node) => {
|
|
152
|
+
// Skip the UNNAMED constructor `Foo()` (its ctor name equals the class). It's
|
|
153
|
+
// ordinary construction — an `instantiates` edge to the class `Foo` — so
|
|
154
|
+
// extracting it as a `Foo::Foo` method node would hijack instantiation
|
|
155
|
+
// resolution (a `Foo(...)` call would resolve to the ctor method, not the
|
|
156
|
+
// class). NAMED ctors `Foo.create()` / `Foo._()` ARE kept so their chains
|
|
157
|
+
// resolve (#750). dartCtorInfo validates against the class name, so a method
|
|
158
|
+
// tree-sitter misparsed as a ctor (`@override (T) m()`) is NOT skipped here.
|
|
159
|
+
// (isMisparsedFunction skips node creation but still visits the body.)
|
|
160
|
+
const ctor = dartCtorInfo(node);
|
|
161
|
+
return ctor != null && ctor.ctorName === ctor.className;
|
|
162
|
+
},
|
|
36
163
|
getSignature: (node, source) => {
|
|
37
164
|
// For function_signature: extract params + return type
|
|
38
165
|
// For method_signature: delegate to inner function_signature
|
|
@@ -91,6 +218,24 @@ exports.dartExtractor = {
|
|
|
91
218
|
}
|
|
92
219
|
return false;
|
|
93
220
|
},
|
|
221
|
+
resolveName: (node) => {
|
|
222
|
+
// Name a factory / named constructor by its constructor name — the 2nd
|
|
223
|
+
// identifier (`create` in `factory Foo.create()`, `_` in `Foo._()`) — not
|
|
224
|
+
// the class, so a call `Foo.create()` resolves to `Foo::create` (#750). The
|
|
225
|
+
// default Dart naming returns the FIRST identifier (the class), which
|
|
226
|
+
// collides every named ctor onto `Foo::Foo` and leaves `Foo.create()`
|
|
227
|
+
// unresolvable. An unnamed ctor `Foo()` has a single identifier — fall
|
|
228
|
+
// through (undefined) to the default class name. Letting the core's
|
|
229
|
+
// extractMethod own the factory (rather than a custom visitNode) keeps the
|
|
230
|
+
// body attribution intact: calls inside `factory Foo.create() { … }` are
|
|
231
|
+
// attributed to `Foo::create`, and getReturnType gives it return type Foo.
|
|
232
|
+
const ctor = dartCtorInfo(node);
|
|
233
|
+
// A named ctor `Foo.create` → `create`; the unnamed ctor `Foo()` → undefined
|
|
234
|
+
// (default naming gives the class name `Foo`, which is correct).
|
|
235
|
+
if (ctor && ctor.ctorName !== ctor.className)
|
|
236
|
+
return ctor.ctorName;
|
|
237
|
+
return undefined;
|
|
238
|
+
},
|
|
94
239
|
extractImport: (node, source) => {
|
|
95
240
|
const importText = source.substring(node.startIndex, node.endIndex).trim();
|
|
96
241
|
let moduleName = '';
|
|
@@ -157,6 +302,21 @@ exports.dartExtractor = {
|
|
|
157
302
|
if (accessorPrev?.type === 'identifier') {
|
|
158
303
|
return accessorPrev.text + '.' + methodId.text;
|
|
159
304
|
}
|
|
305
|
+
// Chained static-factory / fluent call: the receiver is itself a call
|
|
306
|
+
// (`Foo.create().bar()`), so accessorPrev is that call's argument_part
|
|
307
|
+
// selector. Encode `<innerCallee>().<method>` so resolution can infer
|
|
308
|
+
// bar's class from what `Foo.create` RETURNS (#645/#608 mechanism) —
|
|
309
|
+
// but only when the chain starts with a capitalized type (a companion
|
|
310
|
+
// factory / static method / constructor); an instance chain
|
|
311
|
+
// (`obj.foo().bar()`) keeps the bare name (its receiver's type can't
|
|
312
|
+
// be recovered here).
|
|
313
|
+
if (accessorPrev?.type === 'selector' &&
|
|
314
|
+
accessorPrev.namedChildren.some((c) => c.type === 'argument_part')) {
|
|
315
|
+
const innerCallee = dartCalleeOfArgPart(accessorPrev);
|
|
316
|
+
if (innerCallee && /^[A-Z]/.test(innerCallee)) {
|
|
317
|
+
return `${innerCallee}().${methodId.text}`;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
160
320
|
return methodId.text;
|
|
161
321
|
}
|
|
162
322
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dart.js","sourceRoot":"","sources":["../../../src/extraction/languages/dart.ts"],"names":[],"mappings":";;;AACA,gEAAqD;AAGxC,QAAA,aAAa,GAAsB;IAC9C,aAAa,EAAE,CAAC,oBAAoB,CAAC;IACrC,UAAU,EAAE,CAAC,kBAAkB,CAAC;IAChC,WAAW,EAAE,CAAC,kBAAkB,CAAC;IACjC,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,CAAC,kBAAkB,CAAC;IAC/B,eAAe,EAAE,CAAC,eAAe,CAAC;IAClC,cAAc,EAAE,CAAC,YAAY,CAAC;IAC9B,WAAW,EAAE,CAAC,kBAAkB,CAAC;IACjC,SAAS,EAAE,EAAE,EAAG,kEAAkE;IAClF,aAAa,EAAE,EAAE;IACjB,mBAAmB,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;IACnE,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QAC/B,+EAA+E;QAC/E,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACnC,IAAI,IAAI,EAAE,IAAI,KAAK,eAAe;gBAAE,OAAO,IAAI,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,gFAAgF;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAC/C,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CACvD,IAAI,IAAI,CAAC;IACZ,CAAC;IACD,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM,EAAE,qCAAqC;IACxD,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC7B,uDAAuD;QACvD,6DAA6D;QAC7D,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CACtD,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAClG,CAAC;YACF,IAAI,KAAK;gBAAE,GAAG,GAAG,KAAK,CAAC;QACzB,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,uBAAuB,CAAC,CAAC;QAC7F,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CACvD,CAAC,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CACvD,CAAC;QACF,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC1C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO;YAAE,MAAM,IAAI,IAAA,iCAAW,EAAC,OAAO,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC;QAC1D,IAAI,MAAM;YAAE,MAAM,IAAI,IAAA,iCAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IACpC,CAAC;IACD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;QACtB,4DAA4D;QAC5D,IAAI,QAAQ,GAAsB,IAAI,CAAC;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CACtD,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAClG,CAAC;YACF,IAAI,KAAK;gBAAE,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,IAAI,CAAC;QACrG,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAChE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QAChB,6EAA6E;QAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC1C,IAAI,WAAW,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,KAAK,EAAE,IAAI,KAAK,OAAO;oBAAE,OAAO,IAAI,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QACjB,iDAAiD;QACjD,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,KAAK,EAAE,IAAI,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3E,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,2EAA2E;QAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;QAC9F,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC;YAC1G,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC;gBACxG,IAAI,eAAe,EAAE,CAAC;oBACpB,MAAM,GAAG,GAAG,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;oBACpF,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;wBAC7F,IAAI,aAAa,EAAE,CAAC;4BAClB,UAAU,GAAG,IAAA,iCAAW,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;wBACvE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;YAC9F,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,eAAe,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC;gBAC3G,IAAI,eAAe,EAAE,CAAC;oBACpB,MAAM,GAAG,GAAG,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;oBACpF,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;wBAC7F,IAAI,aAAa,EAAE,CAAC;4BAClB,UAAU,GAAG,IAAA,iCAAW,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;wBACvE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACjC,mFAAmF;QACnF,sDAAsD;QACtD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;YAC1F,IAAI,CAAC,UAAU;gBAAE,OAAO,SAAS,CAAC;YAElC,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACvC,IAAI,CAAC,IAAI;gBAAE,OAAO,SAAS,CAAC;YAE5B,0FAA0F;YAC1F,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;YAED,2FAA2F;YAC3F,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CACzD,CAAC,CAAC,IAAI,KAAK,mCAAmC,IAAI,CAAC,CAAC,IAAI,KAAK,iCAAiC,CAC/F,CAAC;gBACF,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;oBACzF,IAAI,QAAQ,EAAE,CAAC;wBACb,6EAA6E;wBAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;wBAC/C,IAAI,YAAY,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;4BACxC,OAAO,YAAY,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC;wBACjD,CAAC;wBACD,OAAO,QAAQ,CAAC,IAAI,CAAC;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,iFAAiF;YACjF,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAmC,IAAI,IAAI,CAAC,IAAI,KAAK,iCAAiC,EAAE,CAAC;gBACzG,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;gBACrF,IAAI,QAAQ;oBAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;YACrC,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,6CAA6C;QAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;YACxF,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,qDAAqD;QACrD,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;YACxF,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;YACnF,IAAI,MAAM,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;YAC7D,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"dart.js","sourceRoot":"","sources":["../../../src/extraction/languages/dart.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/go.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/go.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAsC9D,eAAO,MAAM,WAAW,EAAE,iBAgEzB,CAAC"}
|
|
@@ -2,6 +2,42 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.goExtractor = void 0;
|
|
4
4
|
const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
|
|
5
|
+
/**
|
|
6
|
+
* A Go function's declared return type, normalized to the bare type a chained
|
|
7
|
+
* `New().Method()` could be called on (the #645/#608 mechanism). Reads the
|
|
8
|
+
* `result` field: a pointer `*Foo` is unwrapped to `Foo`, a multi-return
|
|
9
|
+
* `(*Foo, error)` takes the first result (the idiomatic value-or-error shape),
|
|
10
|
+
* a qualified `pkg.Foo` reduces to its last segment, and generics to the base.
|
|
11
|
+
* Built-ins / unnamed results simply fail the later existence check.
|
|
12
|
+
*/
|
|
13
|
+
function extractGoReturnType(node, source) {
|
|
14
|
+
let result = (0, tree_sitter_helpers_1.getChildByField)(node, 'result');
|
|
15
|
+
if (!result)
|
|
16
|
+
return undefined;
|
|
17
|
+
// Multi-return `(T, error)` → the first result's type.
|
|
18
|
+
if (result.type === 'parameter_list') {
|
|
19
|
+
const first = result.namedChildren.find((c) => c.type === 'parameter_declaration');
|
|
20
|
+
if (!first)
|
|
21
|
+
return undefined;
|
|
22
|
+
result = (0, tree_sitter_helpers_1.getChildByField)(first, 'type') ?? first;
|
|
23
|
+
}
|
|
24
|
+
// Unwrap a pointer `*Foo` → `Foo`.
|
|
25
|
+
if (result?.type === 'pointer_type') {
|
|
26
|
+
result =
|
|
27
|
+
result.namedChildren.find((c) => c.type === 'type_identifier' || c.type === 'qualified_type' || c.type === 'generic_type') ?? result;
|
|
28
|
+
}
|
|
29
|
+
if (!result)
|
|
30
|
+
return undefined;
|
|
31
|
+
const text = (0, tree_sitter_helpers_1.getNodeText)(result, source)
|
|
32
|
+
.trim()
|
|
33
|
+
.replace(/^\*/, '')
|
|
34
|
+
.replace(/<[^>]*>/g, '')
|
|
35
|
+
.replace(/\[[^\]]*\]/g, ''); // strip generic args `Foo[T]`
|
|
36
|
+
const last = text.split('.').pop()?.trim(); // qualified `pkg.Foo` → `Foo`
|
|
37
|
+
if (!last || !/^[A-Za-z_]\w*$/.test(last))
|
|
38
|
+
return undefined;
|
|
39
|
+
return last;
|
|
40
|
+
}
|
|
5
41
|
exports.goExtractor = {
|
|
6
42
|
functionTypes: ['function_declaration'],
|
|
7
43
|
classTypes: [], // Go doesn't have classes
|
|
@@ -18,6 +54,7 @@ exports.goExtractor = {
|
|
|
18
54
|
bodyField: 'body',
|
|
19
55
|
paramsField: 'parameters',
|
|
20
56
|
returnField: 'result',
|
|
57
|
+
getReturnType: extractGoReturnType,
|
|
21
58
|
getSignature: (node, source) => {
|
|
22
59
|
const params = (0, tree_sitter_helpers_1.getChildByField)(node, 'parameters');
|
|
23
60
|
const result = (0, tree_sitter_helpers_1.getChildByField)(node, 'result');
|
|
@@ -62,8 +99,12 @@ exports.goExtractor = {
|
|
|
62
99
|
return undefined;
|
|
63
100
|
// Find the type identifier inside the receiver
|
|
64
101
|
const text = (0, tree_sitter_helpers_1.getNodeText)(receiver, source);
|
|
65
|
-
// Extract type name from
|
|
66
|
-
|
|
102
|
+
// Extract type name from "(sl *Type)", "(sl Type)", "(*Type)", "(Type)" and
|
|
103
|
+
// generic receivers "(s *Stack[T])". Anchor on the opening "(" and skip an
|
|
104
|
+
// optional receiver var name; the old `name)`-anchored pattern never matched
|
|
105
|
+
// the `[T])` suffix, so generic-type methods were orphaned from their type
|
|
106
|
+
// (no struct→method `contains` edge). (#583)
|
|
107
|
+
const match = text.match(/\(\s*(?:[A-Za-z_]\w*\s+)?\*?\s*([A-Za-z_]\w*)/);
|
|
67
108
|
return match?.[1];
|
|
68
109
|
},
|
|
69
110
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"go.js","sourceRoot":"","sources":["../../../src/extraction/languages/go.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"go.js","sourceRoot":"","sources":["../../../src/extraction/languages/go.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAsB9D,eAAO,MAAM,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAuBnE,CAAC"}
|
|
@@ -23,6 +23,7 @@ const dart_1 = require("./dart");
|
|
|
23
23
|
const pascal_1 = require("./pascal");
|
|
24
24
|
const scala_1 = require("./scala");
|
|
25
25
|
const lua_1 = require("./lua");
|
|
26
|
+
const r_1 = require("./r");
|
|
26
27
|
const luau_1 = require("./luau");
|
|
27
28
|
const objc_1 = require("./objc");
|
|
28
29
|
exports.EXTRACTORS = {
|
|
@@ -45,6 +46,7 @@ exports.EXTRACTORS = {
|
|
|
45
46
|
pascal: pascal_1.pascalExtractor,
|
|
46
47
|
scala: scala_1.scalaExtractor,
|
|
47
48
|
lua: lua_1.luaExtractor,
|
|
49
|
+
r: r_1.rExtractor,
|
|
48
50
|
luau: luau_1.luauExtractor,
|
|
49
51
|
objc: objc_1.objcExtractor,
|
|
50
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extraction/languages/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAKH,6CAAmD;AACnD,6CAAmD;AACnD,qCAA2C;AAC3C,6BAAmC;AACnC,iCAAuC;AACvC,iCAAuC;AACvC,mCAAmD;AACnD,qCAA2C;AAC3C,+BAAqC;AACrC,iCAAuC;AACvC,mCAAyC;AACzC,qCAA2C;AAC3C,iCAAuC;AACvC,qCAA2C;AAC3C,mCAAyC;AACzC,+BAAqC;AACrC,iCAAuC;AACvC,iCAAuC;AAE1B,QAAA,UAAU,GAAiD;IACtE,UAAU,EAAE,gCAAmB;IAC/B,GAAG,EAAE,gCAAmB;IACxB,UAAU,EAAE,gCAAmB;IAC/B,GAAG,EAAE,gCAAmB;IACxB,MAAM,EAAE,wBAAe;IACvB,EAAE,EAAE,gBAAW;IACf,IAAI,EAAE,oBAAa;IACnB,IAAI,EAAE,oBAAa;IACnB,CAAC,EAAE,kBAAU;IACb,GAAG,EAAE,oBAAY;IACjB,MAAM,EAAE,wBAAe;IACvB,GAAG,EAAE,kBAAY;IACjB,IAAI,EAAE,oBAAa;IACnB,KAAK,EAAE,sBAAc;IACrB,MAAM,EAAE,wBAAe;IACvB,IAAI,EAAE,oBAAa;IACnB,MAAM,EAAE,wBAAe;IACvB,KAAK,EAAE,sBAAc;IACrB,GAAG,EAAE,kBAAY;IACjB,IAAI,EAAE,oBAAa;IACnB,IAAI,EAAE,oBAAa;CACpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extraction/languages/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAKH,6CAAmD;AACnD,6CAAmD;AACnD,qCAA2C;AAC3C,6BAAmC;AACnC,iCAAuC;AACvC,iCAAuC;AACvC,mCAAmD;AACnD,qCAA2C;AAC3C,+BAAqC;AACrC,iCAAuC;AACvC,mCAAyC;AACzC,qCAA2C;AAC3C,iCAAuC;AACvC,qCAA2C;AAC3C,mCAAyC;AACzC,+BAAqC;AACrC,2BAAiC;AACjC,iCAAuC;AACvC,iCAAuC;AAE1B,QAAA,UAAU,GAAiD;IACtE,UAAU,EAAE,gCAAmB;IAC/B,GAAG,EAAE,gCAAmB;IACxB,UAAU,EAAE,gCAAmB;IAC/B,GAAG,EAAE,gCAAmB;IACxB,MAAM,EAAE,wBAAe;IACvB,EAAE,EAAE,gBAAW;IACf,IAAI,EAAE,oBAAa;IACnB,IAAI,EAAE,oBAAa;IACnB,CAAC,EAAE,kBAAU;IACb,GAAG,EAAE,oBAAY;IACjB,MAAM,EAAE,wBAAe;IACvB,GAAG,EAAE,kBAAY;IACjB,IAAI,EAAE,oBAAa;IACnB,KAAK,EAAE,sBAAc;IACrB,MAAM,EAAE,wBAAe;IACvB,IAAI,EAAE,oBAAa;IACnB,MAAM,EAAE,wBAAe;IACvB,KAAK,EAAE,sBAAc;IACrB,GAAG,EAAE,kBAAY;IACjB,CAAC,EAAE,cAAU;IACb,IAAI,EAAE,oBAAa;IACnB,IAAI,EAAE,oBAAa;CACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/java.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/java.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAoC9D,eAAO,MAAM,aAAa,EAAE,iBAmE3B,CAAC"}
|
|
@@ -2,11 +2,51 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.javaExtractor = void 0;
|
|
4
4
|
const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
|
|
5
|
+
/**
|
|
6
|
+
* Tree-sitter-java node types for a method's `type` (return) field that can
|
|
7
|
+
* never be a method receiver — there's no class to chain a `.method()` on, so we
|
|
8
|
+
* store no `returnType` for them.
|
|
9
|
+
*/
|
|
10
|
+
const JAVA_NON_CLASS_RETURN_NODES = new Set([
|
|
11
|
+
'void_type',
|
|
12
|
+
'integral_type', // int, long, short, byte, char
|
|
13
|
+
'floating_point_type', // float, double
|
|
14
|
+
'boolean_type',
|
|
15
|
+
]);
|
|
16
|
+
/**
|
|
17
|
+
* A Java method's declared return type, normalized to the bare class name a
|
|
18
|
+
* chained `Foo.getInstance().bar()` could be called on (the #645/#608 mechanism).
|
|
19
|
+
* Reads the `type` field: primitives/void/arrays yield undefined (no class to
|
|
20
|
+
* chain on), `List<Foo>` is unwrapped to its base type `List`, and a dotted
|
|
21
|
+
* package/outer-class qualifier (`java.util.List`) is stripped to the simple
|
|
22
|
+
* name. Constructors have no `type` field → undefined.
|
|
23
|
+
*/
|
|
24
|
+
function extractJavaReturnType(node, source) {
|
|
25
|
+
const typeNode = (0, tree_sitter_helpers_1.getChildByField)(node, 'type');
|
|
26
|
+
if (!typeNode)
|
|
27
|
+
return undefined;
|
|
28
|
+
if (JAVA_NON_CLASS_RETURN_NODES.has(typeNode.type))
|
|
29
|
+
return undefined;
|
|
30
|
+
// An array return (`Foo[]`) isn't a receiver you call instance methods on.
|
|
31
|
+
if (typeNode.type === 'array_type')
|
|
32
|
+
return undefined;
|
|
33
|
+
// Strip type arguments (`List<Foo>` → `List`) — the chain resolves on the base.
|
|
34
|
+
const raw = (0, tree_sitter_helpers_1.getNodeText)(typeNode, source).trim().replace(/<[^>]*>/g, '');
|
|
35
|
+
// Strip a dotted package / outer-class qualifier (`java.util.List` → `List`).
|
|
36
|
+
const last = raw.split('.').pop()?.trim();
|
|
37
|
+
if (!last || !/^[A-Za-z_]\w*$/.test(last))
|
|
38
|
+
return undefined;
|
|
39
|
+
return last;
|
|
40
|
+
}
|
|
5
41
|
exports.javaExtractor = {
|
|
6
42
|
functionTypes: [],
|
|
7
43
|
classTypes: ['class_declaration'],
|
|
8
44
|
methodTypes: ['method_declaration', 'constructor_declaration'],
|
|
9
|
-
|
|
45
|
+
// `annotation_type_declaration` is `@interface Foo { … }` — an annotation
|
|
46
|
+
// definition. Without it, annotation types (`@SerializedName`, `@GetMapping`,
|
|
47
|
+
// JPA/Spring annotations) aren't nodes, so the `@Foo` usages that DO get
|
|
48
|
+
// extracted can't resolve and the annotation file shows zero dependents.
|
|
49
|
+
interfaceTypes: ['interface_declaration', 'annotation_type_declaration'],
|
|
10
50
|
structTypes: [],
|
|
11
51
|
enumTypes: ['enum_declaration'],
|
|
12
52
|
enumMemberTypes: ['enum_constant'],
|
|
@@ -19,6 +59,7 @@ exports.javaExtractor = {
|
|
|
19
59
|
bodyField: 'body',
|
|
20
60
|
paramsField: 'parameters',
|
|
21
61
|
returnField: 'type',
|
|
62
|
+
getReturnType: extractJavaReturnType,
|
|
22
63
|
getSignature: (node, source) => {
|
|
23
64
|
const params = (0, tree_sitter_helpers_1.getChildByField)(node, 'parameters');
|
|
24
65
|
const returnType = (0, tree_sitter_helpers_1.getChildByField)(node, 'type');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"java.js","sourceRoot":"","sources":["../../../src/extraction/languages/java.ts"],"names":[],"mappings":";;;AACA,gEAAsE;
|
|
1
|
+
{"version":3,"file":"java.js","sourceRoot":"","sources":["../../../src/extraction/languages/java.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/javascript.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/javascript.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,eAAO,MAAM,mBAAmB,EAAE,iBA8FjC,CAAC"}
|
|
@@ -2,10 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.javascriptExtractor = void 0;
|
|
4
4
|
const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
|
|
5
|
+
const typescript_1 = require("./typescript");
|
|
5
6
|
exports.javascriptExtractor = {
|
|
6
7
|
functionTypes: ['function_declaration', 'arrow_function', 'function_expression'],
|
|
7
8
|
classTypes: ['class_declaration'],
|
|
8
9
|
methodTypes: ['method_definition', 'field_definition'],
|
|
10
|
+
// JS `field_definition` ≙ TS `public_field_definition`: plain fields are
|
|
11
|
+
// properties, function-valued fields are methods (#808).
|
|
12
|
+
classifyMethodNode: typescript_1.classifyTsClassMember,
|
|
9
13
|
interfaceTypes: [],
|
|
10
14
|
structTypes: [],
|
|
11
15
|
enumTypes: [],
|
|
@@ -14,6 +18,18 @@ exports.javascriptExtractor = {
|
|
|
14
18
|
callTypes: ['call_expression'],
|
|
15
19
|
variableTypes: ['lexical_declaration', 'variable_declaration'],
|
|
16
20
|
nameField: 'name',
|
|
21
|
+
// JS `field_definition` names its key the `property` field (TS's
|
|
22
|
+
// public_field_definition uses `name`). Without this, JS class fields —
|
|
23
|
+
// including arrow-function handler fields — extracted no name and produced
|
|
24
|
+
// no node at all (#808).
|
|
25
|
+
resolveName: (node, source) => {
|
|
26
|
+
if (node.type === 'field_definition') {
|
|
27
|
+
const prop = (0, tree_sitter_helpers_1.getChildByField)(node, 'property');
|
|
28
|
+
if (prop)
|
|
29
|
+
return (0, tree_sitter_helpers_1.getNodeText)(prop, source);
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
},
|
|
17
33
|
bodyField: 'body',
|
|
18
34
|
resolveBody: (node, bodyField) => {
|
|
19
35
|
// field_definition (arrow function class fields) nest the body inside
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/extraction/languages/javascript.ts"],"names":[],"mappings":";;;AAAA,gEAAsE;
|
|
1
|
+
{"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/extraction/languages/javascript.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/kotlin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/kotlin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAoE9D,eAAO,MAAM,eAAe,EAAE,iBA6O7B,CAAC"}
|
|
@@ -2,6 +2,48 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.kotlinExtractor = void 0;
|
|
4
4
|
const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
|
|
5
|
+
/** Kotlin return types that can't be a chained-call receiver (no class to chain on). */
|
|
6
|
+
const KOTLIN_NON_CLASS_RETURN = new Set(['Unit', 'Nothing']);
|
|
7
|
+
/**
|
|
8
|
+
* A Kotlin function's declared return type, normalized to the bare class name a
|
|
9
|
+
* chained `Foo.getInstance().bar()` could be called on (the #645/#608 mechanism).
|
|
10
|
+
* tree-sitter-kotlin exposes no field names, so the return type is found
|
|
11
|
+
* positionally: the first `user_type` / `nullable_type` that FOLLOWS
|
|
12
|
+
* `function_value_parameters` (an extension receiver's type sits before the
|
|
13
|
+
* params, so it's never mistaken for the return). An inferred return (expression
|
|
14
|
+
* body with no `: Type`), a lambda return type, or `Unit` / `Nothing` → undefined.
|
|
15
|
+
*/
|
|
16
|
+
function extractKotlinReturnType(node, source) {
|
|
17
|
+
let seenParams = false;
|
|
18
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
19
|
+
const child = node.namedChild(i);
|
|
20
|
+
if (!child)
|
|
21
|
+
continue;
|
|
22
|
+
if (child.type === 'function_value_parameters') {
|
|
23
|
+
seenParams = true;
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (!seenParams)
|
|
27
|
+
continue;
|
|
28
|
+
// The return type is the type node right after the params. If we reach the
|
|
29
|
+
// body or a `where`-clause first, there's no declared return type.
|
|
30
|
+
if (child.type === 'function_body' || child.type === 'type_constraints')
|
|
31
|
+
return undefined;
|
|
32
|
+
if (child.type === 'user_type' || child.type === 'nullable_type') {
|
|
33
|
+
const ut = child.type === 'nullable_type'
|
|
34
|
+
? (child.namedChildren.find((c) => c.type === 'user_type') ?? child)
|
|
35
|
+
: child;
|
|
36
|
+
const typeId = ut.namedChildren.find((c) => c.type === 'type_identifier');
|
|
37
|
+
const name = (0, tree_sitter_helpers_1.getNodeText)(typeId ?? ut, source).trim();
|
|
38
|
+
if (!name || !/^[A-Za-z_]\w*$/.test(name))
|
|
39
|
+
return undefined;
|
|
40
|
+
if (KOTLIN_NON_CLASS_RETURN.has(name))
|
|
41
|
+
return undefined;
|
|
42
|
+
return name;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
5
47
|
/** Check if a node matches the `fun interface` misparse pattern */
|
|
6
48
|
function isFunInterfaceNode(node) {
|
|
7
49
|
let hasFun = false;
|
|
@@ -133,6 +175,7 @@ exports.kotlinExtractor = {
|
|
|
133
175
|
},
|
|
134
176
|
paramsField: 'function_value_parameters',
|
|
135
177
|
returnField: 'type',
|
|
178
|
+
getReturnType: extractKotlinReturnType,
|
|
136
179
|
resolveBody: (node, _bodyField) => {
|
|
137
180
|
// Kotlin's tree-sitter grammar doesn't use field names, so getChildByField fails.
|
|
138
181
|
// Find body by type: function_body for functions/methods, class_body for classes,
|
|
@@ -241,6 +284,32 @@ exports.kotlinExtractor = {
|
|
|
241
284
|
}
|
|
242
285
|
return false;
|
|
243
286
|
},
|
|
287
|
+
extractModifiers: (node) => {
|
|
288
|
+
// Kotlin Multiplatform `expect`/`actual` markers live in
|
|
289
|
+
// modifiers > platform_modifier > (expect | actual)
|
|
290
|
+
// Capturing them lets the resolver link an `expect` declaration in a
|
|
291
|
+
// common source set to its `actual` implementations in platform source
|
|
292
|
+
// sets (those impls otherwise have zero dependents — the caller resolves
|
|
293
|
+
// to the `expect`). Match the AST node, not raw text, so an annotation
|
|
294
|
+
// argument or identifier named "actual" can't false-positive.
|
|
295
|
+
const mods = [];
|
|
296
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
297
|
+
const child = node.child(i);
|
|
298
|
+
if (child?.type !== 'modifiers')
|
|
299
|
+
continue;
|
|
300
|
+
for (let j = 0; j < child.childCount; j++) {
|
|
301
|
+
const pm = child.child(j);
|
|
302
|
+
if (pm?.type !== 'platform_modifier')
|
|
303
|
+
continue;
|
|
304
|
+
for (let k = 0; k < pm.childCount; k++) {
|
|
305
|
+
const kw = pm.child(k);
|
|
306
|
+
if (kw && (kw.type === 'expect' || kw.type === 'actual'))
|
|
307
|
+
mods.push(kw.type);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
return mods.length > 0 ? mods : undefined;
|
|
312
|
+
},
|
|
244
313
|
extractImport: (node, source) => {
|
|
245
314
|
const importText = source.substring(node.startIndex, node.endIndex).trim();
|
|
246
315
|
const identifier = node.namedChildren.find((c) => c.type === 'identifier');
|