Skip to content
This repository was archived by the owner on Jan 19, 2019. It is now read-only.

Commit 4fb4f0e

Browse files
committed
Fix: wrong reference on TSQualifiedName (fixes #550)
1 parent 9dd2b21 commit 4fb4f0e

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

Diff for: analyze-scope.js

+9
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,15 @@ class Referencer extends OriginalReferencer {
384384
}
385385
}
386386

387+
/**
388+
* Create reference objects for the object part. (This is `obj.prop`)
389+
* @param {TSTypeQuery} node The TSTypeQuery node to visit.
390+
* @returns {void}
391+
*/
392+
TSQualifiedName(node) {
393+
this.visit(node.left);
394+
}
395+
387396
/**
388397
* Create reference objects for the references in computed keys.
389398
* @param {TSPropertySignature} node The TSPropertySignature node to visit.

Diff for: tests/lib/scope-analysis.js

+19
Original file line numberDiff line numberDiff line change
@@ -351,4 +351,23 @@ export default class ListModalStore {
351351

352352
expect(messages).toStrictEqual([]);
353353
});
354+
355+
test("https://github.com/eslint/typescript-eslint-parser/issues/550", () => {
356+
const code = `
357+
function test(file: Blob) {
358+
const slice: typeof file.slice =
359+
file.slice || (file as any).webkitSlice || (file as any).mozSlice
360+
return slice
361+
}
362+
`;
363+
const config = {
364+
parser: "typescript-eslint-parser",
365+
rules: {
366+
"no-use-before-define": "error"
367+
}
368+
};
369+
const messages = linter.verify(code, config, { filename: "issue.ts" });
370+
371+
expect(messages).toStrictEqual([]);
372+
});
354373
});

0 commit comments

Comments
 (0)