Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[allowAutomaticSingleRunInference] auto fix mangles files #3626

Closed
3 tasks done
bhollis opened this issue Jul 11, 2021 · 5 comments · Fixed by #3655
Closed
3 tasks done

[allowAutomaticSingleRunInference] auto fix mangles files #3626

bhollis opened this issue Jul 11, 2021 · 5 comments · Fixed by #3655
Labels
bug Something isn't working package: typescript-estree Issues related to @typescript-eslint/typescript-estree

Comments

@bhollis
Copy link

bhollis commented Jul 11, 2021

  • I have tried restarting my IDE and the issue persists.
  • I have updated to the latest version of the packages.
  • I have read the FAQ and my problem is not listed.

Repro

The repro picks a fixable rule, violates that rule in 5 identical files, then runs eslint --fix on them with an .eslintrc that specifies "allowAutomaticSingleRunInference": true. I happened to first run into this with consistent-type-imports but I've reproduced it with other autofix rules.

https://github.com/bhollis/allowAutomaticSingleRunInference-repro

Expected Result

-import { MyType } from "./types";
+import type { MyType } from "./types";

Actual Result

-import { MyType } from "./types";
+import type type type type type type type type type type { MyType } from "./types";

The mangling isn't always a repetition like this.

Versions

package version
@typescript-eslint/eslint-plugin 4.28.2
@typescript-eslint/parser 4.28.2
TypeScript 4.3.5
ESLint 7.30.0
node v16.3.0

Additional Info

Output of "eslint --fix . --ext .ts --debug"
> ts-lint-repro@1.0.0 lint
> eslint --fix . --ext .ts --debug

