Skip to content

[no-unused-vars] Exception hit with default parameter in v.4.0.0-alpha.5 #2369

@mckennapsean

Description

@mckennapsean

Repro

{
  "rules": {
    "@typescript-eslint/no-unused-vars": "error" 
  }
}
export class Test {
    constructor(@Optional() value: number[] = []) {
        console.log(value);
    }
}

function Optional<T>(): (targetClass: any, parameter: T, index: number) => void {
    return (klass: any, parameter: T, index: number) => {
        console.log(klass);
        console.log(parameter);
        console.log(index);
    };
}

Expected Result

No errors.

Actual Result

None - error is hit:
"Cannot read property 'type' of undefined Occurred while linting .../test.ts:1"

Additional Info

In previous versions of typescript-eslint, the function Optional is incorrectly reported as an unused var.

Removing the default parameter (= []) causes the rule to parse & the file to pass linting checks as expected (this was true in previous versions too).

Versions

package version
@typescript-eslint/eslint-plugin 4.0.0-alpha.5
@typescript-eslint/parser 4.0.0-alpha.5
TypeScript 3.7.5
ESLint 7.6.0
node 12.13.0
npm 6.12.0

Debug details from flagged run

  eslint:cli CLI args: [ '--ext', '.ts', 'folder/folder2/test.ts', '--debug' ] +0ms
  eslint:cli Running on files +4ms
  eslint:config-array-factory Loading .eslintignore file: /home/seanm/project/.eslintignore +0ms
  eslint:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/**/node_modules/*' ], basePath: '/home/seanm/project', loose: false } ] +0ms
  eslint:ignore-pattern   processed: { basePath: '/home/seanm/project', patterns: [ '/**/node_modules/*' ] } +2ms
  eslint:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/**/node_modules/*' ], basePath: '/home/seanm/project', loose: false } ] +0ms
  eslint:ignore-pattern   processed: { basePath: '/home/seanm/project', patterns: [ '/**/node_modules/*' ] } +0ms
  eslint:file-enumerator Start to iterate files: [ 'folder/folder2/test.ts' ] +0ms
  eslint:file-enumerator File: /home/seanm/project/folder/folder2/test.ts +0ms
  eslint:cascading-config-array-factory Load config files for /home/seanm/project/folder/folder2. +0ms
  eslint:cascading-config-array-factory No cache found: /home/seanm/project/folder/folder2. +0ms
  eslint:config-array-factory Loading legacy config file: /home/seanm/project/folder/folder2/.eslintrc +4ms
  eslint:config-array-factory Config file found: /home/seanm/project/folder/folder2/.eslintrc +11ms
  eslint:config-array-factory Loading parser "@typescript-eslint/parser" from /home/seanm/project/folder/folder2/.eslintrc +0ms
  eslint:config-array-factory Loaded: @typescript-eslint/parser@4.0.0-alpha.5+35295892 (/home/seanm/project/node_modules/@typescript-eslint/parser/dist/index.js) +0ms
  eslint:config-array-factory Loading plugin "@typescript-eslint" from /home/seanm/project/folder/folder2/.eslintrc +156ms
  eslint:config-array-factory Loaded: @typescript-eslint/eslint-plugin@4.0.0-alpha.5+35295892 (/home/seanm/project/node_modules/@typescript-eslint/eslint-plugin/dist/index.js) +1ms
  eslint:config-array-factory Plugin /home/seanm/project/node_modules/@typescript-eslint/eslint-plugin/dist/index.js loaded in: 92ms +92ms
  eslint:cascading-config-array-factory No cache found: /home/seanm/project/folder/folder2. +261ms
  eslint:config-array-factory Config file not found on /home/seanm/project/folder/folder2 +0ms
  eslint:cascading-config-array-factory No cache found: /home/seanm/project/folder. +0ms
  eslint:config-array-factory Config file not found on /home/seanm/project/folder +0ms
  eslint:cascading-config-array-factory No cache found: /home/seanm/project/app/webroot. +0ms
  eslint:config-array-factory Config file not found on /home/seanm/project/app/webroot +1ms
  eslint:cascading-config-array-factory No cache found: /home/seanm/project/app. +1ms
  eslint:config-array-factory Config file not found on /home/seanm/project/app +0ms
  eslint:cascading-config-array-factory No cache found: /home/seanm/project. +0ms
  eslint:config-array-factory Loading legacy config file: /home/seanm/project/.eslintrc +0ms
  eslint:config-array-factory Config file found: /home/seanm/project/.eslintrc +1ms
  eslint:config-array-factory Loading parser "@typescript-eslint/parser" from /home/seanm/project/.eslintrc +0ms
  eslint:config-array-factory Loaded: @typescript-eslint/parser@4.0.0-alpha.5+35295892 (/home/seanm/project/node_modules/@typescript-eslint/parser/dist/index.js) +0ms
  eslint:config-array-factory Loading plugin "@typescript-eslint" from /home/seanm/project/.eslintrc +0ms
  eslint:config-array-factory Loaded: @typescript-eslint/eslint-plugin@4.0.0-alpha.5+35295892 (/home/seanm/project/node_modules/@typescript-eslint/eslint-plugin/dist/index.js) +0ms
  eslint:config-array-factory Plugin /home/seanm/project/node_modules/@typescript-eslint/eslint-plugin/dist/index.js loaded in: 0ms +0ms
  eslint:config-array-factory Loading plugin "simple-import-sort" from /home/seanm/project/.eslintrc +0ms
  eslint:config-array-factory Loaded: eslint-plugin-simple-import-sort@5.0.3 (/home/seanm/project/node_modules/eslint-plugin-simple-import-sort/index.js) +0ms
  eslint:config-array-factory Plugin /home/seanm/project/node_modules/eslint-plugin-simple-import-sort/index.js loaded in: 1ms +1ms
  eslint:config-array-factory Loading plugin "import" from /home/seanm/project/.eslintrc +0ms
  eslint:config-array-factory Loaded: eslint-plugin-import@2.22.0 (/home/seanm/project/node_modules/eslint-plugin-import/lib/index.js) +0ms
  eslint:config-array-factory Plugin /home/seanm/project/node_modules/eslint-plugin-import/lib/index.js loaded in: 34ms +34ms
  eslint:config-array-factory Loading plugin "unused-imports" from /home/seanm/project/.eslintrc +0ms
  eslint:config-array-factory Loaded: eslint-plugin-unused-imports@0.1.3 (/home/seanm/project/node_modules/eslint-plugin-unused-imports/lib/index.js) +1ms
  eslint:rules Loading rule 'accessor-pairs' (remaining=274) +0ms
  eslint:rules Loading rule 'array-bracket-newline' (remaining=273) +0ms
  eslint:rules Loading rule 'array-bracket-spacing' (remaining=272) +1ms
  eslint:rules Loading rule 'array-callback-return' (remaining=271) +0ms
  eslint:rules Loading rule 'array-element-newline' (remaining=270) +0ms
  eslint:rules Loading rule 'arrow-body-style' (remaining=269) +0ms
  eslint:rules Loading rule 'arrow-parens' (remaining=268) +0ms
  eslint:rules Loading rule 'arrow-spacing' (remaining=267) +1ms
  eslint:rules Loading rule 'block-scoped-var' (remaining=266) +0ms
  eslint:rules Loading rule 'block-spacing' (remaining=265) +0ms
  eslint:rules Loading rule 'brace-style' (remaining=264) +0ms
  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) +1ms
  eslint:rules Loading rule 'class-methods-use-this' (remaining=260) +0ms
  eslint:rules Loading rule 'comma-dangle' (remaining=259) +0ms
  eslint:rules Loading rule 'comma-spacing' (remaining=258) +0ms
  eslint:rules Loading rule 'comma-style' (remaining=257) +1ms
  eslint:rules Loading rule 'complexity' (remaining=256) +0ms
  eslint:rules Loading rule 'computed-property-spacing' (remaining=255) +0ms
  eslint:rules Loading rule 'consistent-return' (remaining=254) +0ms
  eslint:rules Loading rule 'consistent-this' (remaining=253) +0ms
  eslint:rules Loading rule 'constructor-super' (remaining=252) +1ms
  eslint:rules Loading rule 'curly' (remaining=251) +0ms
  eslint:rules Loading rule 'default-case' (remaining=250) +0ms
  eslint:rules Loading rule 'default-param-last' (remaining=249) +0ms
  eslint:rules Loading rule 'dot-location' (remaining=248) +0ms
  eslint:rules Loading rule 'dot-notation' (remaining=247) +1ms
  eslint:rules Loading rule 'eol-last' (remaining=246) +0ms
  eslint:rules Loading rule 'eqeqeq' (remaining=245) +0ms
  eslint:rules Loading rule 'for-direction' (remaining=244) +0ms
  eslint:rules Loading rule 'func-call-spacing' (remaining=243) +0ms
  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) +0ms
  eslint:rules Loading rule 'function-paren-newline' (remaining=238) +0ms
  eslint:rules Loading rule 'generator-star-spacing' (remaining=237) +0ms
  eslint:rules Loading rule 'getter-return' (remaining=236) +1ms
  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) +0ms
  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) +0ms
  eslint:rules Loading rule 'implicit-arrow-linebreak' (remaining=228) +0ms
  eslint:rules Loading rule 'indent' (remaining=227) +0ms
  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) +0ms
  eslint:rules Loading rule 'keyword-spacing' (remaining=222) +0ms
  eslint:rules Loading rule 'line-comment-position' (remaining=221) +0ms
  eslint:rules Loading rule 'linebreak-style' (remaining=220) +0ms
  eslint:rules Loading rule 'lines-around-comment' (remaining=219) +1ms
  eslint:rules Loading rule 'lines-around-directive' (remaining=218) +0ms
  eslint:rules Loading rule 'lines-between-class-members' (remaining=217) +0ms
  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) +0ms
  eslint:rules Loading rule 'max-lines-per-function' (remaining=212) +0ms
  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) +0ms
  eslint:rules Loading rule 'multiline-comment-style' (remaining=207) +0ms
  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) +0ms
  eslint:rules Loading rule 'newline-after-var' (remaining=203) +0ms
  eslint:rules Loading rule 'newline-before-return' (remaining=202) +0ms
  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) +0ms
  eslint:rules Loading rule 'no-await-in-loop' (remaining=197) +0ms
  eslint:rules Loading rule 'no-bitwise' (remaining=196) +0ms
  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) +0ms
  eslint:rules Loading rule 'no-class-assign' (remaining=191) +0ms
  eslint:rules Loading rule 'no-compare-neg-zero' (remaining=190) +0ms
  eslint:rules Loading rule 'no-cond-assign' (remaining=189) +0ms
  eslint:rules Loading rule 'no-confusing-arrow' (remaining=188) +1ms
  eslint:rules Loading rule 'no-console' (remaining=187) +0ms
  eslint:rules Loading rule 'no-const-assign' (remaining=186) +0ms
  eslint:rules Loading rule 'no-constant-condition' (remaining=185) +0ms
  eslint:rules Loading rule 'no-constructor-return' (remaining=184) +0ms
  eslint:rules Loading rule 'no-continue' (remaining=183) +1ms
  eslint:rules Loading rule 'no-control-regex' (remaining=182) +0ms
  eslint:rules Loading rule 'no-debugger' (remaining=181) +1ms
  eslint:rules Loading rule 'no-delete-var' (remaining=180) +1ms
  eslint:rules Loading rule 'no-div-regex' (remaining=179) +0ms
  eslint:rules Loading rule 'no-dupe-args' (remaining=178) +0ms
  eslint:rules Loading rule 'no-dupe-class-members' (remaining=177) +0ms
  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) +0ms
  eslint:rules Loading rule 'no-duplicate-imports' (remaining=173) +1ms
  eslint:rules Loading rule 'no-else-return' (remaining=172) +0ms
  eslint:rules Loading rule 'no-empty' (remaining=171) +0ms
  eslint:rules Loading rule 'no-empty-character-class' (remaining=170) +0ms
  eslint:rules Loading rule 'no-empty-function' (remaining=169) +0ms
  eslint:rules Loading rule 'no-empty-pattern' (remaining=168) +0ms
  eslint:rules Loading rule 'no-eq-null' (remaining=167) +1ms
  eslint:rules Loading rule 'no-eval' (remaining=166) +0ms
  eslint:rules Loading rule 'no-ex-assign' (remaining=165) +0ms
  eslint:rules Loading rule 'no-extend-native' (remaining=164) +0ms
  eslint:rules Loading rule 'no-extra-bind' (remaining=163) +0ms
  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) +0ms
  eslint:rules Loading rule 'no-floating-decimal' (remaining=157) +0ms
  eslint:rules Loading rule 'no-func-assign' (remaining=156) +0ms
  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) +0ms
  eslint:rules Loading rule 'no-import-assign' (remaining=151) +0ms
  eslint:rules Loading rule 'no-inline-comments' (remaining=150) +0ms
  eslint:rules Loading rule 'no-inner-declarations' (remaining=149) +1ms
  eslint:rules Loading rule 'no-invalid-regexp' (remaining=148) +0ms
  eslint:rules Loading rule 'no-invalid-this' (remaining=147) +0ms
  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) +0ms
  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) +0ms
  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) +1ms
  eslint:rules Loading rule 'no-mixed-requires' (remaining=136) +0ms
  eslint:rules Loading rule 'no-mixed-spaces-and-tabs' (remaining=135) +1ms
  eslint:rules Loading rule 'no-multi-assign' (remaining=134) +0ms
  eslint:rules Loading rule 'no-multi-spaces' (remaining=133) +0ms
  eslint:rules Loading rule 'no-multi-str' (remaining=132) +0ms
  eslint:rules Loading rule 'no-multiple-empty-lines' (remaining=131) +0ms
  eslint:rules Loading rule 'no-native-reassign' (remaining=130) +0ms
  eslint:rules Loading rule 'no-negated-condition' (remaining=129) +1ms
  eslint:rules Loading rule 'no-negated-in-lhs' (remaining=128) +0ms
  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) +0ms
  eslint:rules Loading rule 'no-new-object' (remaining=124) +0ms
  eslint:rules Loading rule 'no-new-require' (remaining=123) +0ms
  eslint:rules Loading rule 'no-new-symbol' (remaining=122) +1ms
  eslint:rules Loading rule 'no-new-wrappers' (remaining=121) +0ms
  eslint:rules Loading rule 'no-obj-calls' (remaining=120) +0ms
  eslint:rules Loading rule 'no-octal' (remaining=119) +0ms
  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) +0ms
  eslint:rules Loading rule 'no-plusplus' (remaining=115) +1ms
  eslint:rules Loading rule 'no-process-env' (remaining=114) +0ms
  eslint:rules Loading rule 'no-process-exit' (remaining=113) +0ms
  eslint:rules Loading rule 'no-proto' (remaining=112) +0ms
  eslint:rules Loading rule 'no-prototype-builtins' (remaining=111) +0ms
  eslint:rules Loading rule 'no-redeclare' (remaining=110) +1ms
  eslint:rules Loading rule 'no-regex-spaces' (remaining=109) +0ms
  eslint:rules Loading rule 'no-restricted-globals' (remaining=108) +0ms
  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) +0ms
  eslint:rules Loading rule 'no-restricted-syntax' (remaining=104) +0ms
  eslint:rules Loading rule 'no-return-assign' (remaining=103) +0ms
  eslint:rules Loading rule 'no-return-await' (remaining=102) +0ms
  eslint:rules Loading rule 'no-script-url' (remaining=101) +0ms
  eslint:rules Loading rule 'no-self-assign' (remaining=100) +1ms
  eslint:rules Loading rule 'no-self-compare' (remaining=99) +0ms
  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) +0ms
  eslint:rules Loading rule 'no-shadow-restricted-names' (remaining=95) +0ms
  eslint:rules Loading rule 'no-spaced-func' (remaining=94) +1ms
  eslint:rules Loading rule 'no-sparse-arrays' (remaining=93) +0ms
  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) +0ms
  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) +0ms
  eslint:rules Loading rule 'no-undef' (remaining=85) +0ms
  eslint:rules Loading rule 'no-undef-init' (remaining=84) +0ms
  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) +0ms
  eslint:rules Loading rule 'no-unneeded-ternary' (remaining=79) +0ms
  eslint:rules Loading rule 'no-unreachable' (remaining=78) +0ms
  eslint:rules Loading rule 'no-unsafe-finally' (remaining=77) +0ms
  eslint:rules Loading rule 'no-unsafe-negation' (remaining=76) +1ms
  eslint:rules Loading rule 'no-unused-expressions' (remaining=75) +0ms
  eslint:rules Loading rule 'no-unused-labels' (remaining=74) +0ms
  eslint:rules Loading rule 'no-unused-vars' (remaining=73) +0ms
  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) +0ms
  eslint:rules Loading rule 'no-useless-computed-key' (remaining=69) +1ms
  eslint:rules Loading rule 'no-useless-concat' (remaining=68) +0ms
  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) +0ms
  eslint:rules Loading rule 'no-void' (remaining=62) +0ms
  eslint:rules Loading rule 'no-warning-comments' (remaining=61) +0ms
  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) +0ms
  eslint:rules Loading rule 'object-curly-spacing' (remaining=56) +1ms
  eslint:rules Loading rule 'object-property-newline' (remaining=55) +0ms
  eslint:rules Loading rule 'object-shorthand' (remaining=54) +0ms
  eslint:rules Loading rule 'one-var' (remaining=53) +0ms
  eslint:rules Loading rule 'one-var-declaration-per-line' (remaining=52) +0ms
  eslint:rules Loading rule 'operator-assignment' (remaining=51) +0ms
  eslint:rules Loading rule 'operator-linebreak' (remaining=50) +1ms
  eslint:rules Loading rule 'padded-blocks' (remaining=49) +0ms
  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) +0ms
  eslint:rules Loading rule 'prefer-destructuring' (remaining=45) +0ms
  eslint:rules Loading rule 'prefer-exponentiation-operator' (remaining=44) +0ms
  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) +0ms
  eslint:rules Loading rule 'prefer-promise-reject-errors' (remaining=40) +0ms
  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) +0ms
  eslint:rules Loading rule 'prefer-spread' (remaining=36) +0ms
  eslint:rules Loading rule 'prefer-template' (remaining=35) +0ms
  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) +0ms
  eslint:rules Loading rule 'require-await' (remaining=30) +0ms
  eslint:rules Loading rule 'require-jsdoc' (remaining=29) +0ms
  eslint:rules Loading rule 'require-unicode-regexp' (remaining=28) +1ms
  eslint:rules Loading rule 'require-yield' (remaining=27) +0ms
  eslint:rules Loading rule 'rest-spread-spacing' (remaining=26) +0ms
  eslint:rules Loading rule 'semi' (remaining=25) +0ms
  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) +0ms
  eslint:rules Loading rule 'sort-keys' (remaining=21) +1ms
  eslint:rules Loading rule 'sort-vars' (remaining=20) +0ms
  eslint:rules Loading rule 'space-before-blocks' (remaining=19) +0ms
  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) +0ms
  eslint:rules Loading rule 'spaced-comment' (remaining=14) +0ms
  eslint:rules Loading rule 'strict' (remaining=13) +0ms
  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) +0ms
  eslint:rules Loading rule 'template-tag-spacing' (remaining=9) +0ms
  eslint:rules Loading rule 'unicode-bom' (remaining=8) +0ms
  eslint:rules Loading rule 'use-isnan' (remaining=7) +0ms
  eslint:rules Loading rule 'valid-jsdoc' (remaining=6) +1ms
  eslint:rules Loading rule 'valid-typeof' (remaining=5) +0ms
  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) +0ms
  eslint:rules Loading rule 'yield-star-spacing' (remaining=1) +0ms
  eslint:rules Loading rule 'yoda' (remaining=0) +0ms
  eslint:config-array-factory Plugin /home/seanm/project/node_modules/eslint-plugin-unused-imports/lib/index.js loaded in: 221ms +221ms
  eslint:cascading-config-array-factory Stop traversing because of 'root:true'. +258ms
  eslint:rules Loading rule 'no-var' (remaining=281) +0ms
  eslint:rules Loading rule 'prefer-const' (remaining=280) +0ms
  eslint:rules Loading rule 'curly' (remaining=279) +2ms
  eslint:rules Loading rule 'sort-imports' (remaining=278) +5ms
  eslint:cascading-config-array-factory Configuration was determined: ConfigArray [ { type: 'config', name: 'DefaultIgnorePattern', filePath: '', criteria: null, env: undefined, globals: undefined, ignorePattern: IgnorePattern { patterns: [Array], basePath: '/home/seanm/project', 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/seanm/project/.eslintrc', criteria: null, env: { node: true, browser: true }, globals: undefined, ignorePattern: undefined, noInlineConfig: undefined, parser: { error: null, filePath: '/home/seanm/project/node_modules/@typescript-eslint/parser/dist/index.js', id: '@typescript-eslint/parser', importerName: '.eslintrc', importerPath: '/home/seanm/project/.eslintrc' }, parserOptions: { ecmaVersion: 6, sourceType: 'module', ecmaFeatures: {} }, plugins: { '@typescript-eslint': [Object], 'simple-import-sort': [Object], import: [Object], 'unused-imports': [Object] }, processor: undefined, reportUnusedDisableDirectives: undefined, root: true, rules: { 'no-var': 'error', 'prefer-const': [Array], curly: 'warn', '@typescript-eslint/ban-types': [Array], '@typescript-eslint/explicit-member-accessibility': [Array], 'sort-imports': 'off', 'simple-import-sort/sort': 'warn', 'import/first': 'warn', 'import/newline-after-import': 'warn', 'import/no-duplicates': 'warn', '@typescript-eslint/no-unused-vars': 'error' }, settings: undefined }, { type: 'config', name: 'folder/folder2/.eslintrc', filePath: '/home/seanm/project/folder/folder2/.eslintrc', criteria: null, env: { node: true, browser: true }, globals: undefined, ignorePattern: undefined, noInlineConfig: undefined, parser: { error: null, filePath: '/home/seanm/project/node_modules/@typescript-eslint/parser/dist/index.js', id: '@typescript-eslint/parser', importerName: 'folder/folder2/.eslintrc', importerPath: '/home/seanm/project/folder/folder2/.eslintrc' }, parserOptions: { ecmaVersion: 6, sourceType: 'module', ecmaFeatures: {} }, plugins: { '@typescript-eslint': [Object] }, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: { '@typescript-eslint/no-unused-vars': 'error' }, settings: undefined }, { type: 'ignore', name: '.eslintignore', filePath: '/home/seanm/project/.eslintignore', criteria: null, env: undefined, globals: undefined, ignorePattern: IgnorePattern { patterns: [Array], basePath: '/home/seanm/project', loose: true }, noInlineConfig: undefined, parser: undefined, parserOptions: undefined, plugins: undefined, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: undefined, settings: undefined } ] on /home/seanm/project/folder/folder2 +11ms
  eslint:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/**/node_modules/*' ], basePath: '/home/seanm/project', loose: false }, IgnorePattern { patterns: [ '/bazel-*', 'node-modules', '**/js/app/externs/**/*.js', '**/js/plugins/**/*.js' ], basePath: '/home/seanm/project', loose: true } ] +533ms
  eslint:ignore-pattern   processed: { basePath: '/home/seanm/project', patterns: [ '/**/node_modules/*', '/bazel-*', 'node-modules', '**/js/app/externs/**/*.js', '**/js/plugins/**/*.js' ] } +0ms
  eslint:ignore-pattern Check {
  filePath: '/home/seanm/project/folder/folder2/test.ts',
  dot: false,
  relativePath: 'folder/folder2/test.ts',
  result: false
} +1ms
  eslint:cli-engine Lint /home/seanm/project/folder/folder2/test.ts +0ms
  eslint:linter Linting code for /home/seanm/project/folder/folder2/test.ts (pass 1) +0ms
  eslint:linter Verify +0ms
  eslint:linter With ConfigArray: /home/seanm/project/folder/folder2/test.ts +0ms
  eslint:linter An error occurred while traversing +28ms
  eslint:linter Filename: /home/seanm/project/folder/folder2/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/seanm/project/node_modules/@typescript-eslint/parser/dist/index.js +0ms
  eslint:linter Settings: {} +0ms

Oops! Something went wrong! :(

ESLint: 7.6.0

TypeError: Cannot read property 'type' of undefined
Occurred while linting /home/seanm/project/folder/folder2/test.ts:1
    at isForInRef (/home/seanm/project/node_modules/eslint/lib/rules/no-unused-vars.js:449:24)
    at /home/seanm/project/node_modules/eslint/lib/rules/no-unused-vars.js:486:21
    at Array.some (<anonymous>)
    at isUsedVariable (/home/seanm/project/node_modules/eslint/lib/rules/no-unused-vars.js:485:40)
    at collectUnusedVariables (/home/seanm/project/node_modules/eslint/lib/rules/no-unused-vars.js:596:26)
    at collectUnusedVariables (/home/seanm/project/node_modules/eslint/lib/rules/no-unused-vars.js:603:17)
    at Program:exit (/home/seanm/project/node_modules/eslint/lib/rules/no-unused-vars.js:615:36)
    at /home/seanm/project/node_modules/eslint/lib/linter/safe-emitter.js:45:58
    at Array.forEach (<anonymous>)
    at Object.emit (/home/seanm/project/node_modules/eslint/lib/linter/safe-emitter.js:45:38)

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingpackage: eslint-pluginIssues related to @typescript-eslint/eslint-plugin

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    pFad - Phonifier reborn

    Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

    Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


    Alternative Proxies:

    Alternative Proxy

    pFad Proxy

    pFad v3 Proxy

    pFad v4 Proxy