question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[no-unused-vars] Exception hit with string-key enums (previewing typescript-eslint v.4.0.0-alpha.8)

See original GitHub issue

Repro

{
  "root": true,
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": 6,
    "sourceType": "module",
    "ecmaFeatures": {}
  },
  "env": {
    "node": true,
    "browser": true
  },
  "plugins": [
    "@typescript-eslint",
    "unused-imports"
  ],
  "rules": {
    "unused-imports/no-unused-vars": "warn"
  }
}

enum Colors {
  "Red" = 1,
  "Blue" = 2,
  "Green" = 3,
}

Expected Result

Warning over Colors, since it is unused in the file.

Actual Result

None - error is hit: “Cannot read property ‘loc’ of undefined Occurred while linting …/test.ts:1”

Additional Info

This is testing the latest alpha v4 of typescript-eslint; it’s likely due to some backwards-incompatible change for this plugin (I haven’t dug into the source yet).

Context: I’m looking to adopt this plugin at my company to clean up our old imports. So far, it’s working really slick! The only snag is that I had to add a commit stripping out our string-keyed enums (and we needed the latest typescript-eslint due to bugs with the underlying rule that have been addressed in the major rewrite).

To be clear, this error is only hit when running this plugin with typescript-eslint/eslint-plugin@v.4.0.0-alpha.8. The typescript-eslint rule does not hit this error, and latest versions of both plugins are fine, too. This is more a heads-up for down the line. 😃 (and/or if I have time to look into it sooner)

It is possible to bypass this failure by removing the string-keyed enums, i.e.:

enum Colors {
  Red = 1,
  Blue = 2,
  Green = 3,
}

Versions

package version
@typescript-eslint/eslint-plugin 4.0.0-alpha.8
@typescript-eslint/parser 4.0.0-alpha.8
TypeScript 3.9.7
ESLint 7.6.0
node 14.6.0
npm 6.14.7