eslint:cli CLI args: [ '--fix', '.', '--ext', '.ts', '--debug' ] +0ms
eslint:cli Running on files +4ms
eslintrc:config-array-factory Loading JSON config file: /Users/brh/Documents/oss/ts-lint-repro/package.json +0ms
eslintrc:ignore-pattern Create with: [ IgnorePattern { patterns: [ '//node_modules/*' ], basePath: '/Users/brh/Documents/oss/ts-lint-repro', loose: false } ] +0ms
eslintrc:ignore-pattern processed: { basePath: '/Users/brh/Documents/oss/ts-lint-repro', patterns: [ '/
/node_modules/' ] } +2ms
eslintrc:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/**/node_modules/
' ], basePath: '/Users/brh/Documents/oss/ts-lint-repro', loose: false } ] +0ms
eslintrc:ignore-pattern processed: { basePath: '/Users/brh/Documents/oss/ts-lint-repro', patterns: [ '//node_modules/*' ] } +1ms
eslint:file-enumerator Start to iterate files: [ '.' ] +0ms
eslint:file-enumerator Directory: /Users/brh/Documents/oss/ts-lint-repro +1ms
eslint:file-enumerator Enter the directory: /Users/brh/Documents/oss/ts-lint-repro +0ms
eslintrc:cascading-config-array-factory Load config files for /Users/brh/Documents/oss/ts-lint-repro. +0ms
eslintrc:cascading-config-array-factory No cache found: /Users/brh/Documents/oss/ts-lint-repro. +0ms
eslintrc:config-array-factory Loading legacy config file: /Users/brh/Documents/oss/ts-lint-repro/.eslintrc +6ms
eslintrc:config-array-factory Config file found: /Users/brh/Documents/oss/ts-lint-repro/.eslintrc +17ms
eslintrc:config-array-factory Loading parser "@typescript-eslint/parser" from /Users/brh/Documents/oss/ts-lint-repro/.eslintrc +0ms
eslintrc:config-array-factory Loaded: @typescript-eslint/parser@4.28.2 (/Users/brh/Documents/oss/ts-lint-repro/node_modules/@typescript-eslint/parser/dist/index.js) +2ms
eslintrc:config-array-factory Loading plugin "@typescript-eslint" from /Users/brh/Documents/oss/ts-lint-repro/.eslintrc +260ms
eslintrc:config-array-factory Loaded: @typescript-eslint/eslint-plugin@4.28.2 (/Users/brh/Documents/oss/ts-lint-repro/node_modules/@typescript-eslint/eslint-plugin/dist/index.js) +1ms
eslintrc:config-array-factory Plugin /Users/brh/Documents/oss/ts-lint-repro/node_modules/@typescript-eslint/eslint-plugin/dist/index.js loaded in: 151ms +151ms
eslintrc:cascading-config-array-factory No cache found: /Users/brh/Documents/oss. +431ms
eslintrc:config-array-factory Config file not found on /Users/brh/Documents/oss +0ms
eslintrc:cascading-config-array-factory No cache found: /Users/brh/Documents. +1ms
eslintrc:config-array-factory Config file not found on /Users/brh/Documents +1ms
eslintrc:cascading-config-array-factory No cache found: /Users/brh. +0ms
eslintrc:cascading-config-array-factory Stop traversing because of considered root. +0ms
eslintrc: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: '/Users/brh/Documents/oss/ts-lint-repro', 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: '/Users/brh/Documents/oss/ts-lint-repro/.eslintrc', criteria: null, env: undefined, globals: undefined, ignorePattern: undefined, noInlineConfig: undefined, parser: { error: null, filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/@typescript-eslint/parser/dist/index.js', id: '@typescript-eslint/parser', importerName: '.eslintrc', importerPath: '/Users/brh/Documents/oss/ts-lint-repro/.eslintrc' }, parserOptions: { sourceType: 'module', allowAutomaticSingleRunInference: true, project: './tsconfig.json' }, plugins: { '@typescript-eslint': [Object] }, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: { '@typescript-eslint/consistent-type-imports': 'error' }, settings: undefined } ] on /Users/brh/Documents/oss/ts-lint-repro +2ms
eslint:file-enumerator Didn't match: .eslintrc +436ms
eslintrc:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/
/node_modules/' ], basePath: '/Users/brh/Documents/oss/ts-lint-repro', loose: false } ] +437ms
eslintrc:ignore-pattern processed: { basePath: '/Users/brh/Documents/oss/ts-lint-repro', patterns: [ '/**/node_modules/
' ] } +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/.git/',
dot: false,
relativePath: '.git/',
result: true
} +1ms
eslint:file-enumerator Didn't match: .gitignore +1ms
eslint:file-enumerator Didn't match: README.md +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/index.ts',
dot: false,
relativePath: 'index.ts',
result: false
} +0ms
eslint:file-enumerator Yield: index.ts +0ms
eslintrc:cascading-config-array-factory Load config files for /Users/brh/Documents/oss/ts-lint-repro. +2ms
eslintrc:cascading-config-array-factory Cache hit: /Users/brh/Documents/oss/ts-lint-repro. +1ms
eslint:cli-engine Lint /Users/brh/Documents/oss/ts-lint-repro/index.ts +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 1) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 1) +728ms
eslint:source-code-fixer Applying fixes +0ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 2) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 2) +6ms
eslint:source-code-fixer Applying fixes +6ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 3) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 3) +10ms
eslint:source-code-fixer Applying fixes +10ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 4) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 4) +6ms
eslint:source-code-fixer Applying fixes +6ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 5) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 5) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 6) +0ms
eslint:linter Verify +1ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 6) +2ms
eslint:source-code-fixer Applying fixes +3ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 7) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 7) +3ms
eslint:source-code-fixer Applying fixes +3ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 8) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 8) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 9) +5ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 9) +2ms
eslint:source-code-fixer Applying fixes +7ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 10) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index.ts (pass 10) +3ms
eslint:source-code-fixer Applying fixes +3ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index.ts +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/index2.ts',
dot: false,
relativePath: 'index2.ts',
result: false
} +773ms
eslint:file-enumerator Yield: index2.ts +773ms
eslintrc:cascading-config-array-factory Load config files for /Users/brh/Documents/oss/ts-lint-repro. +772ms
eslintrc:cascading-config-array-factory Cache hit: /Users/brh/Documents/oss/ts-lint-repro. +0ms
eslint:cli-engine Lint /Users/brh/Documents/oss/ts-lint-repro/index2.ts +772ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 1) +2ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index2.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 1) +2ms
eslint:source-code-fixer Applying fixes +4ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 2) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index2.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 2) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 3) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index2.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 3) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 4) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index2.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 4) +3ms
eslint:source-code-fixer Applying fixes +3ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 5) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index2.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 5) +3ms
eslint:source-code-fixer Applying fixes +4ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 6) +1ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index2.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 6) +3ms
eslint:source-code-fixer Applying fixes +3ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 7) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index2.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 7) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +1ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 8) +1ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index2.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 8) +2ms
eslint:source-code-fixer Applying fixes +3ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 9) +1ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index2.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 9) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 10) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index2.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index2.ts (pass 10) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index2.ts +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/index3.ts',
dot: false,
relativePath: 'index3.ts',
result: false
} +31ms
eslint:file-enumerator Yield: index3.ts +32ms
eslintrc:cascading-config-array-factory Load config files for /Users/brh/Documents/oss/ts-lint-repro. +32ms
eslintrc:cascading-config-array-factory Cache hit: /Users/brh/Documents/oss/ts-lint-repro. +0ms
eslint:cli-engine Lint /Users/brh/Documents/oss/ts-lint-repro/index3.ts +32ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 1) +6ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index3.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 1) +2ms
eslint:source-code-fixer Applying fixes +8ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 2) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index3.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 2) +1ms
eslint:source-code-fixer Applying fixes +1ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 3) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index3.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 3) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 4) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index3.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 4) +1ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 5) +1ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index3.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 5) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 6) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index3.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 6) +4ms
eslint:source-code-fixer Applying fixes +4ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 7) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index3.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 7) +3ms
eslint:source-code-fixer Applying fixes +3ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 8) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index3.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 8) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 9) +1ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index3.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 9) +2ms
eslint:source-code-fixer Applying fixes +3ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 10) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index3.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index3.ts (pass 10) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index3.ts +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/index4.ts',
dot: false,
relativePath: 'index4.ts',
result: false
} +28ms
eslint:file-enumerator Yield: index4.ts +27ms
eslintrc:cascading-config-array-factory Load config files for /Users/brh/Documents/oss/ts-lint-repro. +27ms
eslintrc:cascading-config-array-factory Cache hit: /Users/brh/Documents/oss/ts-lint-repro. +0ms
eslint:cli-engine Lint /Users/brh/Documents/oss/ts-lint-repro/index4.ts +27ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 1) +4ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index4.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 1) +2ms
eslint:source-code-fixer Applying fixes +6ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 2) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index4.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 2) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 3) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index4.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 3) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 4) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index4.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 4) +1ms
eslint:source-code-fixer Applying fixes +1ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 5) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index4.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 5) +6ms
eslint:source-code-fixer Applying fixes +7ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 6) +1ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index4.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 6) +4ms
eslint:source-code-fixer Applying fixes +4ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 7) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index4.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 7) +4ms
eslint:source-code-fixer Applying fixes +4ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 8) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index4.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 8) +3ms
eslint:source-code-fixer Applying fixes +3ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 9) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index4.ts +1ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 9) +1ms
eslint:source-code-fixer Applying fixes +3ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 10) +1ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index4.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index4.ts (pass 10) +1ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Verify +1ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index4.ts +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/index5.ts',
dot: false,
relativePath: 'index5.ts',
result: false
} +32ms
eslint:file-enumerator Yield: index5.ts +32ms
eslintrc:cascading-config-array-factory Load config files for /Users/brh/Documents/oss/ts-lint-repro. +32ms
eslintrc:cascading-config-array-factory Cache hit: /Users/brh/Documents/oss/ts-lint-repro. +0ms
eslint:cli-engine Lint /Users/brh/Documents/oss/ts-lint-repro/index5.ts +33ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 1) +3ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index5.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 1) +2ms
eslint:source-code-fixer Applying fixes +5ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 2) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index5.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 2) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 3) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index5.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 3) +1ms
eslint:source-code-fixer Applying fixes +1ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 4) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index5.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 4) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 5) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index5.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 5) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 6) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index5.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 6) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 7) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index5.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 7) +1ms
eslint:source-code-fixer Applying fixes +1ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 8) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index5.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 8) +2ms
eslint:source-code-fixer Applying fixes +2ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 9) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index5.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 9) +3ms
eslint:source-code-fixer Applying fixes +3ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 10) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index5.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/index5.ts (pass 10) +4ms
eslint:source-code-fixer Applying fixes +4ms
eslint:source-code-fixer Found fixes to apply +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/index5.ts +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/',
dot: false,
relativePath: 'node_modules/',
result: false
} +27ms
eslint:file-enumerator Enter the directory: /Users/brh/Documents/oss/ts-lint-repro/node_modules +27ms
eslintrc:cascading-config-array-factory Load config files for /Users/brh/Documents/oss/ts-lint-repro/node_modules. +27ms
eslintrc:cascading-config-array-factory No cache found: /Users/brh/Documents/oss/ts-lint-repro/node_modules. +0ms
eslintrc:config-array-factory Config file not found on /Users/brh/Documents/oss/ts-lint-repro/node_modules +896ms
eslintrc:cascading-config-array-factory Cache hit: /Users/brh/Documents/oss/ts-lint-repro. +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/.bin/',
dot: false,
relativePath: 'node_modules/.bin/',
result: true
} +1ms
eslint:file-enumerator Didn't match: .package-lock.json +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/@babel/',
dot: false,
relativePath: 'node_modules/@babel/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/@eslint/',
dot: false,
relativePath: 'node_modules/@eslint/',
result: true
} +8ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/@humanwhocodes/',
dot: false,
relativePath: 'node_modules/@humanwhocodes/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/@nodelib/',
dot: false,
relativePath: 'node_modules/@nodelib/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/@types/',
dot: false,
relativePath: 'node_modules/@types/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/@typescript-eslint/',
dot: false,
relativePath: 'node_modules/@typescript-eslint/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/acorn/',
dot: false,
relativePath: 'node_modules/acorn/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/acorn-jsx/',
dot: false,
relativePath: 'node_modules/acorn-jsx/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/ajv/',
dot: false,
relativePath: 'node_modules/ajv/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/ansi-colors/',
dot: false,
relativePath: 'node_modules/ansi-colors/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/ansi-regex/',
dot: false,
relativePath: 'node_modules/ansi-regex/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/ansi-styles/',
dot: false,
relativePath: 'node_modules/ansi-styles/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/argparse/',
dot: false,
relativePath: 'node_modules/argparse/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/array-union/',
dot: false,
relativePath: 'node_modules/array-union/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/astral-regex/',
dot: false,
relativePath: 'node_modules/astral-regex/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/balanced-match/',
dot: false,
relativePath: 'node_modules/balanced-match/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/brace-expansion/',
dot: false,
relativePath: 'node_modules/brace-expansion/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/braces/',
dot: false,
relativePath: 'node_modules/braces/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/callsites/',
dot: false,
relativePath: 'node_modules/callsites/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/chalk/',
dot: false,
relativePath: 'node_modules/chalk/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/color-convert/',
dot: false,
relativePath: 'node_modules/color-convert/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/color-name/',
dot: false,
relativePath: 'node_modules/color-name/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/concat-map/',
dot: false,
relativePath: 'node_modules/concat-map/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/cross-spawn/',
dot: false,
relativePath: 'node_modules/cross-spawn/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/debug/',
dot: false,
relativePath: 'node_modules/debug/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/deep-is/',
dot: false,
relativePath: 'node_modules/deep-is/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/dir-glob/',
dot: false,
relativePath: 'node_modules/dir-glob/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/doctrine/',
dot: false,
relativePath: 'node_modules/doctrine/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/emoji-regex/',
dot: false,
relativePath: 'node_modules/emoji-regex/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/enquirer/',
dot: false,
relativePath: 'node_modules/enquirer/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/escape-string-regexp/',
dot: false,
relativePath: 'node_modules/escape-string-regexp/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/eslint/',
dot: false,
relativePath: 'node_modules/eslint/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/eslint-scope/',
dot: false,
relativePath: 'node_modules/eslint-scope/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/eslint-utils/',
dot: false,
relativePath: 'node_modules/eslint-utils/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/eslint-visitor-keys/',
dot: false,
relativePath: 'node_modules/eslint-visitor-keys/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/espree/',
dot: false,
relativePath: 'node_modules/espree/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/esprima/',
dot: false,
relativePath: 'node_modules/esprima/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/esquery/',
dot: false,
relativePath: 'node_modules/esquery/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/esrecurse/',
dot: false,
relativePath: 'node_modules/esrecurse/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/estraverse/',
dot: false,
relativePath: 'node_modules/estraverse/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/esutils/',
dot: false,
relativePath: 'node_modules/esutils/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/fast-deep-equal/',
dot: false,
relativePath: 'node_modules/fast-deep-equal/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/fast-glob/',
dot: false,
relativePath: 'node_modules/fast-glob/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/fast-json-stable-stringify/',
dot: false,
relativePath: 'node_modules/fast-json-stable-stringify/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/fast-levenshtein/',
dot: false,
relativePath: 'node_modules/fast-levenshtein/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/fastq/',
dot: false,
relativePath: 'node_modules/fastq/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/file-entry-cache/',
dot: false,
relativePath: 'node_modules/file-entry-cache/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/fill-range/',
dot: false,
relativePath: 'node_modules/fill-range/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/flat-cache/',
dot: false,
relativePath: 'node_modules/flat-cache/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/flatted/',
dot: false,
relativePath: 'node_modules/flatted/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/fs.realpath/',
dot: false,
relativePath: 'node_modules/fs.realpath/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/functional-red-black-tree/',
dot: false,
relativePath: 'node_modules/functional-red-black-tree/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/glob/',
dot: false,
relativePath: 'node_modules/glob/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/glob-parent/',
dot: false,
relativePath: 'node_modules/glob-parent/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/globals/',
dot: false,
relativePath: 'node_modules/globals/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/globby/',
dot: false,
relativePath: 'node_modules/globby/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/has-flag/',
dot: false,
relativePath: 'node_modules/has-flag/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/ignore/',
dot: false,
relativePath: 'node_modules/ignore/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/import-fresh/',
dot: false,
relativePath: 'node_modules/import-fresh/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/imurmurhash/',
dot: false,
relativePath: 'node_modules/imurmurhash/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/inflight/',
dot: false,
relativePath: 'node_modules/inflight/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/inherits/',
dot: false,
relativePath: 'node_modules/inherits/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/is-extglob/',
dot: false,
relativePath: 'node_modules/is-extglob/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/is-fullwidth-code-point/',
dot: false,
relativePath: 'node_modules/is-fullwidth-code-point/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/is-glob/',
dot: false,
relativePath: 'node_modules/is-glob/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/is-number/',
dot: false,
relativePath: 'node_modules/is-number/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/isexe/',
dot: false,
relativePath: 'node_modules/isexe/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/js-tokens/',
dot: false,
relativePath: 'node_modules/js-tokens/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/js-yaml/',
dot: false,
relativePath: 'node_modules/js-yaml/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/json-schema-traverse/',
dot: false,
relativePath: 'node_modules/json-schema-traverse/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/json-stable-stringify-without-jsonify/',
dot: false,
relativePath: 'node_modules/json-stable-stringify-without-jsonify/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/levn/',
dot: false,
relativePath: 'node_modules/levn/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/lodash.clonedeep/',
dot: false,
relativePath: 'node_modules/lodash.clonedeep/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/lodash.merge/',
dot: false,
relativePath: 'node_modules/lodash.merge/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/lodash.truncate/',
dot: false,
relativePath: 'node_modules/lodash.truncate/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/lru-cache/',
dot: false,
relativePath: 'node_modules/lru-cache/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/merge2/',
dot: false,
relativePath: 'node_modules/merge2/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/micromatch/',
dot: false,
relativePath: 'node_modules/micromatch/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/minimatch/',
dot: false,
relativePath: 'node_modules/minimatch/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/ms/',
dot: false,
relativePath: 'node_modules/ms/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/natural-compare/',
dot: false,
relativePath: 'node_modules/natural-compare/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/once/',
dot: false,
relativePath: 'node_modules/once/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/optionator/',
dot: false,
relativePath: 'node_modules/optionator/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/parent-module/',
dot: false,
relativePath: 'node_modules/parent-module/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/path-is-absolute/',
dot: false,
relativePath: 'node_modules/path-is-absolute/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/path-key/',
dot: false,
relativePath: 'node_modules/path-key/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/path-type/',
dot: false,
relativePath: 'node_modules/path-type/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/picomatch/',
dot: false,
relativePath: 'node_modules/picomatch/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/prelude-ls/',
dot: false,
relativePath: 'node_modules/prelude-ls/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/progress/',
dot: false,
relativePath: 'node_modules/progress/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/punycode/',
dot: false,
relativePath: 'node_modules/punycode/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/queue-microtask/',
dot: false,
relativePath: 'node_modules/queue-microtask/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/regexpp/',
dot: false,
relativePath: 'node_modules/regexpp/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/require-from-string/',
dot: false,
relativePath: 'node_modules/require-from-string/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/resolve-from/',
dot: false,
relativePath: 'node_modules/resolve-from/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/reusify/',
dot: false,
relativePath: 'node_modules/reusify/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/rimraf/',
dot: false,
relativePath: 'node_modules/rimraf/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/run-parallel/',
dot: false,
relativePath: 'node_modules/run-parallel/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/semver/',
dot: false,
relativePath: 'node_modules/semver/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/shebang-command/',
dot: false,
relativePath: 'node_modules/shebang-command/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/shebang-regex/',
dot: false,
relativePath: 'node_modules/shebang-regex/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/slash/',
dot: false,
relativePath: 'node_modules/slash/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/slice-ansi/',
dot: false,
relativePath: 'node_modules/slice-ansi/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/sprintf-js/',
dot: false,
relativePath: 'node_modules/sprintf-js/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/string-width/',
dot: false,
relativePath: 'node_modules/string-width/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/strip-ansi/',
dot: false,
relativePath: 'node_modules/strip-ansi/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/strip-json-comments/',
dot: false,
relativePath: 'node_modules/strip-json-comments/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/supports-color/',
dot: false,
relativePath: 'node_modules/supports-color/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/table/',
dot: false,
relativePath: 'node_modules/table/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/text-table/',
dot: false,
relativePath: 'node_modules/text-table/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/to-regex-range/',
dot: false,
relativePath: 'node_modules/to-regex-range/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/tslib/',
dot: false,
relativePath: 'node_modules/tslib/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/tsutils/',
dot: false,
relativePath: 'node_modules/tsutils/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/type-check/',
dot: false,
relativePath: 'node_modules/type-check/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/type-fest/',
dot: false,
relativePath: 'node_modules/type-fest/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/typescript/',
dot: false,
relativePath: 'node_modules/typescript/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/uri-js/',
dot: false,
relativePath: 'node_modules/uri-js/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/v8-compile-cache/',
dot: false,
relativePath: 'node_modules/v8-compile-cache/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/which/',
dot: false,
relativePath: 'node_modules/which/',
result: true
} +1ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/word-wrap/',
dot: false,
relativePath: 'node_modules/word-wrap/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/wrappy/',
dot: false,
relativePath: 'node_modules/wrappy/',
result: true
} +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/node_modules/yallist/',
dot: false,
relativePath: 'node_modules/yallist/',
result: true
} +0ms
eslint:file-enumerator Leave the directory: /Users/brh/Documents/oss/ts-lint-repro/node_modules +25ms
eslint:file-enumerator Didn't match: package-lock.json +0ms
eslint:file-enumerator Didn't match: package.json +0ms
eslint:file-enumerator Didn't match: tsconfig.json +0ms
eslintrc:ignore-pattern Check {
filePath: '/Users/brh/Documents/oss/ts-lint-repro/types.ts',
dot: false,
relativePath: 'types.ts',
result: false
} +2ms
eslint:file-enumerator Yield: types.ts +0ms
eslintrc:cascading-config-array-factory Load config files for /Users/brh/Documents/oss/ts-lint-repro. +25ms
eslintrc:cascading-config-array-factory Cache hit: /Users/brh/Documents/oss/ts-lint-repro. +0ms
eslint:cli-engine Lint /Users/brh/Documents/oss/ts-lint-repro/types.ts +53ms
eslint:linter Linting code for /Users/brh/Documents/oss/ts-lint-repro/types.ts (pass 1) +32ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /Users/brh/Documents/oss/ts-lint-repro/types.ts +0ms
eslint:linter Generating fixed text for /Users/brh/Documents/oss/ts-lint-repro/types.ts (pass 1) +6ms
eslint:source-code-fixer Applying fixes +38ms
eslint:source-code-fixer No fixes to apply +0ms
eslint:file-enumerator Leave the directory: /Users/brh/Documents/oss/ts-lint-repro +7ms
eslint:file-enumerator Complete iterating files: ["."] +0ms
eslint:cli-engine Linting complete in: 1362ms +6ms
eslint:cli Fix mode enabled - applying fixes +1s

