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

check return type of this type predicates #57341

Merged
merged 6 commits into from
Apr 8, 2024

Conversation

Zzzen
Copy link
Contributor

@Zzzen Zzzen commented Feb 8, 2024

Fixes #57103

@typescript-bot typescript-bot added the For Backlog Bug PRs that fix a backlog bug label Feb 8, 2024
@jakebailey
Copy link
Member

@typescript-bot test top200
@typescript-bot user test this
@typescript-bot run dt

@typescript-bot perf test this faster
@typescript-bot pack this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 8, 2024

Heya @jakebailey, I've started to run the tarball bundle task on this PR at 89a7208. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 8, 2024

Heya @jakebailey, I've started to run the parallelized Definitely Typed test suite on this PR at 89a7208. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 8, 2024

Heya @jakebailey, I've started to run the diff-based user code test suite on this PR at 89a7208. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 8, 2024

Heya @jakebailey, I've started to run the diff-based top-repos suite on this PR at 89a7208. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 8, 2024

Heya @jakebailey, I've started to run the faster perf test suite on this PR at 89a7208. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 8, 2024

Hey @jakebailey, I've packed this into an installable tgz. You can install it for testing by referencing it in your package.json like so:

{
    "devDependencies": {
        "typescript": "https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/_apis/build/builds/159791/artifacts?artifactName=tgz&fileId=D4AC5010FA6A8D0B5A0E43EF24C131CCDFD8492F0B351F26911A8B24BD76977C02&fileName=/typescript-5.4.0-insiders.20240208.tgz"
    }
}

and then running npm install.


There is also a playground for this build and an npm module you can use via "typescript": "npm:@typescript-deploys/pr-build@5.4.0-pr-57341-6".;

@typescript-bot
Copy link
Collaborator

@jakebailey Here are the results of running the user test suite comparing main and refs/pull/57341/merge:

There were infrastructure failures potentially unrelated to your change:

  • 1 instance of "Package install failed"

Otherwise...

Something interesting changed - please have a look.

Details

puppeteer

packages/browsers/test/src/tsconfig.json

@typescript-bot
Copy link
Collaborator