Debug details from flagged run

  eslint:cli CLI args: [ 'test.ts', '--debug' ] +0ms
  eslint:cli Running on files +5ms
  eslint:config-array-factory Loading JSON config file: /home/sean/Downloads/eslint/package.json +0ms
  eslint:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/**/node_modules/*' ], basePath: '/home/sean/Downloads/eslint', loose: false } ] +0ms
  eslint:ignore-pattern   processed: { basePath: '/home/sean/Downloads/eslint', patterns: [ '/**/node_modules/*' ] } +2ms
  eslint:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/**/node_modules/*' ], basePath: '/home/sean/Downloads/eslint', loose: false } ] +1ms
  eslint:ignore-pattern   processed: { basePath: '/home/sean/Downloads/eslint', patterns: [ '/**/node_modules/*' ] } +0ms
  eslint:file-enumerator Start to iterate files: [ 'test.ts' ] +0ms
  eslint:file-enumerator File: /home/sean/Downloads/eslint/test.ts +1ms
  eslint:cascading-config-array-factory Load config files for /home/sean/Downloads/eslint. +0ms
  eslint:cascading-config-array-factory No cache found: /home/sean/Downloads/eslint. +0ms
  eslint:config-array-factory Loading legacy config file: /home/sean/Downloads/eslint/.eslintrc +7ms
  eslint:config-array-factory Config file found: /home/sean/Downloads/eslint/.eslintrc +30ms
  eslint:config-array-factory Loading parser "@typescript-eslint/parser" from /home/sean/Downloads/eslint/.eslintrc +1ms
  eslint:config-array-factory Loaded: @typescript-eslint/parser@4.0.0-alpha.8+12b9c8a1 (/home/sean/Downloads/eslint/node_modules/@typescript-eslint/parser/dist/index.js) +1ms
  eslint:config-array-factory Loading plugin "@typescript-eslint" from /home/sean/Downloads/eslint/.eslintrc +313ms
  eslint:config-array-factory Loaded: @typescript-eslint/eslint-plugin@4.0.0-alpha.8+12b9c8a1 (/home/sean/Downloads/eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js) +1ms
  eslint:config-array-factory Plugin /home/sean/Downloads/eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js loaded in: 192ms +192ms
  eslint:config-array-factory Loading plugin "unused-imports" from /home/sean/Downloads/eslint/.eslintrc +1ms
  eslint:config-array-factory Loaded: eslint-plugin-unused-imports@0.1.3 (/home/sean/Downloads/eslint/node_modules/eslint-plugin-unused-imports/lib/index.js) +0ms
  eslint:rules Loading rule 'accessor-pairs' (remaining=274) +0ms
  eslint:rules Loading rule 'array-bracket-newline' (remaining=273) +1ms
  eslint:rules Loading rule 'array-bracket-spacing' (remaining=272) +1ms
  eslint:rules Loading rule 'array-callback-return' (remaining=271) +1ms
  eslint:rules Loading rule 'array-element-newline' (remaining=270) +0ms
  eslint:rules Loading rule 'arrow-body-style' (remaining=269) +1ms
  eslint:rules Loading rule 'arrow-parens' (remaining=268) +1ms
  eslint:rules Loading rule 'arrow-spacing' (remaining=267) +0ms
  eslint:rules Loading rule 'block-scoped-var' (remaining=266) +1ms
  eslint:rules Loading rule 'block-spacing' (remaining=265) +0ms
  eslint:rules Loading rule 'brace-style' (remaining=264) +1ms
  eslint:rules Loading rule 'callback-return' (remaining=263) +0ms
  eslint:rules Loading rule 'camelcase' (remaining=262) +0ms
  eslint:rules Loading rule 'capitalized-comments' (remaining=261) +0ms
  eslint:rules Loading rule 'class-methods-use-this' (remaining=260) +2ms
  eslint:rules Loading rule 'comma-dangle' (remaining=259) +0ms
  eslint:rules Loading rule 'comma-spacing' (remaining=258) +1ms
  eslint:rules Loading rule 'comma-style' (remaining=257) +0ms
  eslint:rules Loading rule 'complexity' (remaining=256) +1ms
  eslint:rules Loading rule 'computed-property-spacing' (remaining=255) +0ms
  eslint:rules Loading rule 'consistent-return' (remaining=254) +1ms
  eslint:rules Loading rule 'consistent-this' (remaining=253) +1ms
  eslint:rules Loading rule 'constructor-super' (remaining=252) +0ms
  eslint:rules Loading rule 'curly' (remaining=251) +1ms
  eslint:rules Loading rule 'default-case' (remaining=250) +1ms
  eslint:rules Loading rule 'default-param-last' (remaining=249) +0ms
  eslint:rules Loading rule 'dot-location' (remaining=248) +1ms
  eslint:rules Loading rule 'dot-notation' (remaining=247) +0ms
  eslint:rules Loading rule 'eol-last' (remaining=246) +0ms
  eslint:rules Loading rule 'eqeqeq' (remaining=245) +1ms
  eslint:rules Loading rule 'for-direction' (remaining=244) +0ms
  eslint:rules Loading rule 'func-call-spacing' (remaining=243) +1ms
  eslint:rules Loading rule 'func-name-matching' (remaining=242) +0ms
  eslint:rules Loading rule 'func-names' (remaining=241) +1ms
  eslint:rules Loading rule 'func-style' (remaining=240) +0ms
  eslint:rules Loading rule 'function-call-argument-newline' (remaining=239) +1ms
  eslint:rules Loading rule 'function-paren-newline' (remaining=238) +0ms
  eslint:rules Loading rule 'generator-star-spacing' (remaining=237) +1ms
  eslint:rules Loading rule 'getter-return' (remaining=236) +0ms
  eslint:rules Loading rule 'global-require' (remaining=235) +1ms
  eslint:rules Loading rule 'grouped-accessor-pairs' (remaining=234) +0ms
  eslint:rules Loading rule 'guard-for-in' (remaining=233) +1ms
  eslint:rules Loading rule 'handle-callback-err' (remaining=232) +0ms
  eslint:rules Loading rule 'id-blacklist' (remaining=231) +1ms
  eslint:rules Loading rule 'id-length' (remaining=230) +0ms
  eslint:rules Loading rule 'id-match' (remaining=229) +1ms
  eslint:rules Loading rule 'implicit-arrow-linebreak' (remaining=228) +0ms
  eslint:rules Loading rule 'indent' (remaining=227) +1ms
  eslint:rules Loading rule 'indent-legacy' (remaining=226) +0ms
  eslint:rules Loading rule 'init-declarations' (remaining=225) +1ms
  eslint:rules Loading rule 'jsx-quotes' (remaining=224) +0ms
  eslint:rules Loading rule 'key-spacing' (remaining=223) +1ms
  eslint:rules Loading rule 'keyword-spacing' (remaining=222) +1ms
  eslint:rules Loading rule 'line-comment-position' (remaining=221) +0ms
  eslint:rules Loading rule 'linebreak-style' (remaining=220) +1ms
  eslint:rules Loading rule 'lines-around-comment' (remaining=219) +0ms
  eslint:rules Loading rule 'lines-around-directive' (remaining=218) +1ms
  eslint:rules Loading rule 'lines-between-class-members' (remaining=217) +1ms
  eslint:rules Loading rule 'max-classes-per-file' (remaining=216) +0ms
  eslint:rules Loading rule 'max-depth' (remaining=215) +0ms
  eslint:rules Loading rule 'max-len' (remaining=214) +1ms
  eslint:rules Loading rule 'max-lines' (remaining=213) +1ms
  eslint:rules Loading rule 'max-lines-per-function' (remaining=212) +1ms
  eslint:rules Loading rule 'max-nested-callbacks' (remaining=211) +0ms
  eslint:rules Loading rule 'max-params' (remaining=210) +1ms
  eslint:rules Loading rule 'max-statements' (remaining=209) +0ms
  eslint:rules Loading rule 'max-statements-per-line' (remaining=208) +1ms
  eslint:rules Loading rule 'multiline-comment-style' (remaining=207) +1ms
  eslint:rules Loading rule 'multiline-ternary' (remaining=206) +0ms
  eslint:rules Loading rule 'new-cap' (remaining=205) +1ms
  eslint:rules Loading rule 'new-parens' (remaining=204) +1ms
  eslint:rules Loading rule 'newline-after-var' (remaining=203) +0ms
  eslint:rules Loading rule 'newline-before-return' (remaining=202) +1ms
  eslint:rules Loading rule 'newline-per-chained-call' (remaining=201) +0ms
  eslint:rules Loading rule 'no-alert' (remaining=200) +1ms
  eslint:rules Loading rule 'no-array-constructor' (remaining=199) +0ms
  eslint:rules Loading rule 'no-async-promise-executor' (remaining=198) +1ms
  eslint:rules Loading rule 'no-await-in-loop' (remaining=197) +0ms
  eslint:rules Loading rule 'no-bitwise' (remaining=196) +1ms
  eslint:rules Loading rule 'no-buffer-constructor' (remaining=195) +0ms
  eslint:rules Loading rule 'no-caller' (remaining=194) +1ms
  eslint:rules Loading rule 'no-case-declarations' (remaining=193) +0ms
  eslint:rules Loading rule 'no-catch-shadow' (remaining=192) +1ms
  eslint:rules Loading rule 'no-class-assign' (remaining=191) +0ms
  eslint:rules Loading rule 'no-compare-neg-zero' (remaining=190) +1ms
  eslint:rules Loading rule 'no-cond-assign' (remaining=189) +0ms
  eslint:rules Loading rule 'no-confusing-arrow' (remaining=188) +2ms
  eslint:rules Loading rule 'no-console' (remaining=187) +0ms
  eslint:rules Loading rule 'no-const-assign' (remaining=186) +1ms
  eslint:rules Loading rule 'no-constant-condition' (remaining=185) +0ms
  eslint:rules Loading rule 'no-constructor-return' (remaining=184) +1ms
  eslint:rules Loading rule 'no-continue' (remaining=183) +0ms
  eslint:rules Loading rule 'no-control-regex' (remaining=182) +1ms
  eslint:rules Loading rule 'no-debugger' (remaining=181) +3ms
  eslint:rules Loading rule 'no-delete-var' (remaining=180) +0ms
  eslint:rules Loading rule 'no-div-regex' (remaining=179) +1ms
  eslint:rules Loading rule 'no-dupe-args' (remaining=178) +0ms
  eslint:rules Loading rule 'no-dupe-class-members' (remaining=177) +1ms
  eslint:rules Loading rule 'no-dupe-else-if' (remaining=176) +0ms
  eslint:rules Loading rule 'no-dupe-keys' (remaining=175) +0ms
  eslint:rules Loading rule 'no-duplicate-case' (remaining=174) +1ms
  eslint:rules Loading rule 'no-duplicate-imports' (remaining=173) +0ms
  eslint:rules Loading rule 'no-else-return' (remaining=172) +1ms
  eslint:rules Loading rule 'no-empty' (remaining=171) +0ms
  eslint:rules Loading rule 'no-empty-character-class' (remaining=170) +1ms
  eslint:rules Loading rule 'no-empty-function' (remaining=169) +0ms
  eslint:rules Loading rule 'no-empty-pattern' (remaining=168) +1ms
  eslint:rules Loading rule 'no-eq-null' (remaining=167) +0ms
  eslint:rules Loading rule 'no-eval' (remaining=166) +1ms
  eslint:rules Loading rule 'no-ex-assign' (remaining=165) +1ms
  eslint:rules Loading rule 'no-extend-native' (remaining=164) +0ms
  eslint:rules Loading rule 'no-extra-bind' (remaining=163) +1ms
  eslint:rules Loading rule 'no-extra-boolean-cast' (remaining=162) +0ms
  eslint:rules Loading rule 'no-extra-label' (remaining=161) +1ms
  eslint:rules Loading rule 'no-extra-parens' (remaining=160) +0ms
  eslint:rules Loading rule 'no-extra-semi' (remaining=159) +0ms
  eslint:rules Loading rule 'no-fallthrough' (remaining=158) +1ms
  eslint:rules Loading rule 'no-floating-decimal' (remaining=157) +0ms
  eslint:rules Loading rule 'no-func-assign' (remaining=156) +1ms
  eslint:rules Loading rule 'no-global-assign' (remaining=155) +0ms
  eslint:rules Loading rule 'no-implicit-coercion' (remaining=154) +1ms
  eslint:rules Loading rule 'no-implicit-globals' (remaining=153) +0ms
  eslint:rules Loading rule 'no-implied-eval' (remaining=152) +1ms
  eslint:rules Loading rule 'no-import-assign' (remaining=151) +0ms
  eslint:rules Loading rule 'no-inline-comments' (remaining=150) +1ms
  eslint:rules Loading rule 'no-inner-declarations' (remaining=149) +0ms
  eslint:rules Loading rule 'no-invalid-regexp' (remaining=148) +1ms
  eslint:rules Loading rule 'no-invalid-this' (remaining=147) +1ms
  eslint:rules Loading rule 'no-irregular-whitespace' (remaining=146) +0ms
  eslint:rules Loading rule 'no-iterator' (remaining=145) +0ms
  eslint:rules Loading rule 'no-label-var' (remaining=144) +1ms
  eslint:rules Loading rule 'no-labels' (remaining=143) +0ms
  eslint:rules Loading rule 'no-lone-blocks' (remaining=142) +1ms
  eslint:rules Loading rule 'no-lonely-if' (remaining=141) +0ms
  eslint:rules Loading rule 'no-loop-func' (remaining=140) +1ms
  eslint:rules Loading rule 'no-magic-numbers' (remaining=139) +0ms
  eslint:rules Loading rule 'no-misleading-character-class' (remaining=138) +0ms
  eslint:rules Loading rule 'no-mixed-operators' (remaining=137) +2ms
  eslint:rules Loading rule 'no-mixed-requires' (remaining=136) +1ms
  eslint:rules Loading rule 'no-mixed-spaces-and-tabs' (remaining=135) +0ms
  eslint:rules Loading rule 'no-multi-assign' (remaining=134) +1ms
  eslint:rules Loading rule 'no-multi-spaces' (remaining=133) +0ms
  eslint:rules Loading rule 'no-multi-str' (remaining=132) +1ms
  eslint:rules Loading rule 'no-multiple-empty-lines' (remaining=131) +0ms
  eslint:rules Loading rule 'no-native-reassign' (remaining=130) +1ms
  eslint:rules Loading rule 'no-negated-condition' (remaining=129) +0ms
  eslint:rules Loading rule 'no-negated-in-lhs' (remaining=128) +1ms
  eslint:rules Loading rule 'no-nested-ternary' (remaining=127) +0ms
  eslint:rules Loading rule 'no-new' (remaining=126) +0ms
  eslint:rules Loading rule 'no-new-func' (remaining=125) +1ms
  eslint:rules Loading rule 'no-new-object' (remaining=124) +0ms
  eslint:rules Loading rule 'no-new-require' (remaining=123) +1ms
  eslint:rules Loading rule 'no-new-symbol' (remaining=122) +0ms
  eslint:rules Loading rule 'no-new-wrappers' (remaining=121) +0ms
  eslint:rules Loading rule 'no-obj-calls' (remaining=120) +1ms
  eslint:rules Loading rule 'no-octal' (remaining=119) +1ms
  eslint:rules Loading rule 'no-octal-escape' (remaining=118) +0ms
  eslint:rules Loading rule 'no-param-reassign' (remaining=117) +0ms
  eslint:rules Loading rule 'no-path-concat' (remaining=116) +1ms
  eslint:rules Loading rule 'no-plusplus' (remaining=115) +0ms
  eslint:rules Loading rule 'no-process-env' (remaining=114) +1ms
  eslint:rules Loading rule 'no-process-exit' (remaining=113) +0ms
  eslint:rules Loading rule 'no-proto' (remaining=112) +1ms
  eslint:rules Loading rule 'no-prototype-builtins' (remaining=111) +0ms
  eslint:rules Loading rule 'no-redeclare' (remaining=110) +0ms
  eslint:rules Loading rule 'no-regex-spaces' (remaining=109) +1ms
  eslint:rules Loading rule 'no-restricted-globals' (remaining=108) +1ms
  eslint:rules Loading rule 'no-restricted-imports' (remaining=107) +0ms
  eslint:rules Loading rule 'no-restricted-modules' (remaining=106) +1ms
  eslint:rules Loading rule 'no-restricted-properties' (remaining=105) +1ms
  eslint:rules Loading rule 'no-restricted-syntax' (remaining=104) +0ms
  eslint:rules Loading rule 'no-return-assign' (remaining=103) +1ms
  eslint:rules Loading rule 'no-return-await' (remaining=102) +0ms
  eslint:rules Loading rule 'no-script-url' (remaining=101) +1ms
  eslint:rules Loading rule 'no-self-assign' (remaining=100) +0ms
  eslint:rules Loading rule 'no-self-compare' (remaining=99) +1ms
  eslint:rules Loading rule 'no-sequences' (remaining=98) +0ms
  eslint:rules Loading rule 'no-setter-return' (remaining=97) +0ms
  eslint:rules Loading rule 'no-shadow' (remaining=96) +1ms
  eslint:rules Loading rule 'no-shadow-restricted-names' (remaining=95) +1ms
  eslint:rules Loading rule 'no-spaced-func' (remaining=94) +0ms
  eslint:rules Loading rule 'no-sparse-arrays' (remaining=93) +1ms
  eslint:rules Loading rule 'no-sync' (remaining=92) +0ms
  eslint:rules Loading rule 'no-tabs' (remaining=91) +0ms
  eslint:rules Loading rule 'no-template-curly-in-string' (remaining=90) +1ms
  eslint:rules Loading rule 'no-ternary' (remaining=89) +0ms
  eslint:rules Loading rule 'no-this-before-super' (remaining=88) +1ms
  eslint:rules Loading rule 'no-throw-literal' (remaining=87) +0ms
  eslint:rules Loading rule 'no-trailing-spaces' (remaining=86) +1ms
  eslint:rules Loading rule 'no-undef' (remaining=85) +0ms
  eslint:rules Loading rule 'no-undef-init' (remaining=84) +1ms
  eslint:rules Loading rule 'no-undefined' (remaining=83) +0ms
  eslint:rules Loading rule 'no-underscore-dangle' (remaining=82) +1ms
  eslint:rules Loading rule 'no-unexpected-multiline' (remaining=81) +0ms
  eslint:rules Loading rule 'no-unmodified-loop-condition' (remaining=80) +1ms
  eslint:rules Loading rule 'no-unneeded-ternary' (remaining=79) +1ms
  eslint:rules Loading rule 'no-unreachable' (remaining=78) +0ms
  eslint:rules Loading rule 'no-unsafe-finally' (remaining=77) +1ms
  eslint:rules Loading rule 'no-unsafe-negation' (remaining=76) +0ms
  eslint:rules Loading rule 'no-unused-expressions' (remaining=75) +1ms
  eslint:rules Loading rule 'no-unused-labels' (remaining=74) +0ms
  eslint:rules Loading rule 'no-unused-vars' (remaining=73) +1ms
  eslint:rules Loading rule 'no-use-before-define' (remaining=72) +0ms
  eslint:rules Loading rule 'no-useless-call' (remaining=71) +0ms
  eslint:rules Loading rule 'no-useless-catch' (remaining=70) +1ms
  eslint:rules Loading rule 'no-useless-computed-key' (remaining=69) +0ms
  eslint:rules Loading rule 'no-useless-concat' (remaining=68) +1ms
  eslint:rules Loading rule 'no-useless-constructor' (remaining=67) +0ms
  eslint:rules Loading rule 'no-useless-escape' (remaining=66) +0ms
  eslint:rules Loading rule 'no-useless-rename' (remaining=65) +1ms
  eslint:rules Loading rule 'no-useless-return' (remaining=64) +0ms
  eslint:rules Loading rule 'no-var' (remaining=63) +1ms
  eslint:rules Loading rule 'no-void' (remaining=62) +0ms
  eslint:rules Loading rule 'no-warning-comments' (remaining=61) +1ms
  eslint:rules Loading rule 'no-whitespace-before-property' (remaining=60) +0ms
  eslint:rules Loading rule 'no-with' (remaining=59) +1ms
  eslint:rules Loading rule 'nonblock-statement-body-position' (remaining=58) +0ms
  eslint:rules Loading rule 'object-curly-newline' (remaining=57) +1ms
  eslint:rules Loading rule 'object-curly-spacing' (remaining=56) +0ms
  eslint:rules Loading rule 'object-property-newline' (remaining=55) +1ms
  eslint:rules Loading rule 'object-shorthand' (remaining=54) +0ms
  eslint:rules Loading rule 'one-var' (remaining=53) +1ms
  eslint:rules Loading rule 'one-var-declaration-per-line' (remaining=52) +0ms
  eslint:rules Loading rule 'operator-assignment' (remaining=51) +1ms
  eslint:rules Loading rule 'operator-linebreak' (remaining=50) +0ms
  eslint:rules Loading rule 'padded-blocks' (remaining=49) +1ms
  eslint:rules Loading rule 'padding-line-between-statements' (remaining=48) +0ms
  eslint:rules Loading rule 'prefer-arrow-callback' (remaining=47) +1ms
  eslint:rules Loading rule 'prefer-const' (remaining=46) +2ms
  eslint:rules Loading rule 'prefer-destructuring' (remaining=45) +1ms
  eslint:rules Loading rule 'prefer-exponentiation-operator' (remaining=44) +1ms
  eslint:rules Loading rule 'prefer-named-capture-group' (remaining=43) +1ms
  eslint:rules Loading rule 'prefer-numeric-literals' (remaining=42) +0ms
  eslint:rules Loading rule 'prefer-object-spread' (remaining=41) +1ms
  eslint:rules Loading rule 'prefer-promise-reject-errors' (remaining=40) +1ms
  eslint:rules Loading rule 'prefer-reflect' (remaining=39) +1ms
  eslint:rules Loading rule 'prefer-regex-literals' (remaining=38) +0ms
  eslint:rules Loading rule 'prefer-rest-params' (remaining=37) +1ms
  eslint:rules Loading rule 'prefer-spread' (remaining=36) +0ms
  eslint:rules Loading rule 'prefer-template' (remaining=35) +1ms
  eslint:rules Loading rule 'quote-props' (remaining=34) +0ms
  eslint:rules Loading rule 'quotes' (remaining=33) +1ms
  eslint:rules Loading rule 'radix' (remaining=32) +0ms
  eslint:rules Loading rule 'require-atomic-updates' (remaining=31) +1ms
  eslint:rules Loading rule 'require-await' (remaining=30) +0ms
  eslint:rules Loading rule 'require-jsdoc' (remaining=29) +1ms
  eslint:rules Loading rule 'require-unicode-regexp' (remaining=28) +0ms
  eslint:rules Loading rule 'require-yield' (remaining=27) +1ms
  eslint:rules Loading rule 'rest-spread-spacing' (remaining=26) +0ms
  eslint:rules Loading rule 'semi' (remaining=25) +1ms
  eslint:rules Loading rule 'semi-spacing' (remaining=24) +0ms
  eslint:rules Loading rule 'semi-style' (remaining=23) +0ms
  eslint:rules Loading rule 'sort-imports' (remaining=22) +1ms
  eslint:rules Loading rule 'sort-keys' (remaining=21) +0ms
  eslint:rules Loading rule 'sort-vars' (remaining=20) +1ms
  eslint:rules Loading rule 'space-before-blocks' (remaining=19) +1ms
  eslint:rules Loading rule 'space-before-function-paren' (remaining=18) +0ms
  eslint:rules Loading rule 'space-in-parens' (remaining=17) +1ms
  eslint:rules Loading rule 'space-infix-ops' (remaining=16) +0ms
  eslint:rules Loading rule 'space-unary-ops' (remaining=15) +1ms
  eslint:rules Loading rule 'spaced-comment' (remaining=14) +3ms
  eslint:rules Loading rule 'strict' (remaining=13) +1ms
  eslint:rules Loading rule 'switch-colon-spacing' (remaining=12) +1ms
  eslint:rules Loading rule 'symbol-description' (remaining=11) +0ms
  eslint:rules Loading rule 'template-curly-spacing' (remaining=10) +1ms
  eslint:rules Loading rule 'template-tag-spacing' (remaining=9) +0ms
  eslint:rules Loading rule 'unicode-bom' (remaining=8) +1ms
  eslint:rules Loading rule 'use-isnan' (remaining=7) +0ms
  eslint:rules Loading rule 'valid-jsdoc' (remaining=6) +0ms
  eslint:rules Loading rule 'valid-typeof' (remaining=5) +3ms
  eslint:rules Loading rule 'vars-on-top' (remaining=4) +1ms
  eslint:rules Loading rule 'wrap-iife' (remaining=3) +0ms
  eslint:rules Loading rule 'wrap-regex' (remaining=2) +1ms
  eslint:rules Loading rule 'yield-star-spacing' (remaining=1) +0ms
  eslint:rules Loading rule 'yoda' (remaining=0) +1ms
  eslint:config-array-factory Plugin /home/sean/Downloads/eslint/node_modules/eslint-plugin-unused-imports/lib/index.js loaded in: 341ms +341ms
  eslint:cascading-config-array-factory Stop traversing because of 'root:true'. +881ms
  eslint:cascading-config-array-factory Configuration was determined: ConfigArray(2) [ { type: 'config', name: 'DefaultIgnorePattern', filePath: '', criteria: null, env: undefined, globals: undefined, ignorePattern: IgnorePattern { patterns: [Array], basePath: '/home/sean/Downloads/eslint', loose: false }, noInlineConfig: undefined, parser: undefined, parserOptions: undefined, plugins: undefined, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: undefined, settings: undefined }, { type: 'config', name: '.eslintrc', filePath: '/home/sean/Downloads/eslint/.eslintrc', criteria: null, env: { node: true, browser: true }, globals: undefined, ignorePattern: undefined, noInlineConfig: undefined, parser: { error: null, filePath: '/home/sean/Downloads/eslint/node_modules/@typescript-eslint/parser/dist/index.js', id: '@typescript-eslint/parser', importerName: '.eslintrc', importerPath: '/home/sean/Downloads/eslint/.eslintrc' }, parserOptions: { ecmaVersion: 6, sourceType: 'module', ecmaFeatures: {} }, plugins: { '@typescript-eslint': [Object], 'unused-imports': [Object] }, processor: undefined, reportUnusedDisableDirectives: undefined, root: true, rules: { 'unused-imports/no-unused-vars': 'warn' }, settings: undefined } ] on /home/sean/Downloads/eslint +5ms
  eslint:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/**/node_modules/*' ], basePath: '/home/sean/Downloads/eslint', loose: false } ] +890ms
  eslint:ignore-pattern   processed: { basePath: '/home/sean/Downloads/eslint', patterns: [ '/**/node_modules/*' ] } +1ms
  eslint:ignore-pattern Check {
  filePath: '/home/sean/Downloads/eslint/test.ts',
  dot: false,
  relativePath: 'test.ts',
  result: false
} +0ms
  eslint:cli-engine Lint /home/sean/Downloads/eslint/test.ts +0ms
  eslint:linter Linting code for /home/sean/Downloads/eslint/test.ts (pass 1) +0ms
  eslint:linter Verify +0ms
  eslint:linter With ConfigArray: /home/sean/Downloads/eslint/test.ts +0ms
  eslint:linter An error occurred while traversing +48ms
  eslint:linter Filename: /home/sean/Downloads/eslint/test.ts +0ms
  eslint:linter Line: 1 +0ms
  eslint:linter Parser Options: {
  ecmaFeatures: { globalReturn: false },
  ecmaVersion: 6,
  sourceType: 'module'
} +0ms
  eslint:linter Parser Path: /home/sean/Downloads/eslint/node_modules/@typescript-eslint/parser/dist/index.js +1ms
  eslint:linter Settings: {} +0ms

Oops! Something went wrong! :(

ESLint: 7.6.0

TypeError: Cannot read property 'loc' of undefined
Occurred while linting /home/sean/Downloads/eslint/test.ts:1
    at normalizeReportLoc (/home/sean/Downloads/eslint/node_modules/eslint-rule-composer/lib/rule-composer.js:47:26)
    at normalizeReport (/home/sean/Downloads/eslint/node_modules/eslint-rule-composer/lib/rule-composer.js:107:12)
    at Object.value [as report] (/home/sean/Downloads/eslint/node_modules/eslint-rule-composer/lib/rule-composer.js:143:72)
    at Program:exit (/home/sean/Downloads/eslint/node_modules/eslint-plugin-unused-imports/node_modules/eslint/lib/rules/no-unused-vars.js:596:33)
    at /home/sean/Downloads/eslint/node_modules/eslint/lib/linter/safe-emitter.js:45:58
    at Array.forEach (<anonymous>)
    at Object.emit (/home/sean/Downloads/eslint/node_modules/eslint/lib/linter/safe-emitter.js:45:38)
    at NodeEventGenerator.applySelector (/home/sean/Downloads/eslint/node_modules/eslint/lib/linter/node-event-generator.js:254:26)
    at NodeEventGenerator.applySelectors (/home/sean/Downloads/eslint/node_modules/eslint/lib/linter/node-event-generator.js:283:22)
    at NodeEventGenerator.leaveNode (/home/sean/Downloads/eslint/node_modules/eslint/lib/linter/node-event-generator.js:306:14)

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:1
  • Comments:6 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
sweeplinecommented, Aug 25, 2020

Thanks for this, hopefully it is not eslint-rule-composer that is causing this as it seems that the maintainer is not active anymore. I’ll take a closer look soon hopefully.

0reactions
mckennapseancommented, Feb 6, 2021

Thanks for checking! Glad to see it is working again 😃

My company ended up going with this prettier plugin, since it sorts and removes unused imports automatically, which is more ideal for us. Thanks for your work here and the assist on this issue!

Read more comments on GitHub >

github_iconTop Results From Across the Web

[no-unused-vars] False positive on enums #1197 - GitHub
Hi guys, I am using React with --typescript flag and having problems with decalring and using enums as it reports "no-unused-vars".
Read more >
ESLint - Configuring "no-unused-vars" for TypeScript
I think the use of "plugin:@typescript-eslint/eslint-recommended" introduces bunch of unwanted rules. One is probably better off using ...
Read more >
no-unused-vars - typescript-eslint
no-unused-vars. Disallow unused variables. ✓. Extending "plugin:@typescript-eslint/recommended" in an ESLint configuration enables this rule.
Read more >
Handbook - Enums - TypeScript
We'll first start off with numeric enums, which are probably more familiar if you're coming from other languages. An enum can be defined...
Read more >
eslint-plugin-unused-imports - bytemeta
[no-unused-vars] Exception hit with string-key enums (previewing typescript-eslint v.4.0.0-alpha.8). xenoterracide. xenoterracide CLOSED.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found