-
-
Notifications
You must be signed in to change notification settings - Fork 4.8k
Closed
Labels
acceptedThere is consensus among the team that this change meets the criteria for inclusionThere is consensus among the team that this change meets the criteria for inclusionarchived due to ageThis issue has been archived; please open a new issue for any further discussionThis issue has been archived; please open a new issue for any further discussionbugESLint is working incorrectlyESLint is working incorrectlypatch candidateThis issue may necessitate a patch release in the next few daysThis issue may necessitate a patch release in the next few daysregressionSomething brokeSomething brokeruleRelates to ESLint's core rulesRelates to ESLint's core rules
Description
Tell us about your environment
- ESLint Version: 4.18.0
- eslint-config-airbnb-base Version: 12.1.0
- OS: Mac OS X 10.12.6
- Node Version: 8.9.4
- npm Version: 5.2.0
What parser (default, Babel-ESLint, etc.) are you using? default
Please show your full configuration:
{
"extends": "airbnb-base"
}
so ./node_modules/.bin/eslint --print-config 1.js
gives:
Configuration
{
"globals": {
"arguments": false,
"GLOBAL": false,
"root": false,
"__dirname": false,
"__filename": false,
"Buffer": false,
"clearImmediate": false,
"clearInterval": false,
"clearTimeout": false,
"console": false,
"exports": true,
"global": false,
"Intl": false,
"module": false,
"process": false,
"require": false,
"setImmediate": false,
"setInterval": false,
"setTimeout": false,
"Array": false,
"ArrayBuffer": false,
"Boolean": false,
"constructor": false,
"DataView": false,
"Date": false,
"decodeURI": false,
"decodeURIComponent": false,
"encodeURI": false,
"encodeURIComponent": false,
"Error": false,
"escape": false,
"eval": false,
"EvalError": false,
"Float32Array": false,
"Float64Array": false,
"Function": false,
"hasOwnProperty": false,
"Infinity": false,
"Int16Array": false,
"Int32Array": false,
"Int8Array": false,
"isFinite": false,
"isNaN": false,
"isPrototypeOf": false,
"JSON": false,
"Map": false,
"Math": false,
"NaN": false,
"Number": false,
"Object": false,
"parseFloat": false,
"parseInt": false,
"Promise": false,
"propertyIsEnumerable": false,
"Proxy": false,
"RangeError": false,
"ReferenceError": false,
"Reflect": false,
"RegExp": false,
"Set": false,
"String": false,
"Symbol": false,
"SyntaxError": false,
"toLocaleString": false,
"toString": false,
"TypeError": false,
"Uint16Array": false,
"Uint32Array": false,
"Uint8Array": false,
"Uint8ClampedArray": false,
"undefined": false,
"unescape": false,
"URIError": false,
"valueOf": false,
"WeakMap": false,
"WeakSet": false
},
"env": {
"node": true,
"es6": true
},
"rules": {
"accessor-pairs": "off",
"array-callback-return": "error",
"block-scoped-var": "error",
"complexity": [
"off",
11
],
"class-methods-use-this": [
"error",
{
"exceptMethods": []
}
],
"consistent-return": "error",
"curly": [
"error",
"multi-line"
],
"default-case": [
"error",
{
"commentPattern": "^no default$"
}
],
"dot-notation": [
"error",
{
"allowKeywords": true
}
],
"dot-location": [
"error",
"property"
],
"eqeqeq": [
"error",
"always",
{
"null": "ignore"
}
],
"guard-for-in": "error",
"no-alert": "warn",
"no-caller": "error",
"no-case-declarations": "error",
"no-div-regex": "off",
"no-else-return": [
"error",
{
"allowElseIf": true
}
],
"no-empty-function": [
"error",
{
"allow": [
"arrowFunctions",
"functions",
"methods"
]
}
],
"no-empty-pattern": "error",
"no-eq-null": "off",
"no-eval": "error",
"no-extend-native": "error",
"no-extra-bind": "error",
"no-extra-label": "error",
"no-fallthrough": "error",
"no-floating-decimal": "error",
"no-global-assign": [
"error",
{
"exceptions": []
}
],
"no-native-reassign": "off",
"no-implicit-coercion": [
"off",
{
"boolean": false,
"number": true,
"string": true,
"allow": []
}
],
"no-implicit-globals": "off",
"no-implied-eval": "error",
"no-invalid-this": "off",
"no-iterator": "error",
"no-labels": [
"error",
{
"allowLoop": false,
"allowSwitch": false
}
],
"no-lone-blocks": "error",
"no-loop-func": "error",
"no-magic-numbers": [
"off",
{
"ignore": [],
"ignoreArrayIndexes": true,
"enforceConst": true,
"detectObjects": false
}
],
"no-multi-spaces": [
"error",
{
"ignoreEOLComments": false
}
],
"no-multi-str": "error",
"no-new": "error",
"no-new-func": "error",
"no-new-wrappers": "error",
"no-octal": "error",
"no-octal-escape": "error",
"no-param-reassign": [
"error",
{
"props": true,
"ignorePropertyModificationsFor": [
"acc",
"e",
"ctx",
"req",
"request",
"res",
"response",
"$scope"
]
}
],
"no-proto": "error",
"no-redeclare": "error",
"no-restricted-properties": [
"error",
{
"object": "arguments",
"property": "callee",
"message": "arguments.callee is deprecated"
},
{
"object": "global",
"property": "isFinite",
"message": "Please use Number.isFinite instead"
},
{
"object": "self",
"property": "isFinite",
"message": "Please use Number.isFinite instead"
},
{
"object": "window",
"property": "isFinite",
"message": "Please use Number.isFinite instead"
},
{
"object": "global",
"property": "isNaN",
"message": "Please use Number.isNaN instead"
},
{
"object": "self",
"property": "isNaN",
"message": "Please use Number.isNaN instead"
},
{
"object": "window",
"property": "isNaN",
"message": "Please use Number.isNaN instead"
},
{
"property": "__defineGetter__",
"message": "Please use Object.defineProperty instead."
},
{
"property": "__defineSetter__",
"message": "Please use Object.defineProperty instead."
},
{
"object": "Math",
"property": "pow",
"message": "Use the exponentiation operator (**) instead."
}
],
"no-return-assign": [
"error",
"always"
],
"no-return-await": "error",
"no-script-url": "error",
"no-self-assign": "error",
"no-self-compare": "error",
"no-sequences": "error",
"no-throw-literal": "error",
"no-unmodified-loop-condition": "off",
"no-unused-expressions": [
"error",
{
"allowShortCircuit": false,
"allowTernary": false,
"allowTaggedTemplates": false
}
],
"no-unused-labels": "error",
"no-useless-call": "off",
"no-useless-concat": "error",
"no-useless-escape": "error",
"no-useless-return": "error",
"no-void": "error",
"no-warning-comments": [
"off",
{
"terms": [
"todo",
"fixme",
"xxx"
],
"location": "start"
}
],
"no-with": "error",
"prefer-promise-reject-errors": [
"error",
{
"allowEmptyReject": true
}
],
"radix": "error",
"require-await": "off",
"vars-on-top": "error",
"wrap-iife": [
"error",
"outside",
{
"functionPrototypeMethods": false
}
],
"yoda": "error",
"for-direction": "error",
"getter-return": [
"error",
{
"allowImplicit": true
}
],
"no-await-in-loop": "error",
"no-compare-neg-zero": "error",
"no-cond-assign": [
"error",
"always"
],
"no-console": "warn",
"no-constant-condition": "warn",
"no-control-regex": "error",
"no-debugger": "error",
"no-dupe-args": "error",
"no-dupe-keys": "error",
"no-duplicate-case": "error",
"no-empty": "error",
"no-empty-character-class": "error",
"no-ex-assign": "error",
"no-extra-boolean-cast": "error",
"no-extra-parens": [
"off",
"all",
{
"conditionalAssign": true,
"nestedBinaryExpressions": false,
"returnAssign": false,
"ignoreJSX": "all",
"enforceForArrowConditionals": false
}
],
"no-extra-semi": "error",
"no-func-assign": "error",
"no-inner-declarations": "error",
"no-invalid-regexp": "error",
"no-irregular-whitespace": "error",
"no-obj-calls": "error",
"no-prototype-builtins": "error",
"no-regex-spaces": "error",
"no-sparse-arrays": "error",
"no-template-curly-in-string": "error",
"no-unexpected-multiline": "error",
"no-unreachable": "error",
"no-unsafe-finally": "error",
"no-unsafe-negation": "error",
"no-negated-in-lhs": "off",
"use-isnan": "error",
"valid-jsdoc": "off",
"valid-typeof": [
"error",
{
"requireStringLiterals": true
}
],
"callback-return": "off",
"global-require": "error",
"handle-callback-err": "off",
"no-buffer-constructor": "error",
"no-mixed-requires": [
"off",
false
],
"no-new-require": "error",
"no-path-concat": "error",
"no-process-env": "off",
"no-process-exit": "off",
"no-restricted-modules": "off",
"no-sync": "off",
"array-bracket-newline": [
"off",
"consistent"
],
"array-element-newline": [
"off",
{
"multiline": true,
"minItems": 3
}
],
"array-bracket-spacing": [
"error",
"never"
],
"block-spacing": [
"error",
"always"
],
"brace-style": [
"error",
"1tbs",
{
"allowSingleLine": true
}
],
"camelcase": [
"error",
{
"properties": "never"
}
],
"capitalized-comments": [
"off",
"never",
{
"line": {
"ignorePattern": ".*",
"ignoreInlineComments": true,
"ignoreConsecutiveComments": true
},
"block": {
"ignorePattern": ".*",
"ignoreInlineComments": true,
"ignoreConsecutiveComments": true
}
}
],
"comma-dangle": [
"error",
{
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "always-multiline"
}
],
"comma-spacing": [
"error",
{
"before": false,
"after": true
}
],
"comma-style": [
"error",
"last"
],
"computed-property-spacing": [
"error",
"never"
],
"consistent-this": "off",
"eol-last": [
"error",
"always"
],
"func-call-spacing": [
"error",
"never"
],
"func-name-matching": [
"off",
"always",
{
"includeCommonJSModuleExports": false
}
],
"func-names": "warn",
"func-style": [
"off",
"expression"
],
"function-paren-newline": [
"error",
"multiline"
],
"id-blacklist": "off",
"id-length": "off",
"id-match": "off",
"indent": [
"error",
2,
{
"SwitchCase": 1,
"VariableDeclarator": 1,
"outerIIFEBody": 1,
"FunctionDeclaration": {
"parameters": 1,
"body": 1
},
"FunctionExpression": {
"parameters": 1,
"body": 1
},
"CallExpression": {
"arguments": 1
},
"ArrayExpression": 1,
"ObjectExpression": 1,
"ImportDeclaration": 1,
"flatTernaryExpressions": false,
"ignoredNodes": [
"JSXElement",
"JSXElement *"
]
}
],
"jsx-quotes": [
"off",
"prefer-double"
],
"key-spacing": [
"error",
{
"beforeColon": false,
"afterColon": true
}
],
"keyword-spacing": [
"error",
{
"before": true,
"after": true,
"overrides": {
"return": {
"after": true
},
"throw": {
"after": true
},
"case": {
"after": true
}
}
}
],
"line-comment-position": [
"off",
{
"position": "above",
"ignorePattern": "",
"applyDefaultPatterns": true
}
],
"linebreak-style": [
"error",
"unix"
],
"lines-between-class-members": [
"off",
"always",
{
"exceptAfterSingleLine": false
}
],
"lines-around-comment": "off",
"lines-around-directive": [
"error",
{
"before": "always",
"after": "always"
}
],
"max-depth": [
"off",
4
],
"max-len": [
"error",
100,
2,
{
"ignoreUrls": true,
"ignoreComments": false,
"ignoreRegExpLiterals": true,
"ignoreStrings": true,
"ignoreTemplateLiterals": true
}
],
"max-lines": [
"off",
{
"max": 300,
"skipBlankLines": true,
"skipComments": true
}
],
"max-nested-callbacks": "off",
"max-params": [
"off",
3
],
"max-statements": [
"off",
10
],
"max-statements-per-line": [
"off",
{
"max": 1
}
],
"multiline-comment-style": [
"off",
"starred-block"
],
"multiline-ternary": [
"off",
"never"
],
"new-cap": [
"error",
{
"newIsCap": true,
"newIsCapExceptions": [],
"capIsNew": false,
"capIsNewExceptions": [
"Immutable.Map",
"Immutable.Set",
"Immutable.List"
]
}
],
"new-parens": "error",
"newline-after-var": "off",
"newline-before-return": "off",
"newline-per-chained-call": [
"error",
{
"ignoreChainWithDepth": 4
}
],
"no-array-constructor": "error",
"no-bitwise": "error",
"no-continue": "error",
"no-inline-comments": "off",
"no-lonely-if": "error",
"no-mixed-operators": [
"error",
{
"groups": [
[
"+",
"-",
"*",
"/",
"%",
"**"
],
[
"&",
"|",
"^",
"~",
"<<",
">>",
">>>"
],
[
"==",
"!=",
"===",
"!==",
">",
">=",
"<",
"<="
],
[
"&&",
"||"
],
[
"in",
"instanceof"
]
],
"allowSamePrecedence": false
}
],
"no-mixed-spaces-and-tabs": "error",
"no-multi-assign": [
"error"
],
"no-multiple-empty-lines": [
"error",
{
"max": 2,
"maxEOF": 1
}
],
"no-negated-condition": "off",
"no-nested-ternary": "error",
"no-new-object": "error",
"no-plusplus": "error",
"no-restricted-syntax": [
"error",
{
"selector": "ForInStatement",
"message": "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array."
},
{
"selector": "ForOfStatement",
"message": "iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations."
},
{
"selector": "LabeledStatement",
"message": "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."
},
{
"selector": "WithStatement",
"message": "`with` is disallowed in strict mode because it makes code impossible to predict and optimize."
}
],
"no-spaced-func": "error",
"no-tabs": "error",
"no-ternary": "off",
"no-trailing-spaces": [
"error",
{
"skipBlankLines": false,
"ignoreComments": false
}
],
"no-underscore-dangle": [
"error",
{
"allow": [],
"allowAfterThis": false,
"allowAfterSuper": false,
"enforceInMethodNames": false
}
],
"no-unneeded-ternary": [
"error",
{
"defaultAssignment": false
}
],
"no-whitespace-before-property": "error",
"nonblock-statement-body-position": "off",
"object-curly-spacing": [
"error",
"always"
],
"object-curly-newline": [
"error",
{
"ObjectExpression": {
"minProperties": 4,
"multiline": true,
"consistent": true
},
"ObjectPattern": {
"minProperties": 4,
"multiline": true,
"consistent": true
}
}
],
"object-property-newline": [
"error",
{
"allowMultiplePropertiesPerLine": true
}
],
"one-var": [
"error",
"never"
],
"one-var-declaration-per-line": [
"error",
"always"
],
"operator-assignment": [
"error",
"always"
],
"operator-linebreak": "off",
"padded-blocks": [
"error",
{
"blocks": "never",
"classes": "never",
"switches": "never"
}
],
"padding-line-between-statements": "off",
"quote-props": [
"error",
"as-needed",
{
"keywords": false,
"unnecessary": true,
"numbers": false
}
],
"quotes": [
"error",
"single",
{
"avoidEscape": true
}
],
"require-jsdoc": "off",
"semi": [
"error",
"always"
],
"semi-spacing": [
"error",
{
"before": false,
"after": true
}
],
"semi-style": [
"error",
"last"
],
"sort-keys": [
"off",
"asc",
{
"caseSensitive": false,
"natural": true
}
],
"sort-vars": "off",
"space-before-blocks": "error",
"space-before-function-paren": [
"error",
{
"anonymous": "always",
"named": "never",
"asyncArrow": "always"
}
],
"space-in-parens": [
"error",
"never"
],
"space-infix-ops": "error",
"space-unary-ops": [
"error",
{
"words": true,
"nonwords": false,
"overrides": {}
}
],
"spaced-comment": [
"error",
"always",
{
"line": {
"exceptions": [
"-",
"+"
],
"markers": [
"=",
"!"
]
},
"block": {
"exceptions": [
"-",
"+"
],
"markers": [
"=",
"!"
],
"balanced": true
}
}
],
"switch-colon-spacing": [
"error",
{
"after": true,
"before": false
}
],
"template-tag-spacing": [
"error",
"never"
],
"unicode-bom": [
"error",
"never"
],
"wrap-regex": "off",
"init-declarations": "off",
"no-catch-shadow": "off",
"no-delete-var": "error",
"no-label-var": "error",
"no-restricted-globals": [
"error",
"isFinite",
"isNaN",
"addEventListener",
"blur",
"close",
"closed",
"confirm",
"defaultStatus",
"event",
"external",
"defaultstatus",
"find",
"focus",
"frameElement",
"frames",
"history",
"innerHeight",
"innerWidth",
"length",
"location",
"locationbar",
"menubar",
"moveBy",
"moveTo",
"name",
"onblur",
"onerror",
"onfocus",
"onload",
"onresize",
"onunload",
"open",
"opener",
"opera",
"outerHeight",
"outerWidth",
"pageXOffset",
"pageYOffset",
"parent",
"print",
"removeEventListener",
"resizeBy",
"resizeTo",
"screen",
"screenLeft",
"screenTop",
"screenX",
"screenY",
"scroll",
"scrollbars",
"scrollBy",
"scrollTo",
"scrollX",
"scrollY",
"self",
"status",
"statusbar",
"stop",
"toolbar",
"top"
],
"no-shadow": "error",
"no-shadow-restricted-names": "error",
"no-undef": "error",
"no-undef-init": "error",
"no-undefined": "off",
"no-unused-vars": [
"error",
{
"vars": "all",
"args": "after-used",
"ignoreRestSiblings": true
}
],
"no-use-before-define": [
"error",
{
"functions": true,
"classes": true,
"variables": true
}
],
"arrow-body-style": [
"error",
"as-needed",
{
"requireReturnForObjectLiteral": false
}
],
"arrow-parens": [
"error",
"as-needed",
{
"requireForBlockBody": true
}
],
"arrow-spacing": [
"error",
{
"before": true,
"after": true
}
],
"constructor-super": "error",
"generator-star-spacing": [
"error",
{
"before": false,
"after": true
}
],
"no-class-assign": "error",
"no-confusing-arrow": [
"error",
{
"allowParens": true
}
],
"no-const-assign": "error",
"no-dupe-class-members": "error",
"no-duplicate-imports": "off",
"no-new-symbol": "error",
"no-restricted-imports": "off",
"no-this-before-super": "error",
"no-useless-computed-key": "error",
"no-useless-constructor": "error",
"no-useless-rename": [
"error",
{
"ignoreDestructuring": false,
"ignoreImport": false,
"ignoreExport": false
}
],
"no-var": "error",
"object-shorthand": [
"error",
"always",
{
"ignoreConstructors": false,
"avoidQuotes": true
}
],
"prefer-arrow-callback": [
"error",
{
"allowNamedFunctions": false,
"allowUnboundThis": true
}
],
"prefer-const": [
"error",
{
"destructuring": "any",
"ignoreReadBeforeAssign": true
}
],
"prefer-destructuring": [
"error",
{
"VariableDeclarator": {
"array": false,
"object": true
},
"AssignmentExpression": {
"array": true,
"object": true
}
},
{
"enforceForRenamedProperties": false
}
],
"prefer-numeric-literals": "error",
"prefer-reflect": "off",
"prefer-rest-params": "error",
"prefer-spread": "error",
"prefer-template": "error",
"require-yield": "error",
"rest-spread-spacing": [
"error",
"never"
],
"sort-imports": [
"off",
{
"ignoreCase": false,
"ignoreMemberSort": false,
"memberSyntaxSortOrder": [
"none",
"all",
"multiple",
"single"
]
}
],
"symbol-description": "error",
"template-curly-spacing": "error",
"yield-star-spacing": [
"error",
"after"
],
"import/no-unresolved": [
"error",
{
"commonjs": true,
"caseSensitive": true
}
],
"import/named": "off",
"import/default": "off",
"import/namespace": "off",
"import/export": "error",
"import/no-named-as-default": "error",
"import/no-named-as-default-member": "error",
"import/no-deprecated": "off",
"import/no-extraneous-dependencies": [
"error",
{
"devDependencies": [
"test/**",
"tests/**",
"spec/**",
"**/__tests__/**",
"test.{js,jsx}",
"test-*.{js,jsx}",
"**/*.{test,spec}.{js,jsx}",
"**/jest.config.js",
"**/webpack.config.js",
"**/webpack.config.*.js",
"**/rollup.config.js",
"**/rollup.config.*.js",
"**/gulpfile.js",
"**/gulpfile.*.js",
"**/Gruntfile{,.js}",
"**/protractor.conf.js",
"**/protractor.conf.*.js"
],
"optionalDependencies": false
}
],
"import/no-mutable-exports": "error",
"import/no-commonjs": "off",
"import/no-amd": "error",
"import/no-nodejs-modules": "off",
"import/first": [
"error",
"absolute-first"
],
"import/imports-first": "off",
"import/no-duplicates": "error",
"import/no-namespace": "off",
"import/extensions": [
"error",
"always",
{
"js": "never",
"jsx": "never"
}
],
"import/order": [
"off",
{
"groups": [
"builtin",
"external",
"internal",
"parent",
"sibling",
"index"
],
"newlines-between": "never"
}
],
"import/newline-after-import": "error",
"import/prefer-default-export": "error",
"import/no-restricted-paths": "off",
"import/max-dependencies": [
"off",
{
"max": 10
}
],
"import/no-absolute-path": "error",
"import/no-dynamic-require": "error",
"import/no-internal-modules": [
"off",
{
"allow": []
}
],
"import/unambiguous": "off",
"import/no-webpack-loader-syntax": "error",
"import/no-unassigned-import": "off",
"import/no-named-default": "error",
"import/no-anonymous-default-export": [
"off",
{
"allowArray": false,
"allowArrowFunction": false,
"allowAnonymousClass": false,
"allowAnonymousFunction": false,
"allowLiteral": false,
"allowObject": false
}
],
"strict": "error"
},
"parserOptions": {
"ecmaFeatures": {
"globalReturn": true,
"generators": false,
"objectLiteralDuplicateProperties": false,
"experimentalObjectRestSpread": true
},
"ecmaVersion": 2017,
"sourceType": "module"
},
"plugins": [
"import"
],
"settings": {
"import/resolver": {
"node": {
"extensions": [
".js",
".json"
]
}
},
"import/extensions": [
".js",
".jsx"
],
"import/core-modules": [],
"import/ignore": [
"node_modules",
"\\.(coffee|scss|css|less|hbs|svg|json)$"
]
},
"extends": [
"/Users/me/my-project/node_modules/eslint-config-airbnb-base/rules/best-practices.js",
"/Users/me/my-project/node_modules/eslint-config-airbnb-base/rules/errors.js",
"/Users/me/my-project/node_modules/eslint-config-airbnb-base/rules/node.js",
"/Users/me/my-project/node_modules/eslint-config-airbnb-base/rules/style.js",
"/Users/me/my-project/node_modules/eslint-config-airbnb-base/rules/variables.js",
"/Users/me/my-project/node_modules/eslint-config-airbnb-base/rules/es6.js",
"/Users/me/my-project/node_modules/eslint-config-airbnb-base/rules/imports.js",
"airbnb-base"
]
}
What did you do? Please include the actual source code causing the issue, as well as the command that you used to run ESLint.
function doSomething() {
}
(async () => {
// eslint-disable-next-line no-restricted-syntax
for (const item of [1, 2, 3]) {
/* eslint-disable no-await-in-loop */
await doSomething(item);
}
})();
./node_modules/.bin/eslint 1.js
What did you expect to happen?
The eslint should pass (display nothing).
What actually happened? Please include the actual, raw output from ESLint.
/Users/me/my-project/npm-dmx-utils/lib/db.js
6:33 error Unexpected `await` inside a loop no-await-in-loop
✖ 1 problem (1 error, 0 warnings)
More info
Please notice in the example above await
is in the 8. line but eslint shows an error in the 6. line.
On the other hand such code passes:
function doSomething() {
}
(async () => {
/* eslint-disable no-await-in-loop */
// eslint-disable-next-line no-restricted-syntax
for (const item of [1, 2, 3]) {
await doSomething(item);
}
})();
So it looks like the entire for / of
loop is treated as a single line.
Metadata
Metadata
Assignees
Labels
acceptedThere is consensus among the team that this change meets the criteria for inclusionThere is consensus among the team that this change meets the criteria for inclusionarchived due to ageThis issue has been archived; please open a new issue for any further discussionThis issue has been archived; please open a new issue for any further discussionbugESLint is working incorrectlyESLint is working incorrectlypatch candidateThis issue may necessitate a patch release in the next few daysThis issue may necessitate a patch release in the next few daysregressionSomething brokeSomething brokeruleRelates to ESLint's core rulesRelates to ESLint's core rules