/Users/brh/Documents/oss/ts-lint-repro/index.ts
1:1 error All imports in the declaration are only used as types. Use import type @typescript-eslint/consistent-type-imports

/Users/brh/Documents/oss/ts-lint-repro/index2.ts
1:1 error All imports in the declaration are only used as types. Use import type @typescript-eslint/consistent-type-imports

/Users/brh/Documents/oss/ts-lint-repro/index3.ts
1:1 error All imports in the declaration are only used as types. Use import type @typescript-eslint/consistent-type-imports

/Users/brh/Documents/oss/ts-lint-repro/index4.ts
1:1 error All imports in the declaration are only used as types. Use import type @typescript-eslint/consistent-type-imports

/Users/brh/Documents/oss/ts-lint-repro/index5.ts
1:1 error All imports in the declaration are only used as types. Use import type @typescript-eslint/consistent-type-imports

✖ 5 problems (5 errors, 0 warnings)
5 errors and 0 warnings potentially fixable with the --fix option.

@bhollis bhollis added package: eslint-plugin Issues related to @typescript-eslint/eslint-plugin triage Waiting for maintainers to take a look labels Jul 11, 2021
@bradzacher
Copy link
Member

@JamesHenry - interesting.
If you run --fix, then ESLint will:

  1. parse each file
  2. lint each file
  3. apply fixes
  4. goto (1) (up to 10 times)