@jakebailey
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Angular - node (v18.15.0, x64)
Memory used 295,668k (± 0.01%) 295,677k (± 0.01%) ~ 295,643k 295,729k p=0.810 n=6
Parse Time 2.66s (± 0.24%) 2.67s (± 0.15%) +0.01s (+ 0.31%) 2.66s 2.67s p=0.033 n=6
Bind Time 0.83s (± 0.66%) 0.83s (± 0.99%) ~ 0.82s 0.84s p=0.859 n=6
Check Time 8.23s (± 0.33%) 8.23s (± 0.14%) ~ 8.22s 8.25s p=0.870 n=6
Emit Time 7.08s (± 0.39%) 7.10s (± 0.22%) ~ 7.09s 7.13s p=0.357 n=6
Total Time 18.79s (± 0.26%) 18.82s (± 0.13%) ~ 18.80s 18.87s p=0.466 n=6
Compiler-Unions - node (v18.15.0, x64)
Memory used 192,537k (± 1.25%) 194,449k (± 1.62%) ~ 191,512k 197,401k p=0.378 n=6
Parse Time 1.36s (± 1.20%) 1.36s (± 1.42%) ~ 1.34s 1.39s p=0.680 n=6
Bind Time 0.72s (± 0.00%) 0.72s (± 0.57%) ~ 0.72s 0.73s p=0.405 n=6
Check Time 9.36s (± 0.40%) 9.38s (± 0.28%) ~ 9.34s 9.42s p=0.518 n=6
Emit Time 2.62s (± 0.31%) 2.61s (± 0.80%) ~ 2.57s 2.63s p=0.181 n=6
Total Time 14.07s (± 0.29%) 14.07s (± 0.34%) ~ 13.98s 14.12s p=0.936 n=6
Monaco - node (v18.15.0, x64)
Memory used 347,455k (± 0.00%) 347,465k (± 0.01%) ~ 347,429k 347,484k p=0.297 n=6
Parse Time 2.47s (± 0.51%) 2.47s (± 0.42%) ~ 2.46s 2.49s p=0.868 n=6
Bind Time 0.93s (± 0.59%) 0.92s (± 0.59%) ~ 0.92s 0.93s p=1.000 n=6
Check Time 6.95s (± 0.29%) 6.92s (± 0.26%) -0.03s (- 0.43%) 6.90s 6.94s p=0.035 n=6
Emit Time 4.06s (± 0.39%) 4.05s (± 0.31%) ~ 4.04s 4.07s p=0.323 n=6
Total Time 14.40s (± 0.17%) 14.37s (± 0.19%) -0.04s (- 0.24%) 14.34s 14.42s p=0.035 n=6
TFS - node (v18.15.0, x64)
Memory used 302,852k (± 0.00%) 302,847k (± 0.00%) ~ 302,836k 302,858k p=0.261 n=6
Parse Time 2.01s (± 0.51%) 2.01s (± 0.58%) ~ 2.00s 2.03s p=0.801 n=6
Bind Time 1.00s (± 0.55%) 1.00s (± 0.63%) ~ 0.99s 1.01s p=0.201 n=6
Check Time 6.36s (± 0.22%) 6.35s (± 0.27%) ~ 6.33s 6.38s p=0.744 n=6
Emit Time 3.61s (± 0.37%) 3.60s (± 0.57%) ~ 3.59s 3.63s p=0.448 n=6
Total Time 12.98s (± 0.22%) 12.97s (± 0.22%) ~ 12.92s 13.00s p=0.871 n=6
material-ui - node (v18.15.0, x64)
Memory used 511,353k (± 0.00%) 511,377k (± 0.00%) +24k (+ 0.00%) 511,358k 511,397k p=0.044 n=6
Parse Time 2.66s (± 0.57%) 2.65s (± 0.62%) ~ 2.63s 2.67s p=0.287 n=6
Bind Time 0.99s (± 0.76%) 0.99s (± 0.90%) ~ 0.98s 1.00s p=0.798 n=6
Check Time 17.29s (± 0.52%) 17.26s (± 0.38%) ~ 17.14s 17.34s p=0.521 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.93s (± 0.40%) 20.90s (± 0.33%) ~ 20.77s 20.97s p=0.378 n=6
mui-docs - node (v18.15.0, x64)
Memory used 2,269,069k (± 0.00%) 2,269,063k (± 0.00%) ~ 2,269,000k 2,269,115k p=1.000 n=6
Parse Time 11.88s (± 0.90%) 11.88s (± 0.94%) ~ 11.75s 12.03s p=1.000 n=6
Bind Time 2.64s (± 0.46%) 2.64s (± 0.37%) ~ 2.63s 2.65s p=0.498 n=6
Check Time 101.62s (± 1.42%) 101.81s (± 0.72%) ~ 101.05s 102.89s p=0.689 n=6
Emit Time 0.32s (± 1.74%) 0.32s (± 1.74%) ~ 0.31s 0.32s p=1.000 n=6
Total Time 116.45s (± 1.28%) 116.64s (± 0.59%) ~ 115.75s 117.63s p=0.689 n=6
self-build-src - node (v18.15.0, x64)
Memory used 2,413,893k (± 0.02%) 2,413,972k (± 0.02%) ~ 2,413,226k 2,414,762k p=0.810 n=6
Parse Time 4.92s (± 1.26%) 4.90s (± 1.02%) ~ 4.85s 4.97s p=0.572 n=6
Bind Time 1.87s (± 0.68%) 1.87s (± 0.79%) ~ 1.85s 1.89s p=0.869 n=6
Check Time 33.30s (± 0.42%) 33.40s (± 0.54%) ~ 33.04s 33.52s p=0.199 n=6
Emit Time 2.69s (± 1.62%) 2.67s (± 1.31%) ~ 2.64s 2.73s p=0.809 n=6
Total Time 42.81s (± 0.37%) 42.87s (± 0.27%) ~ 42.64s 42.96s p=0.229 n=6
self-compiler - node (v18.15.0, x64)
Memory used 418,738k (± 0.01%) 418,742k (± 0.01%) ~ 418,679k 418,804k p=0.810 n=6
Parse Time 2.79s (± 2.91%) 2.78s (± 2.99%) ~ 2.66s 2.87s p=0.747 n=6
Bind Time 1.12s (± 6.23%) 1.13s (± 6.41%) ~ 1.08s 1.22s p=0.344 n=6
Check Time 15.09s (± 0.23%) 15.10s (± 0.27%) ~ 15.04s 15.16s p=0.747 n=6
Emit Time 1.15s (± 0.45%) 1.14s (± 1.29%) ~ 1.12s 1.16s p=0.667 n=6
Total Time 20.14s (± 0.17%) 20.15s (± 0.30%) ~ 20.08s 20.22s p=0.744 n=6
vscode - node (v18.15.0, x64)
Memory used 2,826,978k (± 0.00%) 2,826,965k (± 0.00%) ~ 2,826,926k 2,827,029k p=0.521 n=6
Parse Time 10.74s (± 0.57%) 10.73s (± 0.44%) ~ 10.68s 10.78s p=0.936 n=6
Bind Time 3.43s (± 0.75%) 3.41s (± 0.22%) ~ 3.40s 3.42s p=0.100 n=6
Check Time 60.10s (± 0.63%) 60.28s (± 0.59%) ~ 59.83s 60.69s p=0.298 n=6
Emit Time 16.17s (± 0.87%) 16.23s (± 0.53%) ~ 16.10s 16.37s p=0.470 n=6
Total Time 90.43s (± 0.41%) 90.66s (± 0.46%) ~ 90.03s 91.06s p=0.298 n=6
webpack - node (v18.15.0, x64)
Memory used 393,433k (± 0.02%) 393,441k (± 0.01%) ~ 393,405k 393,483k p=0.471 n=6
Parse Time 3.11s (± 0.89%) 3.10s (± 0.91%) ~ 3.07s 3.14s p=0.373 n=6
Bind Time 1.38s (± 1.26%) 1.38s (± 1.34%) ~ 1.36s 1.40s p=0.866 n=6
Check Time 14.02s (± 0.22%) 14.07s (± 0.35%) ~ 14.01s 14.12s p=0.108 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 18.51s (± 0.25%) 18.55s (± 0.27%) ~ 18.48s 18.62s p=0.147 n=6
xstate - node (v18.15.0, x64)
Memory used 513,374k (± 0.01%) 513,405k (± 0.01%) ~ 513,287k 513,495k p=0.297 n=6
Parse Time 3.28s (± 0.25%) 3.28s (± 0.12%) ~ 3.28s 3.29s p=0.206 n=6
Bind Time 1.54s (± 0.26%) 1.54s (± 0.41%) ~ 1.53s 1.55s p=0.673 n=6
Check Time 2.85s (± 0.65%) 2.85s (± 0.52%) ~ 2.84s 2.88s p=0.871 n=6
Emit Time 0.08s (± 6.19%) 0.08s (± 5.21%) ~ 0.07s 0.08s p=0.114 n=6
Total Time 7.76s (± 0.30%) 7.76s (± 0.21%) ~ 7.75s 7.79s p=0.506 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Angular - node (v18.15.0, x64)
  • Compiler-Unions - node (v18.15.0, x64)
  • Monaco - node (v18.15.0, x64)
  • TFS - node (v18.15.0, x64)
  • material-ui - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

@typescript-bot
Copy link
Collaborator

Hey @jakebailey, the results of running the DT tests are ready.
Everything looks the same!
You can check the log here.

@typescript-bot
Copy link
Collaborator

@jakebailey Here are the results of running the top-repos suite comparing main and refs/pull/57341/merge:

Everything looks good!

@@ -20888,6 +20889,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}
return Ternary.False;
}
else if (isThisTypePredicate(targetTypePredicate)) {
result &= compareTypes(sourceReturnType, targetReturnType, reportErrors);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That doesn't look right. We don't consider a function with a boolean return type assignable to a function with an identifier type predicate, as the code above implies. So I think instead of adding this change, what we want to do is change the condition above to also account for this type predicates: they should behave the same as identifier type predicates.

Copy link
Contributor Author

@Zzzen Zzzen Apr 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated. However, it could potentially break some seemingly innocent code.

interface LineCollection {
  isLeaft(): this is LineLeaf;
}

class LineNode implements LineCollection {
  isLeaf() {
    return false;
  }
}

!!! error TS2416: Type '() => void' is not assignable to type '() => boolean'.
!!! error TS2416: Type 'void' is not assignable to type 'boolean'.

method3() { // should ok
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be an error too.

@@ -591,7 +591,7 @@ export class LineNode implements LineCollection {
if (children.length) this.updateCounts();
}

isLeaf() {
isLeaf(): this is LineLeaf {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😦

@gabritto
Copy link
Member

gabritto commented Apr 8, 2024

@typescript-bot test it

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 8, 2024

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
test top400 ✅ Started 👀 Results
user test this ✅ Started ✅ Results
run dt ✅ Started 👀 Results
perf test this faster ✅ Started 👀 Results

@typescript-bot
Copy link
Collaborator

Hey @gabritto, the results of running the DT tests are ready.

There were interesting changes:

Branch only errors:

Package: vinyl-file
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/vinyl-file/index.d.ts
  17:18  error  TypeScript@local compile error: 
Interface 'VinylFile' incorrectly extends interface 'File'.
  Types of property 'isBuffer' are incompatible.
    Type '() => boolean' is not assignable to type '() => this is BufferFile'.
      Signature '(): boolean' must be a type predicate  @definitelytyped/expect

✖ 1 problem (1 error, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@definitelytyped+dtslint@0.2.19_typescript@5.5.0-dev.20240408/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@definitelytyped+dtslint@0.2.19_typescript@5.5.0-dev.20240408/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

Package: vinyl
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/vinyl/index.d.ts
  335:15  error  TypeScript@local compile error: 
Interface 'BufferFile' incorrectly extends interface 'File'.
  Types of property 'isBuffer' are incompatible.
    Type '() => true' is not assignable to type '() => this is BufferFile'.
      Signature '(): true' must be a type predicate               @definitelytyped/expect
  344:15  error  TypeScript@local compile error: 
Interface 'StreamFile' incorrectly extends interface 'File'.
  Types of property 'isStream' are incompatible.
    Type '() => true' is not assignable to type '() => this is StreamFile'.
      Signature '(): true' must be a type predicate               @definitelytyped/expect
  353:15  error  TypeScript@local compile error: 
Interface 'NullFile' incorrectly extends interface 'File'.
  Types of property 'isNull' are incompatible.
    Type '() => true' is not assignable to type '() => this is NullFile'.
      Signature '(): true' must be a type predicate                     @definitelytyped/expect
  362:15  error  TypeScript@local compile error: 
Interface 'DirectoryFile' incorrectly extends interface 'NullFile'.
  Types of property 'isDirectory' are incompatible.
    Type '() => true' is not assignable to type '() => this is DirectoryFile'.
      Signature '(): true' must be a type predicate  @definitelytyped/expect
  367:15  error  TypeScript@local compile error: 
Interface 'SymbolicFile' incorrectly extends interface 'NullFile'.
  Types of property 'isSymbolic' are incompatible.
    Type '() => true' is not assignable to type '() => this is SymbolicFile'.
      Signature '(): true' must be a type predicate     @definitelytyped/expect

/mnt/vss/_work/1/DefinitelyTyped/types/vinyl/vinyl-tests.ts
  659:26  error  TypeScript@local compile error: 
Conversion of type 'NullFile' to type 'TestFile' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
  Types of property 'isNull' are incompatible.
    Type '() => true' is not comparable to type '() => this is NullFile'.
      Signature '(): true' must be a type predicate  @definitelytyped/expect
  705:26  error  TypeScript@local compile error: 
Conversion of type 'NullFile' to type 'TestFile' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first                                                                                                                                                                                @definitelytyped/expect

✖ 7 problems (7 errors, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@definitelytyped+dtslint@0.2.19_typescript@5.5.0-dev.20240408/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@definitelytyped+dtslint@0.2.19_typescript@5.5.0-dev.20240408/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

Package: winjs
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/winjs/index.d.ts
  10026:9  error  TypeScript@local compile error: 
Property 'every' in type 'QueryCollection<T>' is not assignable to the same property in base type 'T[]'.
  Type '(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any) => boolean' is not assignable to type '{ <S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; }'.
    Signature '(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean' must be a type predicate  @definitelytyped/expect

✖ 1 problem (1 error, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@definitelytyped+dtslint@0.2.19_typescript@5.5.0-dev.20240408/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@definitelytyped+dtslint@0.2.19_typescript@5.5.0-dev.20240408/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

You can check the log here.

@typescript-bot
Copy link
Collaborator

@gabritto
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Angular - node (v18.15.0, x64)
Memory used 295,712k (± 0.01%) 295,723k (± 0.01%) ~ 295,680k 295,744k p=0.229 n=6
Parse Time 3.18s (± 0.47%) 3.19s (± 0.58%) ~ 3.17s 3.21s p=0.458 n=6
Bind Time 0.98s (± 2.04%) 0.98s (± 1.53%) ~ 0.97s 1.00s p=0.655 n=6
Check Time 9.67s (± 0.19%) 9.64s (± 0.35%) ~ 9.61s 9.70s p=0.126 n=6
Emit Time 8.42s (± 0.59%) 8.38s (± 0.50%) ~ 8.32s 8.44s p=0.172 n=6
Total Time 22.25s (± 0.24%) 22.20s (± 0.29%) ~ 22.11s 22.29s p=0.172 n=6
Compiler-Unions - node (v18.15.0, x64)
Memory used 192,267k (± 0.73%) 193,475k (± 1.01%) ~ 191,646k 195,317k p=0.261 n=6
Parse Time 2.03s (± 1.57%) 2.02s (± 1.02%) ~ 1.99s 2.05s p=0.808 n=6
Bind Time 1.07s (± 1.15%) 1.06s (± 1.03%) ~ 1.05s 1.08s p=0.507 n=6
Check Time 13.83s (± 0.41%) 13.85s (± 0.70%) ~ 13.74s 13.98s p=0.810 n=6
Emit Time 3.85s (± 0.79%) 3.85s (± 0.38%) ~ 3.83s 3.87s p=0.567 n=6
Total Time 20.78s (± 0.41%) 20.79s (± 0.48%) ~ 20.69s 20.93s p=0.873 n=6
Monaco - node (v18.15.0, x64)
Memory used 347,706k (± 0.00%) 347,701k (± 0.00%) ~ 347,689k 347,717k p=0.575 n=6
Parse Time 3.67s (± 1.49%) 3.68s (± 1.20%) ~ 3.63s 3.74s p=0.809 n=6
Bind Time 1.33s (± 2.75%) 1.32s (± 1.51%) ~ 1.29s 1.35s p=0.935 n=6
Check Time 10.11s (± 0.42%) 10.09s (± 0.44%) ~ 10.04s 10.17s p=0.572 n=6
Emit Time 6.01s (± 0.52%) 6.02s (± 0.29%) ~ 5.99s 6.04s p=0.366 n=6
Total Time 21.12s (± 0.13%) 21.11s (± 0.37%) ~ 21.06s 21.26s p=0.223 n=6
TFS - node (v18.15.0, x64)
Memory used 302,587k (± 0.01%) 302,565k (± 0.01%) ~ 302,539k 302,613k p=0.173 n=6
Parse Time 2.39s (± 0.90%) 2.41s (± 1.25%) ~ 2.38s 2.45s p=0.374 n=6
Bind Time 1.16s (± 0.54%) 1.17s (± 0.72%) ~ 1.16s 1.18s p=0.340 n=6
Check Time 7.45s (± 0.30%) 7.43s (± 0.27%) ~ 7.40s 7.46s p=0.257 n=6
Emit Time 4.28s (± 0.41%) 4.26s (± 0.75%) ~ 4.21s 4.30s p=0.623 n=6
Total Time 15.28s (± 0.22%) 15.27s (± 0.35%) ~ 15.21s 15.36s p=0.747 n=6
material-ui - node (v18.15.0, x64)
Memory used 510,526k (± 0.01%) 510,512k (± 0.00%) ~ 510,496k 510,519k p=0.229 n=6
Parse Time 2.66s (± 0.31%) 2.68s (± 0.65%) ~ 2.66s 2.71s p=0.121 n=6
Bind Time 0.98s (± 0.83%) 0.99s (± 0.83%) ~ 0.98s 1.00s p=0.666 n=6
Check Time 17.15s (± 0.25%) 17.23s (± 0.38%) +0.08s (+ 0.44%) 17.16s 17.34s p=0.043 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.80s (± 0.18%) 20.89s (± 0.30%) +0.09s (+ 0.44%) 20.83s 21.00s p=0.016 n=6
mui-docs - node (v18.15.0, x64)
Memory used 1,743,838k (± 0.00%) 1,743,793k (± 0.00%) -44k (- 0.00%) 1,743,754k 1,743,827k p=0.031 n=6
Parse Time 7.83s (± 0.48%) 7.79s (± 0.51%) ~ 7.74s 7.85s p=0.109 n=6
Bind Time 2.73s (± 0.89%) 2.75s (± 1.34%) ~ 2.72s 2.81s p=0.418 n=6
Check Time 66.48s (± 0.51%) 66.25s (± 0.29%) ~ 65.88s 66.41s p=0.173 n=6
Emit Time 0.16s (± 3.29%) 0.15s (± 3.53%) ~ 0.15s 0.16s p=0.640 n=6
Total Time 77.20s (± 0.42%) 76.93s (± 0.22%) ~ 76.61s 77.07s p=0.128 n=6
self-build-src - node (v18.15.0, x64)
Memory used 2,299,391k (± 0.05%) 2,299,518k (± 0.05%) ~ 2,297,561k 2,301,146k p=1.000 n=6
Parse Time 7.38s (± 0.96%) 7.42s (± 0.40%) ~ 7.37s 7.45s p=0.471 n=6
Bind Time 2.70s (± 0.41%) 2.70s (± 0.77%) ~ 2.68s 2.73s p=0.622 n=6
Check Time 48.78s (± 0.81%) 48.59s (± 0.39%) ~ 48.23s 48.80s p=0.298 n=6
Emit Time 3.85s (± 4.64%) 3.84s (± 3.60%) ~ 3.71s 4.04s p=0.873 n=6
Total Time 62.71s (± 0.74%) 62.57s (± 0.39%) ~ 62.21s 62.81s p=0.810 n=6
self-build-src-public-api - node (v18.15.0, x64)
Memory used 2,374,097k (± 0.03%) 2,373,779k (± 0.04%) ~ 2,372,687k 2,374,948k p=0.689 n=6
Parse Time 7.66s (± 0.61%) 7.66s (± 1.27%) ~ 7.55s 7.79s p=0.748 n=6
Bind Time 2.47s (± 1.01%) 2.46s (± 1.52%) ~ 2.40s 2.50s p=0.294 n=6
Check Time 49.28s (± 0.52%) 49.29s (± 0.36%) ~ 49.06s 49.55s p=0.810 n=6
Emit Time 3.90s (± 2.08%) 3.90s (± 1.27%) ~ 3.87s 4.00s p=0.810 n=6
Total Time 63.33s (± 0.43%) 63.33s (± 0.15%) ~ 63.22s 63.50s p=0.423 n=6
self-compiler - node (v18.15.0, x64)
Memory used 418,079k (± 0.01%) 418,085k (± 0.01%) ~ 418,028k 418,121k p=1.000 n=6
Parse Time 4.14s (± 0.33%) 4.15s (± 0.39%) ~ 4.13s 4.17s p=0.324 n=6
Bind Time 1.60s (± 0.92%) 1.60s (± 0.68%) ~ 1.59s 1.62s p=1.000 n=6
Check Time 22.01s (± 0.26%) 22.00s (± 0.27%) ~ 21.93s 22.07s p=1.000 n=6
Emit Time 1.70s (± 1.26%) 1.70s (± 2.03%) ~ 1.67s 1.76s p=0.685 n=6
Total Time 29.45s (± 0.21%) 29.45s (± 0.22%) ~ 29.35s 29.53s p=0.936 n=6
vscode - node (v18.15.0, x64)
Memory used 2,904,054k (± 0.00%) 2,904,030k (± 0.00%) ~ 2,903,975k 2,904,090k p=0.689 n=6
Parse Time 10.88s (± 0.24%) 10.84s (± 0.38%) ~ 10.80s 10.89s p=0.169 n=6
Bind Time 3.40s (± 0.25%) 3.39s (± 0.39%) ~ 3.37s 3.41s p=0.788 n=6
Check Time 61.42s (± 0.48%) 61.64s (± 0.21%) ~ 61.49s 61.87s p=0.378 n=6
Emit Time 16.56s (± 0.72%) 16.40s (± 0.77%) -0.16s (- 0.98%) 16.27s 16.62s p=0.045 n=6
Total Time 92.26s (± 0.35%) 92.28s (± 0.22%) ~ 92.04s 92.58s p=0.936 n=6
webpack - node (v18.15.0, x64)
Memory used 408,676k (± 0.01%) 408,643k (± 0.01%) ~ 408,584k 408,709k p=0.378 n=6
Parse Time 3.87s (± 0.60%) 3.90s (± 0.62%) ~ 3.87s 3.94s p=0.104 n=6
Bind Time 1.66s (± 1.08%) 1.66s (± 0.73%) ~ 1.65s 1.68s p=0.806 n=6
Check Time 16.65s (± 0.15%) 16.68s (± 0.30%) ~ 16.63s 16.76s p=0.294 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.18s (± 0.15%) 22.25s (± 0.29%) ~ 22.17s 22.34s p=0.078 n=6
xstate - node (v18.15.0, x64)
Memory used 514,468k (± 0.02%) 670,860k (± 0.02%) 🔻+156,393k (+30.40%) 670,710k 671,016k p=0.005 n=6
Parse Time 4.92s (± 0.33%) 4.98s (± 0.95%) +0.06s (+ 1.22%) 4.90s 5.03s p=0.044 n=6
Bind Time 2.31s (± 0.92%) 2.31s (± 0.52%) ~ 2.30s 2.33s p=1.000 n=6
Check Time 4.23s (± 0.50%) 4.24s (± 0.92%) ~ 4.19s 4.29s p=1.000 n=6
Emit Time 0.11s (± 4.55%) 0.03s (± 0.00%) 🟩-0.08s (-73.53%) 0.03s 0.03s p=0.002 n=6
Total Time 11.57s (± 0.39%) 11.57s (± 0.57%) ~ 11.52s 11.67s p=0.375 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Angular - node (v18.15.0, x64)
  • Compiler-Unions - node (v18.15.0, x64)
  • Monaco - node (v18.15.0, x64)
  • TFS - node (v18.15.0, x64)
  • material-ui - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-build-src-public-api - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

@typescript-bot
Copy link
Collaborator

@gabritto Here are the results of running the user tests comparing main and refs/pull/57341/merge:

Everything looks good!

@gabritto
Copy link
Member

gabritto commented Apr 8, 2024

I'm guessing this PR breaks xstate:
image

@typescript-bot
Copy link
Collaborator

@gabritto Here are the results of running the top 400 repos comparing main and refs/pull/57341/merge:

Something interesting changed - please have a look.

Details

microsoft/vscode

4 of 54 projects failed to build with the old tsc and were ignored

src/tsconfig.tsec.json

src/tsconfig.monaco.json

src/tsconfig.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Breaking Change Would introduce errors in existing code For Backlog Bug PRs that fix a backlog bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

this is return type of method isn't checked when implementing
5 participants