@typescript-eslint/eslint-plugin 8.0.0-alpha.5 → 8.0.0-alpha.50

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.
Files changed (281) hide show
  1. package/dist/configs/all.js +7 -6
  2. package/dist/configs/all.js.map +1 -1
  3. package/dist/configs/disable-type-checked.js +3 -3
  4. package/dist/configs/disable-type-checked.js.map +1 -1
  5. package/dist/configs/recommended-type-checked-only.js +6 -0
  6. package/dist/configs/recommended-type-checked-only.js.map +1 -1
  7. package/dist/configs/recommended-type-checked.js +13 -2
  8. package/dist/configs/recommended-type-checked.js.map +1 -1
  9. package/dist/configs/recommended.js +7 -2
  10. package/dist/configs/recommended.js.map +1 -1
  11. package/dist/configs/strict-type-checked-only.js +7 -2
  12. package/dist/configs/strict-type-checked-only.js.map +1 -1
  13. package/dist/configs/strict-type-checked.js +14 -5
  14. package/dist/configs/strict-type-checked.js.map +1 -1
  15. package/dist/configs/strict.js +7 -3
  16. package/dist/configs/strict.js.map +1 -1
  17. package/dist/configs/stylistic-type-checked-only.js +3 -0
  18. package/dist/configs/stylistic-type-checked-only.js.map +1 -1
  19. package/dist/configs/stylistic-type-checked.js +3 -2
  20. package/dist/configs/stylistic-type-checked.js.map +1 -1
  21. package/dist/configs/stylistic.js +0 -2
  22. package/dist/configs/stylistic.js.map +1 -1
  23. package/dist/rules/adjacent-overload-signatures.js +2 -6
  24. package/dist/rules/adjacent-overload-signatures.js.map +1 -1
  25. package/dist/rules/array-type.js +14 -5
  26. package/dist/rules/array-type.js.map +1 -1
  27. package/dist/rules/class-literal-property-style.js +16 -16
  28. package/dist/rules/class-literal-property-style.js.map +1 -1
  29. package/dist/rules/class-methods-use-this.js.map +1 -1
  30. package/dist/rules/consistent-type-assertions.js +5 -19
  31. package/dist/rules/consistent-type-assertions.js.map +1 -1
  32. package/dist/rules/consistent-type-definitions.js +1 -1
  33. package/dist/rules/consistent-type-definitions.js.map +1 -1
  34. package/dist/rules/consistent-type-imports.js +10 -11
  35. package/dist/rules/consistent-type-imports.js.map +1 -1
  36. package/dist/rules/default-param-last.js +6 -1
  37. package/dist/rules/default-param-last.js.map +1 -1
  38. package/dist/rules/dot-notation.js +8 -1
  39. package/dist/rules/dot-notation.js.map +1 -1
  40. package/dist/rules/enum-utils/shared.js +3 -4
  41. package/dist/rules/enum-utils/shared.js.map +1 -1
  42. package/dist/rules/explicit-member-accessibility.js +49 -37
  43. package/dist/rules/explicit-member-accessibility.js.map +1 -1
  44. package/dist/rules/index.js +14 -6
  45. package/dist/rules/index.js.map +1 -1
  46. package/dist/rules/init-declarations.js +57 -1
  47. package/dist/rules/init-declarations.js.map +1 -1
  48. package/dist/rules/member-ordering.js +8 -2
  49. package/dist/rules/member-ordering.js.map +1 -1
  50. package/dist/rules/method-signature-style.js +1 -3
  51. package/dist/rules/method-signature-style.js.map +1 -1
  52. package/dist/rules/naming-convention-utils/parse-options.js +2 -5
  53. package/dist/rules/naming-convention-utils/parse-options.js.map +1 -1
  54. package/dist/rules/naming-convention-utils/shared.js +3 -4
  55. package/dist/rules/naming-convention-utils/shared.js.map +1 -1
  56. package/dist/rules/naming-convention-utils/validator.js +1 -2
  57. package/dist/rules/naming-convention-utils/validator.js.map +1 -1
  58. package/dist/rules/naming-convention.js +3 -1
  59. package/dist/rules/naming-convention.js.map +1 -1
  60. package/dist/rules/no-array-delete.js +1 -1
  61. package/dist/rules/no-array-delete.js.map +1 -1
  62. package/dist/rules/no-base-to-string.js +1 -1
  63. package/dist/rules/no-base-to-string.js.map +1 -1
  64. package/dist/rules/no-duplicate-type-constituents.js +1 -1
  65. package/dist/rules/no-duplicate-type-constituents.js.map +1 -1
  66. package/dist/rules/no-dynamic-delete.js +8 -40
  67. package/dist/rules/no-dynamic-delete.js.map +1 -1
  68. package/dist/rules/no-empty-interface.js +2 -1
  69. package/dist/rules/no-empty-interface.js.map +1 -1
  70. package/dist/rules/no-empty-object-type.js +141 -0
  71. package/dist/rules/no-empty-object-type.js.map +1 -0
  72. package/dist/rules/no-extraneous-class.js +11 -3
  73. package/dist/rules/no-extraneous-class.js.map +1 -1
  74. package/dist/rules/no-floating-promises.js +91 -55
  75. package/dist/rules/no-floating-promises.js.map +1 -1
  76. package/dist/rules/no-implied-eval.js +6 -24
  77. package/dist/rules/no-implied-eval.js.map +1 -1
  78. package/dist/rules/no-inferrable-types.js +1 -2
  79. package/dist/rules/no-inferrable-types.js.map +1 -1
  80. package/dist/rules/no-invalid-this.js +6 -0
  81. package/dist/rules/no-invalid-this.js.map +1 -1
  82. package/dist/rules/no-magic-numbers.js +32 -1
  83. package/dist/rules/no-magic-numbers.js.map +1 -1
  84. package/dist/rules/no-misused-new.js +4 -3
  85. package/dist/rules/no-misused-new.js.map +1 -1
  86. package/dist/rules/no-mixed-enums.js +6 -9
  87. package/dist/rules/no-mixed-enums.js.map +1 -1
  88. package/dist/rules/no-non-null-assertion.js +12 -14
  89. package/dist/rules/no-non-null-assertion.js.map +1 -1
  90. package/dist/rules/no-require-imports.js +13 -3
  91. package/dist/rules/no-require-imports.js.map +1 -1
  92. package/dist/rules/no-restricted-imports.js +5 -6
  93. package/dist/rules/no-restricted-imports.js.map +1 -1
  94. package/dist/rules/{ban-types.js → no-restricted-types.js} +17 -91
  95. package/dist/rules/no-restricted-types.js.map +1 -0
  96. package/dist/rules/no-shadow.js +4 -9
  97. package/dist/rules/no-shadow.js.map +1 -1
  98. package/dist/rules/no-unnecessary-condition.js +8 -6
  99. package/dist/rules/no-unnecessary-condition.js.map +1 -1
  100. package/dist/rules/no-unnecessary-parameter-property-assignment.js +151 -0
  101. package/dist/rules/no-unnecessary-parameter-property-assignment.js.map +1 -0
  102. package/dist/rules/no-unnecessary-qualifier.js.map +1 -1
  103. package/dist/rules/no-unnecessary-template-expression.js +223 -0
  104. package/dist/rules/no-unnecessary-template-expression.js.map +1 -0
  105. package/dist/rules/no-unnecessary-type-assertion.js +15 -13
  106. package/dist/rules/no-unnecessary-type-assertion.js.map +1 -1
  107. package/dist/rules/no-unnecessary-type-parameters.js +308 -0
  108. package/dist/rules/no-unnecessary-type-parameters.js.map +1 -0
  109. package/dist/rules/no-unsafe-argument.js +4 -2
  110. package/dist/rules/no-unsafe-argument.js.map +1 -1
  111. package/dist/rules/no-unsafe-assignment.js +24 -9
  112. package/dist/rules/no-unsafe-assignment.js.map +1 -1
  113. package/dist/rules/no-unsafe-call.js +5 -1
  114. package/dist/rules/no-unsafe-call.js.map +1 -1
  115. package/dist/rules/no-unsafe-enum-comparison.js +1 -5
  116. package/dist/rules/no-unsafe-enum-comparison.js.map +1 -1
  117. package/dist/rules/no-unsafe-function-type.js +47 -0
  118. package/dist/rules/no-unsafe-function-type.js.map +1 -0
  119. package/dist/rules/no-unsafe-member-access.js +10 -4
  120. package/dist/rules/no-unsafe-member-access.js.map +1 -1
  121. package/dist/rules/no-unsafe-return.js +9 -3
  122. package/dist/rules/no-unsafe-return.js.map +1 -1
  123. package/dist/rules/no-unsafe-unary-minus.js +1 -0
  124. package/dist/rules/no-unsafe-unary-minus.js.map +1 -1
  125. package/dist/rules/no-unused-expressions.js +1 -0
  126. package/dist/rules/no-unused-expressions.js.map +1 -1
  127. package/dist/rules/no-unused-vars.js +198 -79
  128. package/dist/rules/no-unused-vars.js.map +1 -1
  129. package/dist/rules/no-use-before-define.js +2 -16
  130. package/dist/rules/no-use-before-define.js.map +1 -1
  131. package/dist/rules/no-useless-constructor.js +1 -3
  132. package/dist/rules/no-useless-constructor.js.map +1 -1
  133. package/dist/rules/no-var-requires.js +2 -1
  134. package/dist/rules/no-var-requires.js.map +1 -1
  135. package/dist/rules/no-wrapper-object-types.js +61 -0
  136. package/dist/rules/no-wrapper-object-types.js.map +1 -0
  137. package/dist/rules/only-throw-error.js +1 -1
  138. package/dist/rules/only-throw-error.js.map +1 -1
  139. package/dist/rules/prefer-as-const.js +1 -1
  140. package/dist/rules/prefer-as-const.js.map +1 -1
  141. package/dist/rules/prefer-destructuring.js +3 -1
  142. package/dist/rules/prefer-destructuring.js.map +1 -1
  143. package/dist/rules/prefer-find.js +2 -1
  144. package/dist/rules/prefer-find.js.map +1 -1
  145. package/dist/rules/prefer-includes.js +1 -1
  146. package/dist/rules/prefer-includes.js.map +1 -1
  147. package/dist/rules/prefer-literal-enum-member.js +43 -2
  148. package/dist/rules/prefer-literal-enum-member.js.map +1 -1
  149. package/dist/rules/prefer-namespace-keyword.js +1 -1
  150. package/dist/rules/prefer-namespace-keyword.js.map +1 -1
  151. package/dist/rules/prefer-nullish-coalescing.js +8 -6
  152. package/dist/rules/prefer-nullish-coalescing.js.map +1 -1
  153. package/dist/rules/prefer-optional-chain-utils/analyzeChain.js +32 -37
  154. package/dist/rules/prefer-optional-chain-utils/analyzeChain.js.map +1 -1
  155. package/dist/rules/prefer-optional-chain-utils/checkNullishAndReport.js +1 -2
  156. package/dist/rules/prefer-optional-chain-utils/checkNullishAndReport.js.map +1 -1
  157. package/dist/rules/prefer-optional-chain-utils/compareNodes.js +1 -2
  158. package/dist/rules/prefer-optional-chain-utils/compareNodes.js.map +1 -1
  159. package/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js +6 -11
  160. package/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js.map +1 -1
  161. package/dist/rules/prefer-promise-reject-errors.js +1 -1
  162. package/dist/rules/prefer-promise-reject-errors.js.map +1 -1
  163. package/dist/rules/prefer-readonly.js +24 -12
  164. package/dist/rules/prefer-readonly.js.map +1 -1
  165. package/dist/rules/prefer-regexp-exec.js +15 -6
  166. package/dist/rules/prefer-regexp-exec.js.map +1 -1
  167. package/dist/rules/prefer-string-starts-ends-with.js.map +1 -1
  168. package/dist/rules/prefer-ts-expect-error.js +2 -1
  169. package/dist/rules/prefer-ts-expect-error.js.map +1 -1
  170. package/dist/rules/require-await.js +1 -1
  171. package/dist/rules/require-await.js.map +1 -1
  172. package/dist/rules/restrict-template-expressions.js +3 -3
  173. package/dist/rules/restrict-template-expressions.js.map +1 -1
  174. package/dist/rules/return-await.js +167 -86
  175. package/dist/rules/return-await.js.map +1 -1
  176. package/dist/rules/sort-type-constituents.js +23 -1
  177. package/dist/rules/sort-type-constituents.js.map +1 -1
  178. package/dist/rules/strict-boolean-expressions.js +102 -4
  179. package/dist/rules/strict-boolean-expressions.js.map +1 -1
  180. package/dist/rules/switch-exhaustiveness-check.js +7 -9
  181. package/dist/rules/switch-exhaustiveness-check.js.map +1 -1
  182. package/dist/rules/unified-signatures.js +3 -1
  183. package/dist/rules/unified-signatures.js.map +1 -1
  184. package/dist/util/astUtils.js +2 -3
  185. package/dist/util/astUtils.js.map +1 -1
  186. package/dist/util/collectUnusedVariables.js +110 -73
  187. package/dist/util/collectUnusedVariables.js.map +1 -1
  188. package/dist/util/createRule.js.map +1 -1
  189. package/dist/util/escapeRegExp.js +1 -2
  190. package/dist/util/escapeRegExp.js.map +1 -1
  191. package/dist/util/explicitReturnTypeUtils.js +11 -7
  192. package/dist/util/explicitReturnTypeUtils.js.map +1 -1
  193. package/dist/util/getESLintCoreRule.js +2 -2
  194. package/dist/util/getESLintCoreRule.js.map +1 -1
  195. package/dist/util/getForStatementHeadLoc.js +1 -2
  196. package/dist/util/getForStatementHeadLoc.js.map +1 -1
  197. package/dist/util/getFunctionHeadLoc.js +3 -4
  198. package/dist/util/getFunctionHeadLoc.js.map +1 -1
  199. package/dist/util/getMemberHeadLoc.js +80 -0
  200. package/dist/util/getMemberHeadLoc.js.map +1 -0
  201. package/dist/util/getOperatorPrecedence.js +5 -5
  202. package/dist/util/getOperatorPrecedence.js.map +1 -1
  203. package/dist/util/getStaticStringValue.js +1 -2
  204. package/dist/util/getStaticStringValue.js.map +1 -1
  205. package/dist/util/getStringLength.js +1 -2
  206. package/dist/util/getStringLength.js.map +1 -1
  207. package/dist/util/getTextWithParentheses.js +17 -0
  208. package/dist/util/getTextWithParentheses.js.map +1 -0
  209. package/dist/util/getThisExpression.js +1 -2
  210. package/dist/util/getThisExpression.js.map +1 -1
  211. package/dist/util/getWrappedCode.js +1 -2
  212. package/dist/util/getWrappedCode.js.map +1 -1
  213. package/dist/util/getWrappingFixer.js +2 -3
  214. package/dist/util/getWrappingFixer.js.map +1 -1
  215. package/dist/util/index.js +2 -0
  216. package/dist/util/index.js.map +1 -1
  217. package/dist/util/isAssignee.js +1 -2
  218. package/dist/util/isAssignee.js.map +1 -1
  219. package/dist/util/isNodeEqual.js +1 -2
  220. package/dist/util/isNodeEqual.js.map +1 -1
  221. package/dist/util/isNullLiteral.js +1 -2
  222. package/dist/util/isNullLiteral.js.map +1 -1
  223. package/dist/util/isTypeImport.js +22 -0
  224. package/dist/util/isTypeImport.js.map +1 -0
  225. package/dist/util/isUndefinedIdentifier.js +1 -2
  226. package/dist/util/isUndefinedIdentifier.js.map +1 -1
  227. package/dist/util/misc.js +14 -14
  228. package/dist/util/misc.js.map +1 -1
  229. package/dist/util/objectIterators.js +3 -4
  230. package/dist/util/objectIterators.js.map +1 -1
  231. package/dist/util/referenceContainsTypeQuery.js +20 -0
  232. package/dist/util/referenceContainsTypeQuery.js.map +1 -0
  233. package/dist/util/scopeUtils.js +11 -0
  234. package/dist/util/scopeUtils.js.map +1 -0
  235. package/docs/rules/array-type.mdx +4 -1
  236. package/docs/rules/ban-types.md +22 -0
  237. package/docs/rules/class-methods-use-this.mdx +1 -1
  238. package/docs/rules/consistent-indexed-object-style.mdx +1 -1
  239. package/docs/rules/consistent-type-imports.mdx +1 -1
  240. package/docs/rules/naming-convention.mdx +16 -0
  241. package/docs/rules/no-base-to-string.mdx +1 -1
  242. package/docs/rules/no-duplicate-imports.mdx +1 -1
  243. package/docs/rules/no-dynamic-delete.mdx +12 -7
  244. package/docs/rules/no-empty-interface.mdx +10 -0
  245. package/docs/rules/no-empty-object-type.mdx +145 -0
  246. package/docs/rules/no-extraneous-class.mdx +6 -0
  247. package/docs/rules/no-floating-promises.mdx +148 -4
  248. package/docs/rules/no-import-type-side-effects.mdx +1 -1
  249. package/docs/rules/no-misused-promises.mdx +18 -20
  250. package/docs/rules/no-require-imports.mdx +28 -1
  251. package/docs/rules/no-restricted-types.mdx +71 -0
  252. package/docs/rules/no-type-alias.mdx +1 -1
  253. package/docs/rules/no-unnecessary-boolean-literal-compare.mdx +12 -12
  254. package/docs/rules/no-unnecessary-parameter-property-assignment.mdx +42 -0
  255. package/docs/rules/no-unnecessary-template-expression.mdx +85 -0
  256. package/docs/rules/no-unnecessary-type-parameters.mdx +115 -0
  257. package/docs/rules/no-unsafe-function-type.mdx +63 -0
  258. package/docs/rules/no-unused-expressions.mdx +41 -1
  259. package/docs/rules/no-unused-vars.mdx +5 -0
  260. package/docs/rules/no-useless-template-literals.mdx +3 -59
  261. package/docs/rules/no-var-requires.mdx +6 -0
  262. package/docs/rules/no-wrapper-object-types.mdx +75 -0
  263. package/docs/rules/only-throw-error.mdx +7 -0
  264. package/docs/rules/prefer-readonly-parameter-types.mdx +10 -4
  265. package/docs/rules/prefer-ts-expect-error.mdx +10 -0
  266. package/docs/rules/require-await.mdx +2 -2
  267. package/docs/rules/restrict-template-expressions.mdx +1 -1
  268. package/docs/rules/return-await.mdx +119 -23
  269. package/docs/rules/sort-type-constituents.mdx +29 -9
  270. package/docs/rules/sort-type-union-intersection-members.mdx +12 -0
  271. package/docs/rules/strict-boolean-expressions.mdx +6 -0
  272. package/docs/rules/unbound-method.mdx +3 -2
  273. package/package.json +14 -19
  274. package/rules.d.ts +34 -3
  275. package/dist/rules/ban-types.js.map +0 -1
  276. package/dist/rules/no-throw-literal.js +0 -97
  277. package/dist/rules/no-throw-literal.js.map +0 -1
  278. package/dist/rules/no-useless-template-literals.js +0 -153
  279. package/dist/rules/no-useless-template-literals.js.map +0 -1
  280. package/docs/rules/ban-types.mdx +0 -138
  281. package/docs/rules/no-throw-literal.mdx +0 -25
@@ -26,6 +26,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  const utils_1 = require("@typescript-eslint/utils");
27
27
  const tsutils = __importStar(require("ts-api-utils"));
28
28
  const util_1 = require("../util");
29
+ function createDataType(type) {
30
+ const isErrorType = tsutils.isIntrinsicErrorType(type);
31
+ return isErrorType ? '`error` typed' : '`any`';
32
+ }
29
33
  exports.default = (0, util_1.createRule)({
30
34
  name: 'no-unsafe-member-access',
31
35
  meta: {
@@ -36,12 +40,12 @@ exports.default = (0, util_1.createRule)({
36
40
  requiresTypeChecking: true,
37
41
  },
38
42
  messages: {
39
- unsafeMemberExpression: 'Unsafe member access {{property}} on an `any` value.',
43
+ unsafeMemberExpression: 'Unsafe member access {{property}} on an {{type}} value.',
40
44
  unsafeThisMemberExpression: [
41
45
  'Unsafe member access {{property}} on an `any` value. `this` is typed as `any`.',
42
46
  'You can try to fix this by turning on the `noImplicitThis` compiler option, or adding a `this` parameter to the function.',
43
47
  ].join('\n'),
44
- unsafeComputedMemberAccess: 'Computed name {{property}} resolves to an any value.',
48
+ unsafeComputedMemberAccess: 'Computed name {{property}} resolves to an {{type}} value.',
45
49
  },
46
50
  schema: [],
47
51
  },
@@ -84,14 +88,15 @@ exports.default = (0, util_1.createRule)({
84
88
  messageId,
85
89
  data: {
86
90
  property: node.computed ? `[${propertyName}]` : `.${propertyName}`,
91
+ type: createDataType(type),
87
92
  },
88
93
  });
89
94
  }
90
95
  return state;
91
96
  }
92
97
  return {
93
- // ignore MemberExpression if it's parent is TSClassImplements or TSInterfaceHeritage
94
- ':not(TSClassImplements, TSInterfaceHeritage) > MemberExpression': checkMemberExpression,
98
+ // ignore MemberExpressions with ancestors of type `TSClassImplements` or `TSInterfaceHeritage`
99
+ 'MemberExpression:not(TSClassImplements MemberExpression, TSInterfaceHeritage MemberExpression)': checkMemberExpression,
95
100
  'MemberExpression[computed = true] > *.property'(node) {
96
101
  if (
97
102
  // x[1]
@@ -111,6 +116,7 @@ exports.default = (0, util_1.createRule)({
111
116
  messageId: 'unsafeComputedMemberAccess',
112
117
  data: {
113
118
  property: `[${propertyName}]`,
119
+ type: createDataType(type),
114
120
  },
115
121
  });
116
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"no-unsafe-member-access.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-member-access.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-unsafe-member-access.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-member-access.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,7 @@ exports.default = (0, util_1.createRule)({
37
37
  requiresTypeChecking: true,
38
38
  },
39
39
  messages: {
40
- unsafeReturn: 'Unsafe return of an `{{type}}` typed value.',
40
+ unsafeReturn: 'Unsafe return of an {{type}} typed value.',
41
41
  unsafeReturnThis: [
42
42
  'Unsafe return of an `{{type}}` typed value. `this` is typed as `any`.',
43
43
  'You can try to fix this by turning on the `noImplicitThis` compiler option, or adding a `this` parameter to the function.',
@@ -112,6 +112,7 @@ exports.default = (0, util_1.createRule)({
112
112
  }
113
113
  }
114
114
  let messageId = 'unsafeReturn';
115
+ const isErrorType = tsutils.isIntrinsicErrorType(returnNodeType);
115
116
  if (!isNoImplicitThis) {
116
117
  // `return this`
117
118
  const thisExpression = (0, util_1.getThisExpression)(returnNode);
@@ -125,11 +126,16 @@ exports.default = (0, util_1.createRule)({
125
126
  node: reportingNode,
126
127
  messageId,
127
128
  data: {
128
- type: anyType === util_1.AnyType.Any ? 'any' : 'any[]',
129
+ type: isErrorType
130
+ ? 'error'
131
+ : anyType === util_1.AnyType.Any
132
+ ? '`any`'
133
+ : '`any[]`',
129
134
  },
130
135
  });
131
136
  }
132
- for (const signature of functionType.getCallSignatures()) {
137
+ const signature = functionType.getCallSignatures().at(0);
138
+ if (signature) {
133
139
  const functionReturnType = signature.getReturnType();
134
140
  const result = (0, util_1.isUnsafeAssignment)(returnNodeType, functionReturnType, checker, returnNode);
135
141
  if (!result) {
@@ -1 +1 @@
1
- {"version":3,"file":"no-unsafe-return.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-return.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-unsafe-return.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-return.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ exports.default = util.createRule({
32
32
  type: 'problem',
33
33
  docs: {
34
34
  description: 'Require unary negation to take a number',
35
+ recommended: 'recommended',
35
36
  requiresTypeChecking: true,
36
37
  },
37
38
  messages: {
@@ -1 +1 @@
1
- {"version":3,"file":"no-unsafe-unary-minus.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-unary-minus.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwC;AACxC,+CAAiC;AAEjC,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,yCAAyC;YACtD,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,UAAU,EACR,6FAA6F;SAChG;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,eAAe,CAAC,IAAI;gBAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;oBAC1B,OAAO;gBACT,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBACjD,MAAM,OAAO,GAAG,IAAI,CAAC,4BAA4B,CAC/C,QAAQ,EACR,IAAI,CAAC,QAAQ,CACd,CAAC;gBACF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBAClD,IACE,OAAO;qBACJ,cAAc,CAAC,OAAO,CAAC;qBACvB,IAAI,CACH,IAAI,CAAC,EAAE,CACL,CAAC,OAAO,CAAC,aAAa,CACpB,IAAI,EACJ,EAAE,CAAC,SAAS,CAAC,GAAG;oBACd,EAAE,CAAC,SAAS,CAAC,KAAK;oBAClB,EAAE,CAAC,SAAS,CAAC,UAAU;oBACvB,EAAE,CAAC,SAAS,CAAC,UAAU,CAC1B,CACJ,EACH,CAAC;oBACD,OAAO,CAAC,MAAM,CAAC;wBACb,SAAS,EAAE,YAAY;wBACvB,IAAI;wBACJ,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;qBAC9C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"no-unsafe-unary-minus.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-unary-minus.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwC;AACxC,+CAAiC;AAEjC,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,yCAAyC;YACtD,WAAW,EAAE,aAAa;YAC1B,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,UAAU,EACR,6FAA6F;SAChG;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,eAAe,CAAC,IAAI;gBAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;oBAC1B,OAAO;gBACT,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBACjD,MAAM,OAAO,GAAG,IAAI,CAAC,4BAA4B,CAC/C,QAAQ,EACR,IAAI,CAAC,QAAQ,CACd,CAAC;gBACF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBAClD,IACE,OAAO;qBACJ,cAAc,CAAC,OAAO,CAAC;qBACvB,IAAI,CACH,IAAI,CAAC,EAAE,CACL,CAAC,OAAO,CAAC,aAAa,CACpB,IAAI,EACJ,EAAE,CAAC,SAAS,CAAC,GAAG;oBACd,EAAE,CAAC,SAAS,CAAC,KAAK;oBAClB,EAAE,CAAC,SAAS,CAAC,UAAU;oBACvB,EAAE,CAAC,SAAS,CAAC,UAAU,CAC1B,CACJ,EACH,CAAC;oBACD,OAAO,CAAC,MAAM,CAAC;wBACb,SAAS,EAAE,YAAY;wBACvB,IAAI;wBACJ,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;qBAC9C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -11,6 +11,7 @@ exports.default = (0, util_1.createRule)({
11
11
  docs: {
12
12
  description: 'Disallow unused expressions',
13
13
  extendsBaseRule: true,
14
+ recommended: 'recommended',
14
15
  },
15
16
  hasSuggestions: baseRule.meta.hasSuggestions,
16
17
  schema: baseRule.meta.schema,
@@ -1 +1 @@
1
- {"version":3,"file":"no-unused-expressions.js","sourceRoot":"","sources":["../../src/rules/no-unused-expressions.ts"],"names":[],"mappings":";;AAAA,oDAAoE;AAMpE,kCAAqC;AACrC,iEAA8D;AAE9D,MAAM,QAAQ,GAAG,IAAA,qCAAiB,EAAC,uBAAuB,CAAC,CAAC;AAK5D,kBAAe,IAAA,iBAAU,EAAsB;IAC7C,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,6BAA6B;YAC1C,eAAe,EAAE,IAAI;SACtB;QACD,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc;QAC5C,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE;QACd;YACE,iBAAiB,EAAE,KAAK;YACxB,YAAY,EAAE,KAAK;YACnB,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,iBAAiB,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,SAAS,iBAAiB,CAAC,IAAmB;YAC5C,IAAI,iBAAiB,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,iBAAiB,EAAE,CAAC;gBACxE,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,qBAAqB,EAAE,CAAC;gBACvE,OAAO,CACL,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;oBACjC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CACnC,CAAC;YACJ,CAAC;YACD,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,eAAe;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,sBAAc,CAAC,cAAc,CAAC;gBACzD,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB,CAC9C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,mBAAmB,CAAC,IAAI;gBACtB,IAAI,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzD,OAAO;gBACT,CAAC;gBAED,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAE5C,IACE,cAAc;oBACZ,gBAAQ,CAAC,cAAc,CAAC,yBAAyB;oBACnD,cAAc,KAAK,gBAAQ,CAAC,cAAc,CAAC,cAAc;oBACzD,cAAc,KAAK,gBAAQ,CAAC,cAAc,CAAC,mBAAmB;oBAC9D,cAAc,KAAK,gBAAQ,CAAC,cAAc,CAAC,eAAe,EAC1D,CAAC;oBACD,KAAK,CAAC,mBAAmB,CAAC;wBACxB,GAAG,IAAI;wBACP,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;qBACvC,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"no-unused-expressions.js","sourceRoot":"","sources":["../../src/rules/no-unused-expressions.ts"],"names":[],"mappings":";;AAAA,oDAAoE;AAMpE,kCAAqC;AACrC,iEAA8D;AAE9D,MAAM,QAAQ,GAAG,IAAA,qCAAiB,EAAC,uBAAuB,CAAC,CAAC;AAK5D,kBAAe,IAAA,iBAAU,EAAsB;IAC7C,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,6BAA6B;YAC1C,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,aAAa;SAC3B;QACD,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc;QAC5C,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE;QACd;YACE,iBAAiB,EAAE,KAAK;YACxB,YAAY,EAAE,KAAK;YACnB,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,iBAAiB,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,SAAS,iBAAiB,CAAC,IAAmB;YAC5C,IAAI,iBAAiB,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,iBAAiB,EAAE,CAAC;gBACxE,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,qBAAqB,EAAE,CAAC;gBACvE,OAAO,CACL,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;oBACjC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CACnC,CAAC;YACJ,CAAC;YACD,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,eAAe;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,sBAAc,CAAC,cAAc,CAAC;gBACzD,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB,CAC9C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,mBAAmB,CAAC,IAAI;gBACtB,IAAI,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzD,OAAO;gBACT,CAAC;gBAED,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAE5C,IACE,cAAc;oBACZ,gBAAQ,CAAC,cAAc,CAAC,yBAAyB;oBACnD,cAAc,KAAK,gBAAQ,CAAC,cAAc,CAAC,cAAc;oBACzD,cAAc,KAAK,gBAAQ,CAAC,cAAc,CAAC,mBAAmB;oBAC9D,cAAc,KAAK,gBAAQ,CAAC,cAAc,CAAC,eAAe,EAC1D,CAAC;oBACD,KAAK,CAAC,mBAAmB,CAAC;wBACxB,GAAG,IAAI;wBACP,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;qBACvC,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const scope_manager_1 = require("@typescript-eslint/scope-manager");
4
4
  const utils_1 = require("@typescript-eslint/utils");
5
5
  const util_1 = require("../util");
6
+ const referenceContainsTypeQuery_1 = require("../util/referenceContainsTypeQuery");
6
7
  exports.default = (0, util_1.createRule)({
7
8
  name: 'no-unused-vars',
8
9
  meta: {
@@ -49,6 +50,12 @@ exports.default = (0, util_1.createRule)({
49
50
  destructuredArrayIgnorePattern: {
50
51
  type: 'string',
51
52
  },
53
+ ignoreClassWithStaticInitBlock: {
54
+ type: 'boolean',
55
+ },
56
+ reportUsedIgnorePattern: {
57
+ type: 'boolean',
58
+ },
52
59
  },
53
60
  additionalProperties: false,
54
61
  },
@@ -57,6 +64,8 @@ exports.default = (0, util_1.createRule)({
57
64
  ],
58
65
  messages: {
59
66
  unusedVar: "'{{varName}}' is {{action}} but never used{{additional}}.",
67
+ usedIgnoredVar: "'{{varName}}' is marked as ignored but is used{{additional}}.",
68
+ usedOnlyAsType: "'{{varName}}' is {{action}} but only used as a type{{additional}}.",
60
69
  },
61
70
  },
62
71
  defaultOptions: [{}],
@@ -68,6 +77,8 @@ exports.default = (0, util_1.createRule)({
68
77
  args: 'after-used',
69
78
  ignoreRestSiblings: false,
70
79
  caughtErrors: 'all',
80
+ ignoreClassWithStaticInitBlock: false,
81
+ reportUsedIgnorePattern: false,
71
82
  };
72
83
  if (typeof firstOption === 'string') {
73
84
  options.vars = firstOption;
@@ -78,6 +89,12 @@ exports.default = (0, util_1.createRule)({
78
89
  options.ignoreRestSiblings =
79
90
  firstOption.ignoreRestSiblings ?? options.ignoreRestSiblings;
80
91
  options.caughtErrors = firstOption.caughtErrors ?? options.caughtErrors;
92
+ options.ignoreClassWithStaticInitBlock =
93
+ firstOption.ignoreClassWithStaticInitBlock ??
94
+ options.ignoreClassWithStaticInitBlock;
95
+ options.reportUsedIgnorePattern =
96
+ firstOption.reportUsedIgnorePattern ??
97
+ options.reportUsedIgnorePattern;
81
98
  if (firstOption.varsIgnorePattern) {
82
99
  options.varsIgnorePattern = new RegExp(firstOption.varsIgnorePattern, 'u');
83
100
  }
@@ -93,6 +110,125 @@ exports.default = (0, util_1.createRule)({
93
110
  }
94
111
  return options;
95
112
  })();
113
+ /**
114
+ * Gets a given variable's description and configured ignore pattern
115
+ * based on the provided variableType
116
+ * @param variableType a simple name for the types of variables that this rule supports
117
+ * @returns the given variable's description and
118
+ * ignore pattern
119
+ */
120
+ function getVariableDescription(variableType) {
121
+ switch (variableType) {
122
+ case 'array-destructure':
123
+ return {
124
+ pattern: options.destructuredArrayIgnorePattern?.toString(),
125
+ variableDescription: 'elements of array destructuring',
126
+ };
127
+ case 'catch-clause':
128
+ return {
129
+ pattern: options.caughtErrorsIgnorePattern?.toString(),
130
+ variableDescription: 'args',
131
+ };
132
+ case 'parameter':
133
+ return {
134
+ pattern: options.argsIgnorePattern?.toString(),
135
+ variableDescription: 'args',
136
+ };
137
+ case 'variable':
138
+ return {
139
+ pattern: options.varsIgnorePattern?.toString(),
140
+ variableDescription: 'vars',
141
+ };
142
+ }
143
+ }
144
+ /**
145
+ * Generates the message data about the variable being defined and unused,
146
+ * including the ignore pattern if configured.
147
+ * @param unusedVar eslint-scope variable object.
148
+ * @returns The message data to be used with this unused variable.
149
+ */
150
+ function getDefinedMessageData(unusedVar) {
151
+ const def = unusedVar.defs.at(0)?.type;
152
+ let additionalMessageData = '';
153
+ if (def) {
154
+ const { variableDescription, pattern } = (() => {
155
+ switch (def) {
156
+ case scope_manager_1.DefinitionType.CatchClause:
157
+ if (options.caughtErrorsIgnorePattern) {
158
+ return getVariableDescription('catch-clause');
159
+ }
160
+ break;
161
+ case scope_manager_1.DefinitionType.Parameter:
162
+ if (options.argsIgnorePattern) {
163
+ return getVariableDescription('parameter');
164
+ }
165
+ break;
166
+ default:
167
+ if (options.varsIgnorePattern) {
168
+ return getVariableDescription('variable');
169
+ }
170
+ break;
171
+ }
172
+ return { pattern: undefined, variableDescription: undefined };
173
+ })();
174
+ if (pattern && variableDescription) {
175
+ additionalMessageData = `. Allowed unused ${variableDescription} must match ${pattern}`;
176
+ }
177
+ }
178
+ return {
179
+ varName: unusedVar.name,
180
+ action: 'defined',
181
+ additional: additionalMessageData,
182
+ };
183
+ }
184
+ /**
185
+ * Generate the warning message about the variable being
186
+ * assigned and unused, including the ignore pattern if configured.
187
+ * @param unusedVar eslint-scope variable object.
188
+ * @returns The message data to be used with this unused variable.
189
+ */
190
+ function getAssignedMessageData(unusedVar) {
191
+ const def = unusedVar.defs.at(0);
192
+ let additionalMessageData = '';
193
+ if (def) {
194
+ const { variableDescription, pattern } = (() => {
195
+ if (def.name.parent.type === utils_1.AST_NODE_TYPES.ArrayPattern &&
196
+ options.destructuredArrayIgnorePattern) {
197
+ return getVariableDescription('array-destructure');
198
+ }
199
+ else if (options.varsIgnorePattern) {
200
+ return getVariableDescription('variable');
201
+ }
202
+ return { pattern: undefined, variableDescription: undefined };
203
+ })();
204
+ if (pattern && variableDescription) {
205
+ additionalMessageData = `. Allowed unused ${variableDescription} must match ${pattern}`;
206
+ }
207
+ }
208
+ return {
209
+ varName: unusedVar.name,
210
+ action: 'assigned a value',
211
+ additional: additionalMessageData,
212
+ };
213
+ }
214
+ /**
215
+ * Generate the warning message about a variable being used even though
216
+ * it is marked as being ignored.
217
+ * @param variable eslint-scope variable object
218
+ * @param variableType a simple name for the types of variables that this rule supports
219
+ * @returns The message data to be used with this used ignored variable.
220
+ */
221
+ function getUsedIgnoredMessageData(variable, variableType) {
222
+ const { variableDescription, pattern } = getVariableDescription(variableType);
223
+ let additionalMessageData = '';
224
+ if (pattern && variableDescription) {
225
+ additionalMessageData = `. Used ${variableDescription} must not match ${pattern}`;
226
+ }
227
+ return {
228
+ varName: variable.name,
229
+ additional: additionalMessageData,
230
+ };
231
+ }
96
232
  function collectUnusedVariables() {
97
233
  /**
98
234
  * Checks whether a node is a sibling of the rest property or not.
@@ -130,12 +266,24 @@ exports.default = (0, util_1.createRule)({
130
266
  // If any used parameters occur after this parameter, do not report.
131
267
  return !posteriorParams.some(v => v.references.length > 0 || v.eslintUsed);
132
268
  }
133
- const unusedVariablesOriginal = (0, util_1.collectUnusedVariables)(context);
269
+ const analysisResults = (0, util_1.collectVariables)(context);
270
+ const variables = [
271
+ ...Array.from(analysisResults.unusedVariables, variable => ({
272
+ used: false,
273
+ variable,
274
+ })),
275
+ ...Array.from(analysisResults.usedVariables, variable => ({
276
+ used: true,
277
+ variable,
278
+ })),
279
+ ];
134
280
  const unusedVariablesReturn = [];
135
- for (const variable of unusedVariablesOriginal) {
281
+ for (const { used, variable } of variables) {
136
282
  // explicit global variables don't have definitions.
137
283
  if (variable.defs.length === 0) {
138
- unusedVariablesReturn.push(variable);
284
+ if (!used) {
285
+ unusedVariablesReturn.push(variable);
286
+ }
139
287
  continue;
140
288
  }
141
289
  const def = variable.defs[0];
@@ -148,18 +296,38 @@ exports.default = (0, util_1.createRule)({
148
296
  // skip elements of array destructuring patterns
149
297
  if ((def.name.parent.type === utils_1.AST_NODE_TYPES.ArrayPattern ||
150
298
  refUsedInArrayPatterns) &&
151
- 'name' in def.name &&
299
+ def.name.type === utils_1.AST_NODE_TYPES.Identifier &&
152
300
  options.destructuredArrayIgnorePattern?.test(def.name.name)) {
301
+ if (options.reportUsedIgnorePattern && used) {
302
+ context.report({
303
+ node: def.name,
304
+ messageId: 'usedIgnoredVar',
305
+ data: getUsedIgnoredMessageData(variable, 'array-destructure'),
306
+ });
307
+ }
153
308
  continue;
154
309
  }
310
+ if (def.type === utils_1.TSESLint.Scope.DefinitionType.ClassName) {
311
+ const hasStaticBlock = def.node.body.body.some(node => node.type === utils_1.AST_NODE_TYPES.StaticBlock);
312
+ if (options.ignoreClassWithStaticInitBlock && hasStaticBlock) {
313
+ continue;
314
+ }
315
+ }
155
316
  // skip catch variables
156
317
  if (def.type === utils_1.TSESLint.Scope.DefinitionType.CatchClause) {
157
318
  if (options.caughtErrors === 'none') {
158
319
  continue;
159
320
  }
160
321
  // skip ignored parameters
161
- if ('name' in def.name &&
322
+ if (def.name.type === utils_1.AST_NODE_TYPES.Identifier &&
162
323
  options.caughtErrorsIgnorePattern?.test(def.name.name)) {
324
+ if (options.reportUsedIgnorePattern && used) {
325
+ context.report({
326
+ node: def.name,
327
+ messageId: 'usedIgnoredVar',
328
+ data: getUsedIgnoredMessageData(variable, 'catch-clause'),
329
+ });
330
+ }
163
331
  continue;
164
332
  }
165
333
  }
@@ -169,8 +337,15 @@ exports.default = (0, util_1.createRule)({
169
337
  continue;
170
338
  }
171
339
  // skip ignored parameters
172
- if ('name' in def.name &&
340
+ if (def.name.type === utils_1.AST_NODE_TYPES.Identifier &&
173
341
  options.argsIgnorePattern?.test(def.name.name)) {
342
+ if (options.reportUsedIgnorePattern && used) {
343
+ context.report({
344
+ node: def.name,
345
+ messageId: 'usedIgnoredVar',
346
+ data: getUsedIgnoredMessageData(variable, 'parameter'),
347
+ });
348
+ }
174
349
  continue;
175
350
  }
176
351
  // if "args" option is "after-used", skip used variables
@@ -180,12 +355,17 @@ exports.default = (0, util_1.createRule)({
180
355
  continue;
181
356
  }
182
357
  }
183
- else {
184
- // skip ignored variables
185
- if ('name' in def.name &&
186
- options.varsIgnorePattern?.test(def.name.name)) {
187
- continue;
358
+ // skip ignored variables
359
+ else if (def.name.type === utils_1.AST_NODE_TYPES.Identifier &&
360
+ options.varsIgnorePattern?.test(def.name.name)) {
361
+ if (options.reportUsedIgnorePattern && used) {
362
+ context.report({
363
+ node: def.name,
364
+ messageId: 'usedIgnoredVar',
365
+ data: getUsedIgnoredMessageData(variable, 'variable'),
366
+ });
188
367
  }
368
+ continue;
189
369
  }
190
370
  if (hasRestSpreadSibling(variable)) {
191
371
  continue;
@@ -195,7 +375,9 @@ exports.default = (0, util_1.createRule)({
195
375
  if (variable.eslintUsed) {
196
376
  continue;
197
377
  }
198
- unusedVariablesReturn.push(variable);
378
+ if (!used) {
379
+ unusedVariablesReturn.push(variable);
380
+ }
199
381
  }
200
382
  return unusedVariablesReturn;
201
383
  }
@@ -224,62 +406,6 @@ exports.default = (0, util_1.createRule)({
224
406
  },
225
407
  // collect
226
408
  'Program:exit'(programNode) {
227
- /**
228
- * Generates the message data about the variable being defined and unused,
229
- * including the ignore pattern if configured.
230
- * @param unusedVar eslint-scope variable object.
231
- * @returns The message data to be used with this unused variable.
232
- */
233
- function getDefinedMessageData(unusedVar) {
234
- const defType = unusedVar.defs[0]?.type;
235
- let type;
236
- let pattern;
237
- if (defType === utils_1.TSESLint.Scope.DefinitionType.CatchClause &&
238
- options.caughtErrorsIgnorePattern) {
239
- type = 'args';
240
- pattern = options.caughtErrorsIgnorePattern.toString();
241
- }
242
- else if (defType === utils_1.TSESLint.Scope.DefinitionType.Parameter &&
243
- options.argsIgnorePattern) {
244
- type = 'args';
245
- pattern = options.argsIgnorePattern.toString();
246
- }
247
- else if (defType !== utils_1.TSESLint.Scope.DefinitionType.Parameter &&
248
- options.varsIgnorePattern) {
249
- type = 'vars';
250
- pattern = options.varsIgnorePattern.toString();
251
- }
252
- const additional = type
253
- ? `. Allowed unused ${type} must match ${pattern}`
254
- : '';
255
- return {
256
- varName: unusedVar.name,
257
- action: 'defined',
258
- additional,
259
- };
260
- }
261
- /**
262
- * Generate the warning message about the variable being
263
- * assigned and unused, including the ignore pattern if configured.
264
- * @param unusedVar eslint-scope variable object.
265
- * @returns The message data to be used with this unused variable.
266
- */
267
- function getAssignedMessageData(unusedVar) {
268
- const def = unusedVar.defs.at(0);
269
- let additional = '';
270
- if (options.destructuredArrayIgnorePattern &&
271
- def?.name.parent.type === utils_1.AST_NODE_TYPES.ArrayPattern) {
272
- additional = `. Allowed unused elements of array destructuring patterns must match ${options.destructuredArrayIgnorePattern.toString()}`;
273
- }
274
- else if (options.varsIgnorePattern) {
275
- additional = `. Allowed unused vars must match ${options.varsIgnorePattern.toString()}`;
276
- }
277
- return {
278
- varName: unusedVar.name,
279
- action: 'assigned a value',
280
- additional,
281
- };
282
- }
283
409
  const unusedVars = collectUnusedVariables();
284
410
  for (const unusedVar of unusedVars) {
285
411
  // Report the first declaration.
@@ -289,6 +415,8 @@ exports.default = (0, util_1.createRule)({
289
415
  const id = writeReferences.length
290
416
  ? writeReferences[writeReferences.length - 1].identifier
291
417
  : unusedVar.identifiers[0];
418
+ const usedOnlyAsType = unusedVar.references.some(ref => (0, referenceContainsTypeQuery_1.referenceContainsTypeQuery)(ref.identifier));
419
+ const messageId = usedOnlyAsType ? 'usedOnlyAsType' : 'unusedVar';
292
420
  const { start } = id.loc;
293
421
  const idLength = id.name.length;
294
422
  const loc = {
@@ -300,7 +428,7 @@ exports.default = (0, util_1.createRule)({
300
428
  };
301
429
  context.report({
302
430
  loc,
303
- messageId: 'unusedVar',
431
+ messageId,
304
432
  data: unusedVar.references.some(ref => ref.isWrite())
305
433
  ? getAssignedMessageData(unusedVar)
306
434
  : getDefinedMessageData(unusedVar),
@@ -458,16 +586,7 @@ namespace Test {
458
586
  }
459
587
  type T = Test.Foo.T; // Error: Namespace 'Test' has no exported member 'Foo'.
460
588
 
461
- */
462
- /*
463
-
464
- ###### TODO ######
465
-
466
- We currently extend base `no-unused-vars` implementation because it's easier and lighter-weight.
467
-
468
- Because of this, there are a few false-negatives which won't get caught.
469
- We could fix these if we fork the base rule; but that's a lot of code (~650 lines) to add in.
470
- I didn't want to do that just yet without some real-world issues, considering these are pretty rare edge-cases.
589
+ ---
471
590
 
472
591
  These cases are mishandled because the base rule assumes that each variable has one def, but type-value shadowing
473
592
  creates a variable with two defs
@@ -1 +1 @@
1
- {"version":3,"file":"no-unused-vars.js","sourceRoot":"","sources":["../../src/rules/no-unused-vars.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-unused-vars.js","sourceRoot":"","sources":["../../src/rules/no-unused-vars.ts"],"names":[],"mappings":"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"}