Skip to content

Commit ac5dff2

Browse files
committed
Make findTarget return VariableDeclarator
This is in preparation for inferring types for const/let/var.
1 parent e11c1ab commit ac5dff2

File tree

3 files changed

+24
-2
lines changed

3 files changed

+24
-2
lines changed

lib/infer/finders.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ function findTarget(path) {
2222
path = path.declaration;
2323
}
2424

25-
// var x = TARGET;
25+
// var x = init;
2626
if (t.isVariableDeclaration(path)) {
27-
return path.declarations[0].init;
27+
return path.declarations[0];
2828
}
2929

3030
// foo.x = TARGET

lib/infer/params.js

+6
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,12 @@ function inferParams() {
162162
return shouldSkipInference(function inferParams(comment) {
163163
var node = finders.findTarget(comment.context.ast);
164164

165+
// In case of `/** */ var x = function () {}` findTarget returns
166+
// the declarator.
167+
if (t.isVariableDeclarator(node)) {
168+
node = node.init;
169+
}
170+
165171
if (!t.isFunction(node)) {
166172
return comment;
167173
}

test/lib/infer/params.js

+16
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,22 @@ test('inferParams', function (t) {
2121
function f(x) {}
2222
}).params, [{lineNumber: 3, name: 'x', title: 'param'}]);
2323

24+
t.deepEqual(evaluate(function () {
25+
/** Test */
26+
var f = function (x) {};
27+
}).params, [{lineNumber: 3, name: 'x', title: 'param'}]);
28+
29+
t.deepEqual(evaluate('/** Test */ var f = (x) => {}').params,
30+
[{lineNumber: 1, name: 'x', title: 'param'}]);
31+
32+
t.deepEqual(evaluate(function () {
33+
var x = 1,
34+
g = function (y) {},
35+
/** Test */
36+
f = function (x) {};
37+
}).params, [{lineNumber: 5, name: 'x', title: 'param'}]);
38+
39+
2440
t.deepEqual(evaluate('/** Test */ export function f(x) {}').params,
2541
[{lineNumber: 1, name: 'x', title: 'param'}]);
2642

0 commit comments

Comments
 (0)