Which means ofc that the program gets reused.

@bradzacher bradzacher added bug Something isn't working package: typescript-estree Issues related to @typescript-eslint/typescript-estree and removed package: eslint-plugin Issues related to @typescript-eslint/eslint-plugin triage Waiting for maintainers to take a look labels Jul 11, 2021
@JamesHenry
Copy link
Member

Ah damn, that does make sense. I'm not sure there is a way to retain the wins of AOT compilation of Programs and the correct functionality of --fix... Maybe we'll just have to infer non single run when fix is enabled?

@bradzacher
Copy link
Member

If they're running --fix we could probably just do the initial run with allowAutomaticSingleRunInference flag turned on, and then do a "default program" for the subsequent "fix" runs - as the fixes (in general) should apply to fewer files.

@uniqueiniquity - do you know of a good way for us to solve this?
Using a constant program gives us a decent constant-time speed boost, but we need to be able to respond to the fix passes and update the program - ideally without rebuilding the entire program from scratch or using a watch program.

@uniqueiniquity
Copy link
Contributor

Yeah that's specifically what the watch program is giving us - the ability to incrementally update the program in memory.
If we need to check for semantic errors after the fix, I'm not sure how to do it without either using that or reimplementing watch.
But certainly if there's some sort of guarantee that we're not using semantic info after the fix, then sure, default programs could do the trick.

@JamesHenry
Copy link
Member

@bradzacher @uniqueiniquity I have added a fix for this issues here:
#3655

I realise this isn't the most sophisticated fix (and we can improve this further in the future by adding support for the catch-all builder program as we discussed as part of the long-term solution to createDefaultProgram) but for now this at least makes singleRun mode usable with --fix and in my basic testing locally it still yields a speed up over the same invocation without singleRun mode enabled.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 2, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working package: typescript-estree Issues related to @typescript-eslint/typescript-estree
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants