From d3fb18f04c4f73406ef2608ed2e24c8f3efb2628 Mon Sep 17 00:00:00 2001 From: komcal Date: Wed, 16 Oct 2019 00:11:16 +0700 Subject: [PATCH] fix(unbound-method): check special type when parent is CallExpression --- packages/eslint-plugin/src/rules/unbound-method.ts | 3 +++ packages/eslint-plugin/tests/rules/unbound-method.test.ts | 3 +++ 2 files changed, 6 insertions(+) diff --git a/packages/eslint-plugin/src/rules/unbound-method.ts b/packages/eslint-plugin/src/rules/unbound-method.ts index 46bbe779c66..b5e8e0cc65b 100644 --- a/packages/eslint-plugin/src/rules/unbound-method.ts +++ b/packages/eslint-plugin/src/rules/unbound-method.ts @@ -109,6 +109,9 @@ function isSafeUse(node: TSESTree.Node): boolean { return true; case AST_NODE_TYPES.CallExpression: + if (node.type === AST_NODE_TYPES.MemberExpression) { + return true; + } return parent.callee === node; case AST_NODE_TYPES.ConditionalExpression: diff --git a/packages/eslint-plugin/tests/rules/unbound-method.test.ts b/packages/eslint-plugin/tests/rules/unbound-method.test.ts index 520b28fc1d1..59513643c00 100644 --- a/packages/eslint-plugin/tests/rules/unbound-method.test.ts +++ b/packages/eslint-plugin/tests/rules/unbound-method.test.ts @@ -15,6 +15,9 @@ const ruleTester = new RuleTester({ ruleTester.run('unbound-method', rule, { valid: [ ` +new Promise(() => {}).then(console.log) + `, + ` class ContainsMethods { bound?: () => void; unbound?(): void;