Bump packages to fix linter
This commit is contained in:
parent
ed9506bbaf
commit
0a11e3fdd9
6063 changed files with 378752 additions and 306784 deletions
52
node_modules/eslint/lib/rules/no-unreachable.js
generated
vendored
52
node_modules/eslint/lib/rules/no-unreachable.js
generated
vendored
|
|
@ -8,6 +8,12 @@
|
|||
// Helpers
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* @typedef {Object} ConstructorInfo
|
||||
* @property {ConstructorInfo | null} upper Info about the constructor that encloses this constructor.
|
||||
* @property {boolean} hasSuperCall The flag about having `super()` expressions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Checks whether or not a given variable declarator has the initializer.
|
||||
* @param {ASTNode} node A VariableDeclarator node to check.
|
||||
|
|
@ -99,13 +105,13 @@ class ConsecutiveRange {
|
|||
// Rule Definition
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/** @type {import('../shared/types').Rule} */
|
||||
module.exports = {
|
||||
meta: {
|
||||
type: "problem",
|
||||
|
||||
docs: {
|
||||
description: "disallow unreachable code after `return`, `throw`, `continue`, and `break` statements",
|
||||
category: "Possible Errors",
|
||||
description: "Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements",
|
||||
recommended: true,
|
||||
url: "https://eslint.org/docs/rules/no-unreachable"
|
||||
},
|
||||
|
|
@ -120,6 +126,10 @@ module.exports = {
|
|||
create(context) {
|
||||
let currentCodePath = null;
|
||||
|
||||
/** @type {ConstructorInfo | null} */
|
||||
let constructorInfo = null;
|
||||
|
||||
/** @type {ConsecutiveRange} */
|
||||
const range = new ConsecutiveRange(context.getSourceCode());
|
||||
|
||||
/**
|
||||
|
|
@ -130,7 +140,7 @@ module.exports = {
|
|||
function reportIfUnreachable(node) {
|
||||
let nextNode = null;
|
||||
|
||||
if (node && currentCodePath.currentSegments.every(isUnreachable)) {
|
||||
if (node && (node.type === "PropertyDefinition" || currentCodePath.currentSegments.every(isUnreachable))) {
|
||||
|
||||
// Store this statement to distinguish consecutive statements.
|
||||
if (range.isEmpty) {
|
||||
|
|
@ -212,6 +222,42 @@ module.exports = {
|
|||
|
||||
"Program:exit"() {
|
||||
reportIfUnreachable();
|
||||
},
|
||||
|
||||
/*
|
||||
* Instance fields defined in a subclass are never created if the constructor of the subclass
|
||||
* doesn't call `super()`, so their definitions are unreachable code.
|
||||
*/
|
||||
"MethodDefinition[kind='constructor']"() {
|
||||
constructorInfo = {
|
||||
upper: constructorInfo,
|
||||
hasSuperCall: false
|
||||
};
|
||||
},
|
||||
"MethodDefinition[kind='constructor']:exit"(node) {
|
||||
const { hasSuperCall } = constructorInfo;
|
||||
|
||||
constructorInfo = constructorInfo.upper;
|
||||
|
||||
// skip typescript constructors without the body
|
||||
if (!node.value.body) {
|
||||
return;
|
||||
}
|
||||
|
||||
const classDefinition = node.parent.parent;
|
||||
|
||||
if (classDefinition.superClass && !hasSuperCall) {
|
||||
for (const element of classDefinition.body.body) {
|
||||
if (element.type === "PropertyDefinition" && !element.static) {
|
||||
reportIfUnreachable(element);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"CallExpression > Super.callee"() {
|
||||
if (constructorInfo) {
|
||||
constructorInfo.hasSuperCall = true;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue