From 3cc705fb832c4c71eb67356d14d7dc3e9ee139d7 Mon Sep 17 00:00:00 2001 From: Hasegawa-Yukihiro Date: Fri, 27 Dec 2024 01:17:15 +0900 Subject: [PATCH 1/3] fix: doesn't report on shorthand property --- packages/eslint-plugin/src/rules/no-deprecated.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/eslint-plugin/src/rules/no-deprecated.ts b/packages/eslint-plugin/src/rules/no-deprecated.ts index 7fb966a249b0..5812bec7ed9d 100644 --- a/packages/eslint-plugin/src/rules/no-deprecated.ts +++ b/packages/eslint-plugin/src/rules/no-deprecated.ts @@ -312,9 +312,17 @@ export default createRule({ const property = services .getTypeAtLocation(node.parent.parent) .getProperty(node.name); - const symbol = services.getSymbolAtLocation(node); - return getJsDocDeprecation(property) ?? getJsDocDeprecation(symbol); + const propertySymbol = services.getSymbolAtLocation(node); + const valueSymbol = checker.getShorthandAssignmentValueSymbol( + propertySymbol?.valueDeclaration, + ); + return ( + getJsDocDeprecation(property) ?? + getJsDocDeprecation(propertySymbol) ?? + getJsDocDeprecation(valueSymbol) + ); } + return searchForDeprecationInAliasesChain( services.getSymbolAtLocation(node), true, From 424b6e14136fd915eb7f637e4b80cf0e9ceb4832 Mon Sep 17 00:00:00 2001 From: Hasegawa-Yukihiro Date: Fri, 27 Dec 2024 01:17:27 +0900 Subject: [PATCH 2/3] test: add test --- .../tests/rules/no-deprecated.test.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts index 39f3947891ef..908080846604 100644 --- a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts +++ b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts @@ -711,6 +711,25 @@ ruleTester.run('no-deprecated', rule, { }, ], }, + { + code: ` + /** @deprecated */ + declare const test: string; + const bar = { + test, + }; + `, + errors: [ + { + column: 11, + data: { name: 'test' }, + endColumn: 15, + endLine: 5, + line: 5, + messageId: 'deprecated', + }, + ], + }, { code: ` /** @deprecated */ const a = { b: 1 }; From bdfc00075fc3209bd99d73ea3843a0f6e195f034 Mon Sep 17 00:00:00 2001 From: Hasegawa-Yukihiro Date: Tue, 31 Dec 2024 11:04:07 +0900 Subject: [PATCH 3/3] test: add valid test --- packages/eslint-plugin/tests/rules/no-deprecated.test.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts index 908080846604..764177e56cf9 100644 --- a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts +++ b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts @@ -312,6 +312,10 @@ ruleTester.run('no-deprecated', rule, { } ; `, + ` + declare const test: string; + const bar = { test }; + `, ], invalid: [ {