@nithin554/code-crawler 0.1.56 → 0.1.59
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 +21 -3
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/crawler.d.ts +1 -1
- package/dist/crawler.js +42 -15
- package/dist/crawler.js.map +1 -1
- package/dist/graph/insights.d.ts +2 -2
- package/dist/graph/insights.js +13 -9
- package/dist/graph/insights.js.map +1 -1
- package/dist/graph/queries.d.ts +1 -1
- package/dist/graph/queries.js +20 -23
- package/dist/graph/queries.js.map +1 -1
- package/dist/graph/store.d.ts +1 -1
- package/dist/graph/store.js +4 -10
- package/dist/graph/store.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/parser/cache.js.map +1 -1
- package/dist/parser/controlFlow.js +1 -3
- package/dist/parser/controlFlow.js.map +1 -1
- package/dist/parser/languages/java.js +22 -7
- package/dist/parser/languages/java.js.map +1 -1
- package/dist/parser/languages/python.js +50 -18
- package/dist/parser/languages/python.js.map +1 -1
- package/dist/parser/languages/typescript.js +58 -19
- package/dist/parser/languages/typescript.js.map +1 -1
- package/dist/parser/moduleId.js +2 -1
- package/dist/parser/moduleId.js.map +1 -1
- package/dist/parser/treeSitter.d.ts +1 -1
- package/dist/parser/treeSitter.js +2 -2
- package/dist/parser/treeSitter.js.map +1 -1
- package/dist/resolver/common.js +89 -23
- package/dist/resolver/common.js.map +1 -1
- package/dist/resolver/dynamic.d.ts +1 -1
- package/dist/resolver/dynamic.js +4 -2
- package/dist/resolver/dynamic.js.map +1 -1
- package/dist/resolver/genericResolver.js +61 -12
- package/dist/resolver/genericResolver.js.map +1 -1
- package/dist/resolver/javaResolver.js +7 -4
- package/dist/resolver/javaResolver.js.map +1 -1
- package/dist/resolver/types.js +1 -1
- package/dist/resolver/types.js.map +1 -1
- package/dist/server.d.ts +3 -2
- package/dist/server.js +36 -16
- package/dist/server.js.map +1 -1
- package/dist/version.d.ts +16 -0
- package/dist/version.js +40 -0
- package/dist/version.js.map +1 -0
- package/package.json +9 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { childOfType, childrenOfType, createParser, fieldChild, loadGrammar, sameNode, walk, } from "../treeSitter.js";
|
|
2
1
|
import { controlFlowOf, insideAny } from "../controlFlow.js";
|
|
3
|
-
import { moduleNodeId, pythonModuleId, resolvePythonRelative
|
|
2
|
+
import { moduleNodeId, pythonModuleId, resolvePythonRelative } from "../moduleId.js";
|
|
3
|
+
import { childOfType, childrenOfType, createParser, fieldChild, loadGrammar, sameNode, walk, } from "../treeSitter.js";
|
|
4
4
|
/**
|
|
5
5
|
* Python parser.
|
|
6
6
|
*
|
|
@@ -124,7 +124,9 @@ export const pythonConfig = {
|
|
|
124
124
|
const injections = [];
|
|
125
125
|
const routes = [];
|
|
126
126
|
const methodRanges = [];
|
|
127
|
-
const typeRanges = [
|
|
127
|
+
const typeRanges = [
|
|
128
|
+
{ startLine: 0, endLine: root.endPosition.row, id: moduleTypeId },
|
|
129
|
+
];
|
|
128
130
|
const fieldIds = new Set();
|
|
129
131
|
const typeIdOf = (name, parentId) => parentId ? `${parentId}.${name}` : `${moduleId}.${name}`;
|
|
130
132
|
const methodIdOf = (typeId, name, isCtor) => `${typeId}#${isCtor ? "<init>" : name}`;
|
|
@@ -156,7 +158,12 @@ export const pythonConfig = {
|
|
|
156
158
|
const args = argsNode
|
|
157
159
|
? argsNode.namedChildren.filter((c) => c.type !== "comment").map((c) => c.text)
|
|
158
160
|
: [];
|
|
159
|
-
return {
|
|
161
|
+
return {
|
|
162
|
+
name: named.name,
|
|
163
|
+
fqn: named.fqn,
|
|
164
|
+
arguments: args,
|
|
165
|
+
line: decorator.startPosition.row,
|
|
166
|
+
};
|
|
160
167
|
}
|
|
161
168
|
const named = calleeName(expression);
|
|
162
169
|
if (!named)
|
|
@@ -164,9 +171,7 @@ export const pythonConfig = {
|
|
|
164
171
|
return { name: named.name, fqn: named.fqn, arguments: [], line: decorator.startPosition.row };
|
|
165
172
|
}
|
|
166
173
|
function annotationsOf(decorators) {
|
|
167
|
-
return decorators
|
|
168
|
-
.map((d) => annotationOf(d))
|
|
169
|
-
.filter((a) => a !== null);
|
|
174
|
+
return decorators.map((d) => annotationOf(d)).filter((a) => a !== null);
|
|
170
175
|
}
|
|
171
176
|
function unquote(raw) {
|
|
172
177
|
const match = raw.match(/^\s*(?:[rbfu]{0,2})?["']([\s\S]*?)["']\s*$/);
|
|
@@ -188,7 +193,9 @@ export const pythonConfig = {
|
|
|
188
193
|
const hasReceiver = qualified.includes(".");
|
|
189
194
|
if (HTTP_VERBS.has(lower) && (hasReceiver || lower.endsWith("route"))) {
|
|
190
195
|
const path = stringArgument(annotation);
|
|
191
|
-
const method = lower === "route" || lower === "api_route" || lower === "websocket_route"
|
|
196
|
+
const method = lower === "route" || lower === "api_route" || lower === "websocket_route"
|
|
197
|
+
? ""
|
|
198
|
+
: lower.toUpperCase();
|
|
192
199
|
return { kind: "http", detail: `${method} ${path}`.trim() || qualified };
|
|
193
200
|
}
|
|
194
201
|
if (["task", "shared_task", "periodic_task", "celery_task"].includes(lower)) {
|
|
@@ -197,7 +204,10 @@ export const pythonConfig = {
|
|
|
197
204
|
if (["scheduled", "cron", "interval", "periodic_task"].includes(lower)) {
|
|
198
205
|
return { kind: "scheduler", detail: qualified };
|
|
199
206
|
}
|
|
200
|
-
if (lower === "fixture" ||
|
|
207
|
+
if (lower === "fixture" ||
|
|
208
|
+
qualified.endsWith(".fixture") ||
|
|
209
|
+
lower === "parametrize" ||
|
|
210
|
+
lower.startsWith("mark.")) {
|
|
201
211
|
return { kind: "test", detail: qualified };
|
|
202
212
|
}
|
|
203
213
|
if (["on_event", "listener", "receiver", "on_message", "subscribe", "handler"].includes(lower)) {
|
|
@@ -340,7 +350,9 @@ export const pythonConfig = {
|
|
|
340
350
|
return { name: param.text, type: "" };
|
|
341
351
|
case "typed_parameter": {
|
|
342
352
|
const nameNode = param.namedChildren.find((c) => c.type === "identifier");
|
|
343
|
-
return nameNode
|
|
353
|
+
return nameNode
|
|
354
|
+
? { name: nameNode.text, type: typeText(fieldChild(param, "type")) }
|
|
355
|
+
: null;
|
|
344
356
|
}
|
|
345
357
|
case "default_parameter": {
|
|
346
358
|
const nameNode = fieldChild(param, "name") ?? param.namedChildren[0];
|
|
@@ -348,7 +360,9 @@ export const pythonConfig = {
|
|
|
348
360
|
}
|
|
349
361
|
case "typed_default_parameter": {
|
|
350
362
|
const nameNode = fieldChild(param, "name") ?? param.namedChildren.find((c) => c.type === "identifier");
|
|
351
|
-
return nameNode
|
|
363
|
+
return nameNode
|
|
364
|
+
? { name: nameNode.text, type: typeText(fieldChild(param, "type")) }
|
|
365
|
+
: null;
|
|
352
366
|
}
|
|
353
367
|
default:
|
|
354
368
|
return null;
|
|
@@ -450,7 +464,7 @@ export const pythonConfig = {
|
|
|
450
464
|
if (assignment.type !== "assignment")
|
|
451
465
|
continue;
|
|
452
466
|
const left = fieldChild(assignment, "left") ?? assignment.namedChildren[0];
|
|
453
|
-
if (
|
|
467
|
+
if (left?.type !== "identifier")
|
|
454
468
|
continue;
|
|
455
469
|
const typeNode = fieldChild(assignment, "type");
|
|
456
470
|
const right = fieldChild(assignment, "right");
|
|
@@ -476,7 +490,10 @@ export const pythonConfig = {
|
|
|
476
490
|
modifiers.push("async");
|
|
477
491
|
for (const annotation of annotations) {
|
|
478
492
|
const lower = annotation.name.toLowerCase();
|
|
479
|
-
if (lower === "staticmethod" ||
|
|
493
|
+
if (lower === "staticmethod" ||
|
|
494
|
+
lower === "classmethod" ||
|
|
495
|
+
lower === "property" ||
|
|
496
|
+
lower === "abstractmethod") {
|
|
480
497
|
modifiers.push(lower);
|
|
481
498
|
}
|
|
482
499
|
}
|
|
@@ -493,7 +510,12 @@ export const pythonConfig = {
|
|
|
493
510
|
annotations,
|
|
494
511
|
entryPoint: entryPointOf(annotations, rawName),
|
|
495
512
|
});
|
|
496
|
-
methodRanges.push({
|
|
513
|
+
methodRanges.push({
|
|
514
|
+
startLine: node.startPosition.row,
|
|
515
|
+
endLine: node.endPosition.row,
|
|
516
|
+
id,
|
|
517
|
+
typeId: owner,
|
|
518
|
+
});
|
|
497
519
|
const isHandler = annotations.some((a) => HTTP_VERBS.has(a.name.toLowerCase()));
|
|
498
520
|
if (isHandler)
|
|
499
521
|
routes.push(...decoratorRoutesOf(annotations, rawName, owner));
|
|
@@ -611,7 +633,9 @@ export const pythonConfig = {
|
|
|
611
633
|
// element type, which is what makes `row.get(...)` resolvable.
|
|
612
634
|
const left = fieldChild(node, "left");
|
|
613
635
|
const iterable = fieldChild(node, "right");
|
|
614
|
-
const element = elementTypeOf(iterable
|
|
636
|
+
const element = elementTypeOf(iterable
|
|
637
|
+
? inferExpressionType(iterable) || iterableTypeOf(iterable, locals, ownerTypeId)
|
|
638
|
+
: "");
|
|
615
639
|
if (left && element) {
|
|
616
640
|
const targets = left.type === "identifier" ? [left] : left.namedChildren;
|
|
617
641
|
for (const target of targets) {
|
|
@@ -659,7 +683,10 @@ export const pythonConfig = {
|
|
|
659
683
|
function moduleBindingOf(moduleText, alias, isNamespace) {
|
|
660
684
|
if (!moduleText)
|
|
661
685
|
return;
|
|
662
|
-
const binding = alias ??
|
|
686
|
+
const binding = alias ??
|
|
687
|
+
(isNamespace
|
|
688
|
+
? (moduleText.split(".")[0] ?? moduleText)
|
|
689
|
+
: (moduleText.split(".").pop() ?? moduleText));
|
|
663
690
|
scopeModules.set(binding, moduleText);
|
|
664
691
|
}
|
|
665
692
|
function symbolBindingOf(moduleText, importedName, alias) {
|
|
@@ -722,7 +749,12 @@ export const pythonConfig = {
|
|
|
722
749
|
const moduleNode = fieldChild(statement, "module_name") ?? relative;
|
|
723
750
|
const wildcard = childOfType(statement, "wildcard_import");
|
|
724
751
|
if (wildcard) {
|
|
725
|
-
imports.push({
|
|
752
|
+
imports.push({
|
|
753
|
+
fqn: `${moduleText}.*`,
|
|
754
|
+
simpleName: "*",
|
|
755
|
+
isStatic: false,
|
|
756
|
+
module: moduleText,
|
|
757
|
+
});
|
|
726
758
|
continue;
|
|
727
759
|
}
|
|
728
760
|
for (const nameNode of statement.namedChildren) {
|
|
@@ -884,7 +916,7 @@ export const pythonConfig = {
|
|
|
884
916
|
}
|
|
885
917
|
if (HTTP_VERBS.has(name.toLowerCase()) && ROUTE_RECEIVERS.has(rootReceiver)) {
|
|
886
918
|
const path = args[0] ? unquote(args[0]) : "";
|
|
887
|
-
const handler = args[1] ? args[1].split(".").pop() ?? "" : "";
|
|
919
|
+
const handler = args[1] ? (args[1].split(".").pop() ?? "") : "";
|
|
888
920
|
if (handler) {
|
|
889
921
|
routes.push({
|
|
890
922
|
framework: "http",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/parser/languages/python.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/parser/languages/python.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { childOfType, childrenOfType, createParser, fieldChild, loadGrammar, walk, } from "../treeSitter.js";
|
|
2
1
|
import { controlFlowOf, insideAny } from "../controlFlow.js";
|
|
3
2
|
import { DEFAULT_EXPORT_SUFFIX, moduleNodeId, resolveRelativeModule, tsModuleId, } from "../moduleId.js";
|
|
3
|
+
import { childOfType, childrenOfType, createParser, fieldChild, loadGrammar, walk, } from "../treeSitter.js";
|
|
4
4
|
/**
|
|
5
5
|
* TypeScript / JavaScript parser (TS, TSX, JS, JSX).
|
|
6
6
|
*
|
|
@@ -33,7 +33,16 @@ const TS_FLOWS = [
|
|
|
33
33
|
{ type: "binary_expression", kind: "predicate", operatorIn: ["&&", "||", "??"] },
|
|
34
34
|
];
|
|
35
35
|
const SKIP_CALL_ANCESTORS = new Set(["decorator", "import_statement"]);
|
|
36
|
-
const HTTP_DECORATORS = new Set([
|
|
36
|
+
const HTTP_DECORATORS = new Set([
|
|
37
|
+
"Get",
|
|
38
|
+
"Post",
|
|
39
|
+
"Put",
|
|
40
|
+
"Delete",
|
|
41
|
+
"Patch",
|
|
42
|
+
"Head",
|
|
43
|
+
"Options",
|
|
44
|
+
"All",
|
|
45
|
+
]);
|
|
37
46
|
const HTTP_METHODS = new Set(["get", "post", "put", "delete", "patch", "head", "options", "all"]);
|
|
38
47
|
const ROUTE_RECEIVERS = new Set([
|
|
39
48
|
"app",
|
|
@@ -118,7 +127,9 @@ export const typescriptConfig = {
|
|
|
118
127
|
const injections = [];
|
|
119
128
|
const routes = [];
|
|
120
129
|
const methodRanges = [];
|
|
121
|
-
const typeRanges = [
|
|
130
|
+
const typeRanges = [
|
|
131
|
+
{ startLine: 0, endLine: root.endPosition.row, id: moduleTypeId },
|
|
132
|
+
];
|
|
122
133
|
const fieldIds = new Set();
|
|
123
134
|
let defaultExportName;
|
|
124
135
|
// ---------------------------------------------------------------- helpers
|
|
@@ -202,9 +213,7 @@ export const typescriptConfig = {
|
|
|
202
213
|
return { name: named.name, fqn: named.fqn, arguments: args, line: node.startPosition.row };
|
|
203
214
|
}
|
|
204
215
|
function annotationsOf(decorators) {
|
|
205
|
-
return decorators
|
|
206
|
-
.map((d) => annotationOf(d))
|
|
207
|
-
.filter((a) => a !== null);
|
|
216
|
+
return decorators.map((d) => annotationOf(d)).filter((a) => a !== null);
|
|
208
217
|
}
|
|
209
218
|
function annotationString(annotation) {
|
|
210
219
|
for (const arg of annotation.arguments) {
|
|
@@ -223,7 +232,10 @@ export const typescriptConfig = {
|
|
|
223
232
|
const simple = annotation.name;
|
|
224
233
|
if (HTTP_DECORATORS.has(simple)) {
|
|
225
234
|
const path = annotationString(annotation);
|
|
226
|
-
return {
|
|
235
|
+
return {
|
|
236
|
+
kind: "http",
|
|
237
|
+
detail: `${simple.toUpperCase()} ${joinPath(controllerPath, path)}`.trim(),
|
|
238
|
+
};
|
|
227
239
|
}
|
|
228
240
|
if (simple === "MessagePattern" || simple === "EventPattern" || simple === "OnMessage") {
|
|
229
241
|
return { kind: "messaging", detail: `${simple} ${annotationString(annotation)}`.trim() };
|
|
@@ -290,7 +302,10 @@ export const typescriptConfig = {
|
|
|
290
302
|
if (param.type === "required_parameter" || param.type === "optional_parameter") {
|
|
291
303
|
const pattern = fieldChild(param, "pattern") ?? param.namedChildren[0];
|
|
292
304
|
if (pattern) {
|
|
293
|
-
out.push({
|
|
305
|
+
out.push({
|
|
306
|
+
name: pattern.text.replace(/\s+/g, " "),
|
|
307
|
+
type: annotationTypeText(fieldChild(param, "type")),
|
|
308
|
+
});
|
|
294
309
|
}
|
|
295
310
|
}
|
|
296
311
|
else if (param.type === "identifier") {
|
|
@@ -396,16 +411,19 @@ export const typescriptConfig = {
|
|
|
396
411
|
else if (member.type === "public_field_definition") {
|
|
397
412
|
visitClassField(member, memberAnnotations, id, injectable);
|
|
398
413
|
}
|
|
399
|
-
else if (member.type === "abstract_method_signature" ||
|
|
414
|
+
else if (member.type === "abstract_method_signature" ||
|
|
415
|
+
member.type === "method_signature") {
|
|
400
416
|
visitSignature(member, memberAnnotations, id, controllerPath);
|
|
401
417
|
}
|
|
402
|
-
else if (member.type === "class_declaration" ||
|
|
418
|
+
else if (member.type === "class_declaration" ||
|
|
419
|
+
member.type === "abstract_class_declaration") {
|
|
403
420
|
visitClass(member, memberAnnotations, id, true);
|
|
404
421
|
}
|
|
405
422
|
}
|
|
406
423
|
}
|
|
407
424
|
function visitClassField(node, annotations, classId, injectable) {
|
|
408
|
-
const nameNode = fieldChild(node, "name") ??
|
|
425
|
+
const nameNode = fieldChild(node, "name") ??
|
|
426
|
+
node.namedChildren.find((c) => c.type === "property_identifier");
|
|
409
427
|
if (!nameNode)
|
|
410
428
|
return;
|
|
411
429
|
const name = nameNode.text;
|
|
@@ -440,7 +458,8 @@ export const typescriptConfig = {
|
|
|
440
458
|
}
|
|
441
459
|
}
|
|
442
460
|
function visitMethod(node, annotations, classId, injectable, controllerPath) {
|
|
443
|
-
const nameNode = fieldChild(node, "name") ??
|
|
461
|
+
const nameNode = fieldChild(node, "name") ??
|
|
462
|
+
node.namedChildren.find((c) => c.type === "property_identifier");
|
|
444
463
|
if (!nameNode)
|
|
445
464
|
return;
|
|
446
465
|
const rawName = nameNode.text;
|
|
@@ -472,7 +491,8 @@ export const typescriptConfig = {
|
|
|
472
491
|
}
|
|
473
492
|
}
|
|
474
493
|
function visitSignature(node, annotations, classId, controllerPath) {
|
|
475
|
-
const nameNode = fieldChild(node, "name") ??
|
|
494
|
+
const nameNode = fieldChild(node, "name") ??
|
|
495
|
+
node.namedChildren.find((c) => c.type === "property_identifier");
|
|
476
496
|
if (!nameNode)
|
|
477
497
|
return;
|
|
478
498
|
const rawName = nameNode.text;
|
|
@@ -490,7 +510,12 @@ export const typescriptConfig = {
|
|
|
490
510
|
annotations,
|
|
491
511
|
entryPoint: entryPointOf(annotations, controllerPath, rawName),
|
|
492
512
|
});
|
|
493
|
-
methodRanges.push({
|
|
513
|
+
methodRanges.push({
|
|
514
|
+
startLine: node.startPosition.row,
|
|
515
|
+
endLine: node.endPosition.row,
|
|
516
|
+
id,
|
|
517
|
+
typeId: classId,
|
|
518
|
+
});
|
|
494
519
|
}
|
|
495
520
|
function visitCallable(options) {
|
|
496
521
|
const { name, node, paramsNode, returnTypeNode, bodyNode, annotations, ownerTypeId } = options;
|
|
@@ -510,7 +535,12 @@ export const typescriptConfig = {
|
|
|
510
535
|
annotations,
|
|
511
536
|
entryPoint: options.entryPoint,
|
|
512
537
|
});
|
|
513
|
-
methodRanges.push({
|
|
538
|
+
methodRanges.push({
|
|
539
|
+
startLine: node.startPosition.row,
|
|
540
|
+
endLine: node.endPosition.row,
|
|
541
|
+
id,
|
|
542
|
+
typeId: ownerTypeId,
|
|
543
|
+
});
|
|
514
544
|
const locals = new Map();
|
|
515
545
|
for (const param of params) {
|
|
516
546
|
if (param.type)
|
|
@@ -783,7 +813,13 @@ export const typescriptConfig = {
|
|
|
783
813
|
const moduleCandidate = aliasMatch ? `?suffix:${candidateModule}` : candidateModule;
|
|
784
814
|
const clause = childOfType(node, "import_clause");
|
|
785
815
|
if (!clause) {
|
|
786
|
-
addImport({
|
|
816
|
+
addImport({
|
|
817
|
+
fqn: specifier,
|
|
818
|
+
simpleName: specifier,
|
|
819
|
+
isStatic: false,
|
|
820
|
+
module: candidateModule,
|
|
821
|
+
external,
|
|
822
|
+
});
|
|
787
823
|
return;
|
|
788
824
|
}
|
|
789
825
|
for (const child of clause.namedChildren) {
|
|
@@ -1003,7 +1039,7 @@ export const typescriptConfig = {
|
|
|
1003
1039
|
if (!property)
|
|
1004
1040
|
return;
|
|
1005
1041
|
let receiver = object ? object.text : null;
|
|
1006
|
-
if (receiver
|
|
1042
|
+
if (receiver?.endsWith("!"))
|
|
1007
1043
|
receiver = receiver.slice(0, -1);
|
|
1008
1044
|
const name = property.text;
|
|
1009
1045
|
callSites.push({
|
|
@@ -1034,7 +1070,9 @@ export const typescriptConfig = {
|
|
|
1034
1070
|
? "this"
|
|
1035
1071
|
: ""
|
|
1036
1072
|
: "";
|
|
1037
|
-
if (HTTP_METHODS.has(name.toLowerCase()) &&
|
|
1073
|
+
if (HTTP_METHODS.has(name.toLowerCase()) &&
|
|
1074
|
+
ROUTE_RECEIVERS.has(rootReceiver) &&
|
|
1075
|
+
args.length >= 2) {
|
|
1038
1076
|
const path = stringContent(args[0] ?? "");
|
|
1039
1077
|
const handlerNode = argsNode?.namedChildren[1] ?? null;
|
|
1040
1078
|
// Only a plain reference names a handler; anything else (arrow,
|
|
@@ -1053,7 +1091,8 @@ export const typescriptConfig = {
|
|
|
1053
1091
|
visitCallable({
|
|
1054
1092
|
name: handler,
|
|
1055
1093
|
node: handlerNode,
|
|
1056
|
-
paramsNode: fieldChild(handlerNode, "parameters") ??
|
|
1094
|
+
paramsNode: fieldChild(handlerNode, "parameters") ??
|
|
1095
|
+
childOfType(handlerNode, "formal_parameters"),
|
|
1057
1096
|
returnTypeNode: fieldChild(handlerNode, "return_type"),
|
|
1058
1097
|
bodyNode: fieldChild(handlerNode, "body"),
|
|
1059
1098
|
annotations: [],
|