@typescript-eslint/eslint-plugin 7.2.0 → 7.2.1-alpha.1
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.
|
@@ -114,11 +114,11 @@ exports.default = (0, util_1.createRule)({
|
|
|
114
114
|
create(context, [{ ignoreStatic }]) {
|
|
115
115
|
const services = (0, util_1.getParserServices)(context);
|
|
116
116
|
const currentSourceFile = services.program.getSourceFile(context.filename);
|
|
117
|
-
function
|
|
117
|
+
function checkIfMethodAndReport(node, symbol) {
|
|
118
118
|
if (!symbol) {
|
|
119
119
|
return;
|
|
120
120
|
}
|
|
121
|
-
const { dangerous, firstParamIsThis } =
|
|
121
|
+
const { dangerous, firstParamIsThis } = checkIfMethod(symbol, ignoreStatic);
|
|
122
122
|
if (dangerous) {
|
|
123
123
|
context.report({
|
|
124
124
|
messageId: firstParamIsThis === false
|
|
@@ -139,7 +139,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
139
139
|
isNotImported(objectSymbol, currentSourceFile)) {
|
|
140
140
|
return;
|
|
141
141
|
}
|
|
142
|
-
|
|
142
|
+
checkIfMethodAndReport(node, services.getSymbolAtLocation(node));
|
|
143
143
|
},
|
|
144
144
|
'VariableDeclarator, AssignmentExpression'(node) {
|
|
145
145
|
const [idNode, initNode] = node.type === utils_1.AST_NODE_TYPES.VariableDeclarator
|
|
@@ -157,7 +157,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
157
157
|
nativelyBoundMembers.has(`${initNode.name}.${property.key.name}`)) {
|
|
158
158
|
return;
|
|
159
159
|
}
|
|
160
|
-
|
|
160
|
+
checkIfMethodAndReport(property.key, initTypes.getProperty(property.key.name));
|
|
161
161
|
}
|
|
162
162
|
});
|
|
163
163
|
}
|
|
@@ -165,7 +165,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
165
165
|
};
|
|
166
166
|
},
|
|
167
167
|
});
|
|
168
|
-
function
|
|
168
|
+
function checkIfMethod(symbol, ignoreStatic) {
|
|
169
169
|
const { valueDeclaration } = symbol;
|
|
170
170
|
if (!valueDeclaration) {
|
|
171
171
|
// working around https://github.com/microsoft/TypeScript/issues/31294
|
|
@@ -177,24 +177,35 @@ function checkMethod(symbol, ignoreStatic) {
|
|
|
177
177
|
dangerous: valueDeclaration.initializer?.kind ===
|
|
178
178
|
ts.SyntaxKind.FunctionExpression,
|
|
179
179
|
};
|
|
180
|
+
case ts.SyntaxKind.PropertyAssignment: {
|
|
181
|
+
const assignee = valueDeclaration.initializer;
|
|
182
|
+
if (assignee.kind !== ts.SyntaxKind.FunctionExpression) {
|
|
183
|
+
return {
|
|
184
|
+
dangerous: false,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
return checkMethod(assignee, ignoreStatic);
|
|
188
|
+
}
|
|
180
189
|
case ts.SyntaxKind.MethodDeclaration:
|
|
181
190
|
case ts.SyntaxKind.MethodSignature: {
|
|
182
|
-
|
|
183
|
-
const firstParam = decl.parameters.at(0);
|
|
184
|
-
const firstParamIsThis = firstParam?.name.kind === ts.SyntaxKind.Identifier &&
|
|
185
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
186
|
-
firstParam.name.escapedText === 'this';
|
|
187
|
-
const thisArgIsVoid = firstParamIsThis && firstParam.type?.kind === ts.SyntaxKind.VoidKeyword;
|
|
188
|
-
return {
|
|
189
|
-
dangerous: !thisArgIsVoid &&
|
|
190
|
-
!(ignoreStatic &&
|
|
191
|
-
tsutils.includesModifier((0, util_1.getModifiers)(valueDeclaration), ts.SyntaxKind.StaticKeyword)),
|
|
192
|
-
firstParamIsThis,
|
|
193
|
-
};
|
|
191
|
+
return checkMethod(valueDeclaration, ignoreStatic);
|
|
194
192
|
}
|
|
195
193
|
}
|
|
196
194
|
return { dangerous: false };
|
|
197
195
|
}
|
|
196
|
+
function checkMethod(valueDeclaration, ignoreStatic) {
|
|
197
|
+
const firstParam = valueDeclaration.parameters.at(0);
|
|
198
|
+
const firstParamIsThis = firstParam?.name.kind === ts.SyntaxKind.Identifier &&
|
|
199
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
200
|
+
firstParam.name.escapedText === 'this';
|
|
201
|
+
const thisArgIsVoid = firstParamIsThis && firstParam.type?.kind === ts.SyntaxKind.VoidKeyword;
|
|
202
|
+
return {
|
|
203
|
+
dangerous: !thisArgIsVoid &&
|
|
204
|
+
!(ignoreStatic &&
|
|
205
|
+
tsutils.includesModifier((0, util_1.getModifiers)(valueDeclaration), ts.SyntaxKind.StaticKeyword)),
|
|
206
|
+
firstParamIsThis,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
198
209
|
function isSafeUse(node) {
|
|
199
210
|
const parent = node.parent;
|
|
200
211
|
switch (parent?.type) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unbound-method.js","sourceRoot":"","sources":["../../src/rules/unbound-method.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"unbound-method.js","sourceRoot":"","sources":["../../src/rules/unbound-method.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,7 +64,7 @@ Specifically the argument of the not operator (`!loose`) or a bare value in a lo
|
|
|
64
64
|
|
|
65
65
|
### `allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing`
|
|
66
66
|
|
|
67
|
-
When this option is `true`, the rule will
|
|
67
|
+
When this option is `true`, the rule will provide an auto-fixer for cases where the return type of the expression would change. For example for the expression `!foo || foo.bar` the return type of the expression is `true | T`, however for the equivalent optional chain `foo?.bar` the return type of the expression is `undefined | T`. Thus changing the code from a logical expression to an optional chain expression has altered the type of the expression.
|
|
68
68
|
|
|
69
69
|
In some cases this distinction _may_ matter - which is why these fixers are considered unsafe - they may break the build! For example in the following code:
|
|
70
70
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typescript-eslint/eslint-plugin",
|
|
3
|
-
"version": "7.2.
|
|
3
|
+
"version": "7.2.1-alpha.1",
|
|
4
4
|
"description": "TypeScript plugin for ESLint",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -61,10 +61,10 @@
|
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"@eslint-community/regexpp": "^4.5.1",
|
|
64
|
-
"@typescript-eslint/scope-manager": "7.2.
|
|
65
|
-
"@typescript-eslint/type-utils": "7.2.
|
|
66
|
-
"@typescript-eslint/utils": "7.2.
|
|
67
|
-
"@typescript-eslint/visitor-keys": "7.2.
|
|
64
|
+
"@typescript-eslint/scope-manager": "7.2.1-alpha.1",
|
|
65
|
+
"@typescript-eslint/type-utils": "7.2.1-alpha.1",
|
|
66
|
+
"@typescript-eslint/utils": "7.2.1-alpha.1",
|
|
67
|
+
"@typescript-eslint/visitor-keys": "7.2.1-alpha.1",
|
|
68
68
|
"debug": "^4.3.4",
|
|
69
69
|
"graphemer": "^1.4.0",
|
|
70
70
|
"ignore": "^5.2.4",
|
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
"@types/debug": "*",
|
|
77
77
|
"@types/marked": "*",
|
|
78
78
|
"@types/natural-compare": "*",
|
|
79
|
-
"@typescript-eslint/rule-schema-to-typescript-types": "7.2.
|
|
80
|
-
"@typescript-eslint/rule-tester": "7.2.
|
|
79
|
+
"@typescript-eslint/rule-schema-to-typescript-types": "7.2.1-alpha.1",
|
|
80
|
+
"@typescript-eslint/rule-tester": "7.2.1-alpha.1",
|
|
81
81
|
"ajv": "^6.12.6",
|
|
82
82
|
"chalk": "^5.3.0",
|
|
83
83
|
"cross-env": "^7.0.3",
|