@typescript-eslint/eslint-plugin 8.63.1-alpha.15 → 8.63.1-alpha.16

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.
@@ -58,8 +58,6 @@ declare const _default: {
58
58
  'no-invalid-this': "off";
59
59
  '@typescript-eslint/no-invalid-this': "error";
60
60
  '@typescript-eslint/no-invalid-void-type': "error";
61
- 'no-loop-func': "off";
62
- '@typescript-eslint/no-loop-func': "error";
63
61
  'no-magic-numbers': "off";
64
62
  '@typescript-eslint/no-magic-numbers': "error";
65
63
  '@typescript-eslint/no-meaningless-void-operator': "error";
@@ -65,8 +65,6 @@ module.exports = {
65
65
  'no-invalid-this': 'off',
66
66
  '@typescript-eslint/no-invalid-this': 'error',
67
67
  '@typescript-eslint/no-invalid-void-type': 'error',
68
- 'no-loop-func': 'off',
69
- '@typescript-eslint/no-loop-func': 'error',
70
68
  'no-magic-numbers': 'off',
71
69
  '@typescript-eslint/no-magic-numbers': 'error',
72
70
  '@typescript-eslint/no-meaningless-void-operator': 'error',
@@ -78,8 +78,6 @@ exports.default = (plugin, parser) => [
78
78
  'no-invalid-this': 'off',
79
79
  '@typescript-eslint/no-invalid-this': 'error',
80
80
  '@typescript-eslint/no-invalid-void-type': 'error',
81
- 'no-loop-func': 'off',
82
- '@typescript-eslint/no-loop-func': 'error',
83
81
  'no-magic-numbers': 'off',
84
82
  '@typescript-eslint/no-magic-numbers': 'error',
85
83
  '@typescript-eslint/no-meaningless-void-operator': 'error',
package/dist/index.d.ts CHANGED
@@ -60,8 +60,6 @@ declare const _default: {
60
60
  'no-invalid-this': "off";
61
61
  '@typescript-eslint/no-invalid-this': "error";
62
62
  '@typescript-eslint/no-invalid-void-type': "error";
63
- 'no-loop-func': "off";
64
- '@typescript-eslint/no-loop-func': "error";
65
63
  'no-magic-numbers': "off";
66
64
  '@typescript-eslint/no-magic-numbers': "error";
67
65
  '@typescript-eslint/no-meaningless-void-operator': "error";
@@ -82,8 +82,6 @@ declare const _default: {
82
82
  'no-invalid-this': "off";
83
83
  '@typescript-eslint/no-invalid-this': "error";
84
84
  '@typescript-eslint/no-invalid-void-type': "error";
85
- 'no-loop-func': "off";
86
- '@typescript-eslint/no-loop-func': "error";
87
85
  'no-magic-numbers': "off";
88
86
  '@typescript-eslint/no-magic-numbers': "error";
89
87
  '@typescript-eslint/no-meaningless-void-operator': "error";
@@ -4,11 +4,24 @@ const utils_1 = require("@typescript-eslint/utils");
4
4
  const util_1 = require("../util");
5
5
  const getESLintCoreRule_1 = require("../util/getESLintCoreRule");
6
6
  const baseRule = (0, getESLintCoreRule_1.getESLintCoreRule)('no-loop-func');
7
+ const CONSTANT_BINDINGS = new Set(['await using', 'const', 'using']);
7
8
  exports.default = (0, util_1.createRule)({
8
9
  name: 'no-loop-func',
9
10
  meta: {
10
11
  type: 'suggestion',
11
12
  // defaultOptions, -- base rule does not use defaultOptions
13
+ deprecated: {
14
+ deprecatedSince: '8.64.0',
15
+ replacedBy: [
16
+ {
17
+ rule: {
18
+ name: 'no-loop-func',
19
+ url: 'https://eslint.org/docs/latest/rules/no-loop-func',
20
+ },
21
+ },
22
+ ],
23
+ url: 'https://github.com/typescript-eslint/typescript-eslint/issues/12496',
24
+ },
12
25
  docs: {
13
26
  description: 'Disallow function declarations that contain unsafe references inside loop statements',
14
27
  extendsBaseRule: true,
@@ -100,8 +113,9 @@ exports.default = (0, util_1.createRule)({
100
113
  if (reference.isTypeReference) {
101
114
  return true;
102
115
  }
103
- // Variables which are declared by `const` is safe.
104
- if (kind === 'const') {
116
+ // Variables which are declared by `const`, `using`, or `await using` are
117
+ // safe. They can't be reassigned, so each iteration captures a fresh one.
118
+ if (CONSTANT_BINDINGS.has(kind)) {
105
119
  return true;
106
120
  }
107
121
  /*
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/eslint-plugin",
3
- "version": "8.63.1-alpha.15",
3
+ "version": "8.63.1-alpha.16",
4
4
  "description": "TypeScript plugin for ESLint",
5
5
  "files": [
6
6
  "dist",
@@ -49,10 +49,10 @@
49
49
  "ignore": "^7.0.5",
50
50
  "natural-compare": "^1.4.0",
51
51
  "ts-api-utils": "^2.5.0",
52
- "@typescript-eslint/scope-manager": "8.63.1-alpha.15",
53
- "@typescript-eslint/visitor-keys": "8.63.1-alpha.15",
54
- "@typescript-eslint/utils": "8.63.1-alpha.15",
55
- "@typescript-eslint/type-utils": "8.63.1-alpha.15"
52
+ "@typescript-eslint/scope-manager": "8.63.1-alpha.16",
53
+ "@typescript-eslint/utils": "8.63.1-alpha.16",
54
+ "@typescript-eslint/type-utils": "8.63.1-alpha.16",
55
+ "@typescript-eslint/visitor-keys": "8.63.1-alpha.16"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@types/json-schema": "^7.0.15",
@@ -76,13 +76,13 @@
76
76
  "typescript": ">=4.8.4 <6.1.0",
77
77
  "unist-util-visit": "^5.0.0",
78
78
  "vitest": "^4.0.18",
79
- "@typescript-eslint/rule-schema-to-typescript-types": "8.63.1-alpha.15",
80
- "@typescript-eslint/rule-tester": "8.63.1-alpha.15"
79
+ "@typescript-eslint/rule-tester": "8.63.1-alpha.16",
80
+ "@typescript-eslint/rule-schema-to-typescript-types": "8.63.1-alpha.16"
81
81
  },
82
82
  "peerDependencies": {
83
83
  "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
84
84
  "typescript": ">=4.8.4 <6.1.0",
85
- "@typescript-eslint/parser": "^8.63.1-alpha.15"
85
+ "@typescript-eslint/parser": "^8.63.1-alpha.16"
86
86
  },
87
87
  "funding": {
88
88
  "type": "opencollective",