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

Perform partial inference with partially filled type parameter lists #54047

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

weswigham
Copy link
Member

@weswigham weswigham commented Apr 27, 2023

This implements what we wanted to look into a yesterday's design meeting - for expression inference sites, any number of type parameters can be provided, the rest will be inferred from the argument expressions. Likewise, you may now omit type arguments from the middle of a type argument list and have those omitted positions inferred, too.

This is just another flavor of #26349, so this will close #26349 if merged.

@typescript-bot typescript-bot added Author: Team For Milestone Bug PRs that fix a bug with a specific milestone labels Apr 27, 2023
@weswigham
Copy link
Member Author

@typescript-bot test this
@typescript-bot run dt
@typescript-bot test top100
@typescript-bot perf test this
@typescript-bot pack this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 28, 2023

Heya @weswigham, I've started to run the extended test suite on this PR at da7b047. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 28, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 28, 2023

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 28, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 28, 2023

Heya @weswigham, I've started to run the perf test suite on this PR at da7b047. You can monitor the build here.

Update: The results are in!

@weswigham
Copy link
Member Author

(Given how some of the tests colorize in the editor, I think this change will need a tmLanguage update, but we should maybe do that regardless of whether we take this or not for better error recovery when people are deleting/writing type argument lists)

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 28, 2023

Hey @weswigham, 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/153473/artifacts?artifactName=tgz&fileId=C70022D27B778AE17FD10B906383AFE869310E999BB2B75D38A045FDF449942F02&fileName=/typescript-5.1.0-insiders.20230428.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/[email protected]".;

@typescript-bot
Copy link
Collaborator

Heya @weswigham, I've run the RWC suite on this PR - assuming you're on the TS core team, you can view the resulting diff here.

@typescript-bot
Copy link
Collaborator

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

Here they are:

Compiler

Comparison Report - main..54047
Metric main 54047 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 365,883k (± 0.01%) 365,927k (± 0.01%) +44k (+ 0.01%) 365,906k 366,009k p=0.045 n=6
Parse Time 3.40s (± 0.87%) 3.40s (± 1.06%) ~ 3.35s 3.45s p=0.872 n=6
Bind Time 1.11s (± 0.89%) 1.11s (± 0.68%) ~ 1.10s 1.12s p=0.554 n=6
Check Time 8.74s (± 0.37%) 8.80s (± 0.41%) +0.06s (+ 0.65%) 8.74s 8.85s p=0.020 n=6
Emit Time 7.44s (± 1.18%) 7.47s (± 0.71%) ~ 7.41s 7.54s p=0.378 n=6
Total Time 20.69s (± 0.60%) 20.78s (± 0.45%) ~ 20.67s 20.94s p=0.199 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 193,284k (± 1.44%) 191,949k (± 1.25%) ~ 190,946k 196,832k p=0.298 n=6
Parse Time 1.49s (± 1.61%) 1.48s (± 1.38%) ~ 1.44s 1.50s p=0.153 n=6
Bind Time 0.77s (± 0.67%) 0.77s (± 1.27%) ~ 0.76s 0.79s p=0.386 n=6
Check Time 9.54s (± 0.72%) 9.68s (± 0.51%) +0.15s (+ 1.54%) 9.63s 9.76s p=0.010 n=6
Emit Time 2.76s (± 0.50%) 2.76s (± 0.98%) ~ 2.73s 2.81s p=0.871 n=6
Total Time 14.55s (± 0.64%) 14.70s (± 0.44%) +0.15s (+ 1.00%) 14.64s 14.82s p=0.024 n=6
Monaco - node (v18.10.0, x64)
Memory used 346,500k (± 0.01%) 346,575k (± 0.01%) +75k (+ 0.02%) 346,516k 346,632k p=0.020 n=6
Parse Time 2.56s (± 1.06%) 2.58s (± 0.81%) ~ 2.54s 2.60s p=0.287 n=6
Bind Time 1.00s (± 0.54%) 1.00s (± 1.17%) ~ 0.99s 1.02s p=0.152 n=6
Check Time 7.16s (± 0.22%) 7.16s (± 0.43%) ~ 7.12s 7.19s p=0.745 n=6
Emit Time 4.23s (± 1.24%) 4.22s (± 0.53%) ~ 4.18s 4.24s p=0.809 n=6
Total Time 14.96s (± 0.45%) 14.96s (± 0.30%) ~ 14.91s 15.01s p=0.686 n=6
TFS - node (v18.10.0, x64)
Memory used 300,715k (± 0.01%) 300,774k (± 0.01%) +59k (+ 0.02%) 300,754k 300,799k p=0.005 n=6
Parse Time 2.06s (± 0.99%) 2.05s (± 1.17%) ~ 2.01s 2.07s p=0.743 n=6
Bind Time 1.14s (± 1.20%) 1.14s (± 0.96%) ~ 1.13s 1.16s p=0.933 n=6
Check Time 6.58s (± 0.45%) 6.61s (± 0.51%) ~ 6.57s 6.66s p=0.259 n=6
Emit Time 3.89s (± 0.57%) 3.89s (± 0.76%) ~ 3.84s 3.92s p=0.744 n=6
Total Time 13.66s (± 0.30%) 13.69s (± 0.48%) ~ 13.62s 13.78s p=0.571 n=6
material-ui - node (v18.10.0, x64)
Memory used 482,370k (± 0.01%) 482,547k (± 0.01%) +177k (+ 0.04%) 482,515k 482,638k p=0.005 n=6
Parse Time 3.08s (± 0.46%) 3.08s (± 0.54%) ~ 3.06s 3.10s p=1.000 n=6
Bind Time 0.91s (± 0.45%) 0.91s (± 0.56%) ~ 0.91s 0.92s p=0.114 n=6
Check Time 16.88s (± 0.65%) 16.97s (± 0.67%) ~ 16.84s 17.11s p=0.173 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.86s (± 0.52%) 20.96s (± 0.54%) ~ 20.82s 21.09s p=0.199 n=6
xstate - node (v18.10.0, x64)
Memory used 563,213k (± 0.03%) 570,939k (± 0.02%) +7,727k (+ 1.37%) 570,803k 571,118k p=0.005 n=6
Parse Time 3.81s (± 0.37%) 3.79s (± 0.43%) ~ 3.76s 3.80s p=0.081 n=6
Bind Time 1.62s (± 0.25%) 1.62s (± 0.93%) ~ 1.60s 1.64s p=0.315 n=6
Check Time 2.81s (± 0.54%) 3.10s (± 0.76%) +0.29s (+10.45%) 3.07s 3.13s p=0.005 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 0.00%) ~ 0.08s 0.08s p=1.000 n=6
Total Time 8.32s (± 0.16%) 8.59s (± 0.24%) +0.28s (+ 3.31%) 8.56s 8.62s p=0.004 n=6
Angular - node (v16.17.1, x64)
Memory used 365,304k (± 0.01%) 365,309k (± 0.01%) ~ 365,278k 365,380k p=0.809 n=6
Parse Time 3.53s (± 0.30%) 3.53s (± 0.42%) ~ 3.51s 3.55s p=0.413 n=6
Bind Time 1.17s (± 0.71%) 1.17s (± 0.35%) ~ 1.17s 1.18s p=0.527 n=6
Check Time 9.52s (± 0.32%) 9.54s (± 0.31%) ~ 9.50s 9.57s p=0.193 n=6
Emit Time 7.86s (± 0.65%) 7.88s (± 0.52%) ~ 7.83s 7.93s p=0.572 n=6
Total Time 22.09s (± 0.28%) 22.13s (± 0.30%) ~ 22.04s 22.20s p=0.470 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 192,725k (± 0.02%) 192,748k (± 0.02%) ~ 192,700k 192,796k p=0.230 n=6
Parse Time 1.59s (± 0.92%) 1.58s (± 0.93%) ~ 1.56s 1.60s p=0.289 n=6
Bind Time 0.82s (± 0.50%) 0.82s (± 1.20%) ~ 0.81s 0.83s p=0.930 n=6
Check Time 10.22s (± 0.60%) 10.28s (± 0.26%) ~ 10.25s 10.33s p=0.195 n=6
Emit Time 3.02s (± 0.87%) 3.01s (± 0.89%) ~ 2.99s 3.06s p=0.416 n=6
Total Time 15.66s (± 0.43%) 15.69s (± 0.14%) ~ 15.67s 15.73s p=0.335 n=6
Monaco - node (v16.17.1, x64)
Memory used 345,779k (± 0.01%) 345,864k (± 0.01%) +85k (+ 0.02%) 345,838k 345,887k p=0.005 n=6
Parse Time 2.72s (± 0.28%) 2.71s (± 0.28%) ~ 2.70s 2.72s p=0.195 n=6
Bind Time 1.08s (± 0.77%) 1.08s (± 0.70%) ~ 1.07s 1.09s p=0.652 n=6
Check Time 7.83s (± 0.25%) 7.87s (± 0.35%) +0.04s (+ 0.57%) 7.84s 7.92s p=0.012 n=6
Emit Time 4.45s (± 1.22%) 4.47s (± 0.77%) ~ 4.42s 4.51s p=0.227 n=6
Total Time 16.08s (± 0.43%) 16.14s (± 0.29%) ~ 16.08s 16.22s p=0.078 n=6
TFS - node (v16.17.1, x64)
Memory used 300,076k (± 0.01%) 300,101k (± 0.01%) ~ 300,086k 300,129k p=0.078 n=6
Parse Time 2.14s (± 0.82%) 2.15s (± 0.24%) ~ 2.14s 2.15s p=0.667 n=6
Bind Time 1.23s (± 0.89%) 1.23s (± 1.26%) ~ 1.22s 1.26s p=0.863 n=6
Check Time 7.22s (± 0.37%) 7.26s (± 0.61%) ~ 7.20s 7.32s p=0.126 n=6
Emit Time 4.38s (± 0.81%) 4.36s (± 0.91%) ~ 4.31s 4.40s p=0.422 n=6
Total Time 14.97s (± 0.49%) 15.00s (± 0.45%) ~ 14.89s 15.06s p=0.571 n=6
material-ui - node (v16.17.1, x64)
Memory used 481,621k (± 0.00%) 481,790k (± 0.01%) +169k (+ 0.04%) 481,723k 481,829k p=0.005 n=6
Parse Time 3.23s (± 0.37%) 3.24s (± 0.46%) ~ 3.22s 3.26s p=0.805 n=6
Bind Time 0.93s (± 0.59%) 0.93s (± 0.44%) ~ 0.93s 0.94s p=0.282 n=6
Check Time 17.88s (± 0.98%) 17.85s (± 0.43%) ~ 17.77s 17.99s p=0.810 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.05s (± 0.79%) 22.02s (± 0.36%) ~ 21.95s 22.16s p=0.872 n=6
xstate - node (v16.17.1, x64)
Memory used 560,685k (± 0.02%) 568,470k (± 0.02%) +7,785k (+ 1.39%) 568,335k 568,536k p=0.005 n=6
Parse Time 3.98s (± 0.26%) 3.96s (± 0.34%) ~ 3.95s 3.98s p=0.167 n=6
Bind Time 1.75s (± 0.23%) 1.76s (± 0.46%) ~ 1.75s 1.77s p=0.248 n=6
Check Time 3.04s (± 0.71%) 3.32s (± 0.71%) +0.28s (+ 9.09%) 3.29s 3.35s p=0.005 n=6
Emit Time 0.09s (± 0.00%) 0.08s (± 4.99%) 🟩-0.01s (- 9.26%) 0.08s 0.09s p=0.007 n=6
Total Time 8.86s (± 0.20%) 9.14s (± 0.34%) +0.28s (+ 3.14%) 9.10s 9.17s p=0.005 n=6
Angular - node (v14.21.3, x64)
Memory used 359,306k (± 0.00%) 359,362k (± 0.01%) +55k (+ 0.02%) 359,337k 359,384k p=0.005 n=6
Parse Time 3.65s (± 0.37%) 3.64s (± 0.33%) ~ 3.63s 3.66s p=0.215 n=6
Bind Time 1.22s (± 0.62%) 1.21s (± 0.34%) -0.01s (- 0.82%) 1.21s 1.22s p=0.029 n=6
Check Time 9.97s (± 0.40%) 9.99s (± 0.27%) ~ 9.96s 10.04s p=0.462 n=6
Emit Time 8.25s (± 0.86%) 8.25s (± 0.85%) ~ 8.16s 8.34s p=0.936 n=6
Total Time 23.11s (± 0.53%) 23.10s (± 0.44%) ~ 23.00s 23.26s p=0.872 n=6
Compiler-Unions - node (v14.21.3, x64)
Memory used 188,083k (± 0.01%) 188,160k (± 0.01%) +78k (+ 0.04%) 188,132k 188,177k p=0.005 n=6
Parse Time 1.59s (± 0.32%) 1.60s (± 0.61%) ~ 1.59s 1.61s p=0.140 n=6
Bind Time 0.84s (± 0.48%) 0.84s (± 0.65%) ~ 0.84s 0.85s p=0.282 n=6
Check Time 10.30s (± 0.20%) 10.39s (± 0.53%) +0.09s (+ 0.91%) 10.31s 10.47s p=0.010 n=6
Emit Time 3.16s (± 0.68%) 3.17s (± 1.61%) ~ 3.14s 3.27s p=0.870 n=6
Total Time 15.90s (± 0.20%) 16.01s (± 0.47%) +0.11s (+ 0.70%) 15.88s 16.09s p=0.029 n=6
Monaco - node (v14.21.3, x64)
Memory used 340,878k (± 0.01%) 340,949k (± 0.01%) +71k (+ 0.02%) 340,926k 340,973k p=0.005 n=6
Parse Time 2.79s (± 0.42%) 2.79s (± 0.19%) ~ 2.78s 2.79s p=0.929 n=6
Bind Time 1.10s (± 0.37%) 1.11s (± 0.74%) ~ 1.10s 1.12s p=0.248 n=6
Check Time 8.13s (± 0.69%) 8.18s (± 0.55%) ~ 8.14s 8.26s p=0.169 n=6
Emit Time 4.69s (± 1.54%) 4.69s (± 0.65%) ~ 4.63s 4.72s p=0.809 n=6
Total Time 16.71s (± 0.59%) 16.77s (± 0.23%) ~ 16.73s 16.84s p=0.229 n=6
TFS - node (v14.21.3, x64)
Memory used 295,250k (± 0.00%) 295,286k (± 0.00%) +36k (+ 0.01%) 295,269k 295,300k p=0.005 n=6
Parse Time 2.39s (± 0.51%) 2.38s (± 0.72%) ~ 2.36s 2.41s p=0.566 n=6
Bind Time 1.06s (± 0.49%) 1.06s (± 0.00%) ~ 1.06s 1.06s p=0.174 n=6
Check Time 7.55s (± 0.66%) 7.56s (± 0.40%) ~ 7.52s 7.60s p=1.000 n=6
Emit Time 4.32s (± 0.32%) 4.32s (± 0.56%) ~ 4.27s 4.34s p=0.744 n=6
Total Time 15.32s (± 0.42%) 15.31s (± 0.27%) ~ 15.26s 15.36s p=0.688 n=6
material-ui - node (v14.21.3, x64)
Memory used 477,217k (± 0.00%) 477,404k (± 0.01%) +188k (+ 0.04%) 477,372k 477,439k p=0.005 n=6
Parse Time 3.31s (± 0.37%) 3.29s (± 0.17%) -0.02s (- 0.60%) 3.29s 3.30s p=0.015 n=6
Bind Time 1.00s (± 0.52%) 1.00s (± 0.75%) ~ 0.99s 1.01s p=0.784 n=6
Check Time 18.69s (± 0.22%) 18.74s (± 0.20%) ~ 18.69s 18.80s p=0.075 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.00s (± 0.19%) 23.04s (± 0.20%) ~ 22.98s 23.11s p=0.334 n=6
xstate - node (v14.21.3, x64)
Memory used 549,587k (± 0.00%) 557,492k (± 0.00%) +7,905k (+ 1.44%) 557,453k 557,519k p=0.005 n=6
Parse Time 4.24s (± 1.59%) 4.18s (± 0.51%) ~ 4.15s 4.21s p=0.108 n=6
Bind Time 1.62s (± 4.71%) 1.64s (± 2.26%) ~ 1.57s 1.66s p=0.557 n=6
Check Time 3.19s (± 0.54%) 3.53s (± 0.58%) +0.34s (+10.77%) 3.51s 3.55s p=0.005 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 4.45%) ~ 0.09s 0.10s p=0.405 n=6
Total Time 9.14s (± 0.40%) 9.44s (± 0.32%) +0.30s (+ 3.30%) 9.40s 9.47s p=0.005 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-147-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.21.3, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.21.3, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.21.3, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.21.3, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.21.3, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.21.3, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.21.3, x64)
Benchmark Name Iterations
Current 54047 6
Baseline main 6

TSServer

Comparison Report - main..54047
Metric main 54047 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,531ms (± 0.33%) 2,526ms (± 0.65%) ~ 2,510ms 2,555ms p=0.298 n=6
Req 2 - geterr 5,702ms (± 0.50%) 5,665ms (± 1.34%) ~ 5,512ms 5,714ms p=0.689 n=6
Req 3 - references 341ms (± 0.65%) 342ms (± 1.09%) ~ 338ms 349ms p=0.420 n=6
Req 4 - navto 282ms (± 0.45%) 284ms (± 1.27%) ~ 281ms 291ms p=0.279 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 84ms (± 1.17%) 85ms (± 0.89%) ~ 84ms 86ms p=0.167 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,634ms (± 0.33%) 2,643ms (± 1.11%) ~ 2,599ms 2,686ms p=0.423 n=6
Req 2 - geterr 4,329ms (± 0.28%) 4,295ms (± 2.24%) ~ 4,167ms 4,385ms p=0.471 n=6
Req 3 - references 348ms (± 0.47%) 347ms (± 0.42%) ~ 345ms 349ms p=0.279 n=6
Req 4 - navto 289ms (± 0.42%) 289ms (± 0.71%) ~ 287ms 293ms p=0.743 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 63ms (± 4.54%) 66ms (± 6.05%) ~ 62ms 71ms p=0.122 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,065ms (± 0.36%) 3,058ms (± 0.25%) ~ 3,045ms 3,068ms p=0.336 n=6
Req 2 - geterr 1,615ms (± 1.26%) 1,615ms (± 1.24%) ~ 1,583ms 1,642ms p=0.748 n=6
Req 3 - references 107ms (± 0.51%) 107ms (± 1.91%) ~ 105ms 109ms p=1.000 n=6
Req 4 - navto 363ms (± 0.61%) 362ms (± 0.48%) ~ 360ms 365ms p=0.366 n=6
Req 5 - completionInfo count 2,862 (± 0.00%) 2,862 (± 0.00%) ~ 2,862 2,862 p=1.000 n=6
Req 5 - completionInfo 371ms (± 1.46%) 370ms (± 1.98%) ~ 359ms 378ms p=1.000 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,664ms (± 0.37%) 2,648ms (± 0.59%) ~ 2,626ms 2,669ms p=0.109 n=6
Req 2 - geterr 6,131ms (± 0.25%) 6,147ms (± 0.37%) ~ 6,122ms 6,183ms p=0.229 n=6
Req 3 - references 354ms (± 0.73%) 355ms (± 0.58%) ~ 351ms 357ms p=0.515 n=6
Req 4 - navto 284ms (± 0.50%) 286ms (± 1.65%) ~ 279ms 291ms p=0.685 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 88ms (± 6.62%) 90ms (± 4.51%) ~ 82ms 93ms p=0.558 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,799ms (± 0.57%) 2,796ms (± 0.70%) ~ 2,770ms 2,824ms p=0.936 n=6
Req 2 - geterr 4,662ms (± 0.29%) 4,690ms (± 0.20%) +29ms (+ 0.62%) 4,675ms 4,704ms p=0.008 n=6
Req 3 - references 362ms (± 0.44%) 362ms (± 0.29%) ~ 361ms 363ms p=0.934 n=6
Req 4 - navto 285ms (± 0.68%) 283ms (± 0.95%) ~ 280ms 286ms p=0.221 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 67ms (± 1.12%) 68ms (± 0.93%) ~ 67ms 69ms p=0.081 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,199ms (± 0.55%) 3,206ms (± 0.25%) ~ 3,190ms 3,214ms p=0.575 n=6
Req 2 - geterr 1,762ms (± 1.01%) 1,761ms (± 0.58%) ~ 1,754ms 1,781ms p=0.747 n=6
Req 3 - references 126ms (± 6.08%) 123ms (± 1.73%) ~ 119ms 125ms p=0.735 n=6
Req 4 - navto 341ms (± 0.40%) 339ms (± 0.44%) ~ 338ms 341ms p=0.117 n=6
Req 5 - completionInfo count 2,862 (± 0.00%) 2,862 (± 0.00%) ~ 2,862 2,862 p=1.000 n=6
Req 5 - completionInfo 396ms (± 1.26%) 402ms (± 1.76%) ~ 397ms 416ms p=0.226 n=6
Compiler-UnionsTSServer - node (v14.21.3, x64)
Req 1 - updateOpen 2,766ms (± 0.34%) 2,767ms (± 0.55%) ~ 2,744ms 2,787ms p=0.810 n=6
Req 2 - geterr 6,264ms (± 0.58%) 6,299ms (± 0.39%) ~ 6,264ms 6,325ms p=0.128 n=6
Req 3 - references 366ms (± 0.69%) 373ms (± 5.12%) ~ 364ms 412ms p=0.933 n=6
Req 4 - navto 290ms (± 0.48%) 287ms (± 0.42%) -2ms (- 0.75%) 286ms 289ms p=0.021 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 97ms (± 6.44%) 101ms (± 5.01%) ~ 91ms 104ms p=0.167 n=6
CompilerTSServer - node (v14.21.3, x64)
Req 1 - updateOpen 2,936ms (± 0.27%) 2,948ms (± 0.61%) ~ 2,925ms 2,969ms p=0.377 n=6
Req 2 - geterr 4,545ms (± 0.36%) 4,578ms (± 1.45%) ~ 4,531ms 4,709ms p=0.471 n=6
Req 3 - references 374ms (± 0.46%) 377ms (± 1.38%) ~ 371ms 386ms p=0.169 n=6
Req 4 - navto 296ms (± 0.74%) 296ms (± 0.66%) ~ 292ms 297ms p=0.668 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 76ms (± 1.35%) 76ms (± 1.44%) ~ 74ms 77ms p=0.863 n=6
xstateTSServer - node (v14.21.3, x64)
Req 1 - updateOpen 3,443ms (± 1.55%) 3,464ms (± 1.04%) ~ 3,402ms 3,504ms p=0.423 n=6
Req 2 - geterr 1,864ms (± 0.37%) 1,872ms (± 0.61%) ~ 1,855ms 1,891ms p=0.295 n=6
Req 3 - references 141ms (± 8.20%) 155ms (± 5.76%) ~ 137ms 160ms p=0.064 n=6
Req 4 - navto 396ms (± 1.59%) 395ms (± 0.81%) ~ 391ms 400ms p=1.000 n=6
Req 5 - completionInfo count 2,862 (± 0.00%) 2,862 (± 0.00%) ~ 2,862 2,862 p=1.000 n=6
Req 5 - completionInfo 425ms (± 2.81%) 427ms (± 3.11%) ~ 402ms 437ms p=0.630 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-147-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.21.3, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.21.3, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.21.3, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.21.3, x64)
Benchmark Name Iterations
Current 54047 6
Baseline main 6

Startup

Comparison Report - main..54047
Metric main 54047 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 140.94ms (± 0.21%) 140.87ms (± 0.17%) -0.07ms (- 0.05%) 140.04ms 143.63ms p=0.025 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 219.20ms (± 0.19%) 219.19ms (± 0.17%) ~ 217.96ms 223.03ms p=0.889 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 220.45ms (± 0.14%) 220.67ms (± 0.18%) +0.22ms (+ 0.10%) 219.57ms 225.38ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 202.49ms (± 0.16%) 202.77ms (± 0.19%) +0.28ms (+ 0.14%) 201.80ms 210.20ms p=0.000 n=600
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-147-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v16.17.1, x64)
Scenarios
  • tsc-startup - node (v16.17.1, x64)
  • tsserver-startup - node (v16.17.1, x64)
  • tsserverlibrary-startup - node (v16.17.1, x64)
  • typescript-startup - node (v16.17.1, x64)
Benchmark Name Iterations
Current 54047 6
Baseline main 6

Developer Information:

Download Benchmark

@typescript-bot
Copy link
Collaborator

Hey @weswigham, the results of running the DT tests are ready.
There were interesting changes:

Branch only errors:

Package: lodash
Error:

Error: /home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/lodash/lodash-tests.ts:1491:5
ERROR: 1491:5  expect  TypeScript@local expected type to be:
  (AbcObject | undefined)[][]
got:
  [AbcObject | undefined, AbcObject | undefined, AbcObject | undefined][]
ERROR: 1492:5  expect  TypeScript@local expected type to be:
  (string | number | boolean | undefined)[][]
got:
  [string | number | boolean | undefined, string | undefined, boolean | undefined][]

    at testTypesVersion (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:194:15)
    at async runTests (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:151:9)

Package: angular-odata-resources
Error:

Error: /home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/angular-odata-resources/angular-odata-resources-tests.ts:121:1
ERROR: 121:1   expect  TypeScript@local compile error: 
Type '{}' is missing the following properties from type 'IResourceClass<IMyResource>': get, query, save, update, and 3 more.
ERROR: 164:32  expect  TypeScript@local compile error: 
Property 'odata' does not exist on type 'unknown'.
ERROR: 170:31  expect  TypeScript@local compile error: 
Property 'odata' does not exist on type 'unknown'.
ERROR: 177:20  expect  TypeScript@local compile error: 
Parameter 's' implicitly has an 'any' type.
ERROR: 193:28  expect  TypeScript@local compile error: 
Property 'odata' does not exist on type 'unknown'.
ERROR: 198:38  expect  TypeScript@local compile error: 
Property 'odata' does not exist on type 'unknown'.
ERROR: 204:39  expect  TypeScript@local compile error: 
Property 'odata' does not exist on type 'unknown'.
ERROR: 208:39  expect  TypeScript@local compile error: 
Property 'odata' does not exist on type 'unknown'.

    at testTypesVersion (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:194:15)
    at async runTests (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:151:9)

Package: hapi__joi
Error:

Error: /home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/hapi__joi/hapi__joi-tests.ts:1247:5
ERROR: 1247:5  expect  TypeScript@local compile error: 
Unused '@ts-expect-error' directive.

    at testTypesVersion (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:194:15)
    at async runTests (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:151:9)

Package: lodash/v3
Error:

Error: /home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/lodash/v3/lodash-tests.ts:5695:9
ERROR: 5695:9   expect  TypeScript@local compile error: 
Type 'Function' is not assignable to type 'SampleResult'.
  Type 'Function' provides no match for the signature '(a: number, b: string): boolean'.
ERROR: 8060:9   expect  TypeScript@local compile error: 
Property 'a' is missing in type '{}' but required in type 'Obj'.
ERROR: 8672:9   expect  TypeScript@local compile error: 
Type 'unknown' is not assignable to type 'string'.
ERROR: 8674:9   expect  TypeScript@local compile error: 
Type 'unknown' is not assignable to type 'string'.
ERROR: 9185:9   expect  TypeScript@local compile error: 
Type 'unknown' is not assignable to type 'string'.
ERROR: 9188:9   expect  TypeScript@local compile error: 
Type 'unknown' is not assignable to type 'string'.
ERROR: 10235:9  expect  TypeScript@local compile error: 
Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
  Property 'a' is missing in type '{}' but required in type '{ a: string; }'.
ERROR: 10236:9  expect  TypeScript@local compile error: 
Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
  Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10237:9  expect  TypeScript@local compile error: 
Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
  Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10238:9  expect  TypeScript@local compile error: 
Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
  Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10240:9  expect  TypeScript@local compile error: 
Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
  Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10241:9  expect  TypeScript@local compile error: 
Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
  Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10242:9  expect  TypeScript@local compile error: 
Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
  Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10243:9  expect  TypeScript@local compile error: 
Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
  Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10263:9  expect  TypeScript@local compile error: 
Type 'LoDashImplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashImplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Property 'a' is missing in type '{}' but required in type '{ a: string; }'.
ERROR: 10264:9  expect  TypeScript@local compile error: 
Type 'LoDashImplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashImplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10265:9  expect  TypeScript@local compile error: 
Type 'LoDashImplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashImplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10266:9  expect  TypeScript@local compile error: 
Type 'LoDashImplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashImplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10268:9  expect  TypeScript@local compile error: 
Type 'LoDashImplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashImplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10269:9  expect  TypeScript@local compile error: 
Type 'LoDashImplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashImplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10270:9  expect  TypeScript@local compile error: 
Type 'LoDashImplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashImplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10271:9  expect  TypeScript@local compile error: 
Type 'LoDashImplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashImplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10291:9  expect  TypeScript@local compile error: 
Type 'LoDashExplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashExplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Property 'a' is missing in type '{}' but required in type '{ a: string; }'.
ERROR: 10292:9  expect  TypeScript@local compile error: 
Type 'LoDashExplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashExplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10293:9  expect  TypeScript@local compile error: 
Type 'LoDashExplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashExplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10294:9  expect  TypeScript@local compile error: 
Type 'LoDashExplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashExplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10296:9  expect  TypeScript@local compile error: 
Type 'LoDashExplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashExplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10297:9  expect  TypeScript@local compile error: 
Type 'LoDashExplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashExplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10298:9  expect  TypeScript@local compile error: 
Type 'LoDashExplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashExplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.
ERROR: 10299:9  expect  TypeScript@local compile error: 
Type 'LoDashExplicitObjectWrapper<(object: { a: string; }) => unknown>' is not assignable to type 'LoDashExplicitObjectWrapper<(object: any) => { a: string; }>'.
  Type '(object: { a: string; }) => unknown' is not assignable to type '(object: any) => { a: string; }'.
    Type 'unknown' is not assignable to type '{ a: string; }'.

    at testTypesVersion (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:194:15)
    at async runTests (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:151:9)

Package: redux-actions
Error:

Error: /home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/redux-actions/redux-actions-tests.ts:159:10
ERROR: 159:10  expect  TypeScript@local compile error: 
Parameter '_' implicitly has an 'any' type.
ERROR: 159:13  expect  TypeScript@local compile error: 
Parameter 'remote' implicitly has an 'any' type.

    at testTypesVersion (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:194:15)
    at async runTests (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:151:9)

Package: skatejs
Error:

Error: /home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/skatejs/test/utils/link.ts:21:27
ERROR: 21:27  expect  TypeScript@local compile error: 
Argument of type 'this' is not assignable to parameter of type 'CustomElement'.
  Type 'default' is missing the following properties from type 'CustomElement': connectedCallback, disconnectedCallback, attributeChangedCallback, accessKey, and 288 more.
ERROR: 28:10  expect  TypeScript@local compile error: 
Argument of type 'this' is not assignable to parameter of type 'CustomElement'.
ERROR: 29:10  expect  TypeScript@local compile error: 
Argument of type 'this' is not assignable to parameter of type 'CustomElement'.
ERROR: 30:10  expect  TypeScript@local compile error: 
Argument of type 'this' is not assignable to parameter of type 'CustomElement'.

    at testTypesVersion (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:194:15)
    at async runTests (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:151:9)

Package: enzyme
Error:

Error: /home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/enzyme/enzyme-tests.tsx:145:13
ERROR: 145:13  expect  TypeScript@local expected type to be:
  number
got:
  any
ERROR: 146:13  expect  TypeScript@local expected type to be:
  string
got:
  any
ERROR: 161:9   expect  TypeScript@local compile error: 
Unused '@ts-expect-error' directive.
ERROR: 163:9   expect  TypeScript@local compile error: 
Unused '@ts-expect-error' directive.
ERROR: 586:13  expect  TypeScript@local expected type to be:
  number
got:
  any
ERROR: 587:13  expect  TypeScript@local expected type to be:
  string
got:
  any
ERROR: 602:9   expect  TypeScript@local compile error: 
Unused '@ts-expect-error' directive.
ERROR: 604:9   expect  TypeScript@local compile error: 
Unused '@ts-expect-error' directive.

    at testTypesVersion (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:194:15)
    at async runTests (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:151:9)

Package: papaparse
Error:

Error: /home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/papaparse/papaparse-tests.ts:114:9
ERROR: 114:9  expect  TypeScript@local expected type to be:
  LocalFile
got:
  File
ERROR: 137:9  expect  TypeScript@local expected type to be:
  LocalFile
got:
  File
ERROR: 156:9  expect  TypeScript@local expected type to be:
  LocalFile
got:
  File

    at testTypesVersion (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:194:15)
    at async runTests (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:151:9)
Errors that changed between main and the branch:

Package: ramda
Main error:

Error: /home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/ramda/test/find-tests.ts:5:30
ERROR: 5:30   expect  TypeScript@local compile error: 
Argument of type '{ a: number; }[]' is not assignable to parameter of type 'readonly Record<2, any>[]'.
  Property '2' is missing in type '{ a: number; }' but required in type 'Record<2, any>'.
ERROR: 6:30   expect  TypeScript@local compile error: 
Argument of type '{ a: number; }[]' is not assignable to parameter of type 'readonly Record<4, any>[]'.
  Property '4' is missing in type '{ a: number; }' but required in type 'Record<4, any>'.

/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/ramda/test/findIndex-tests.ts:5:35
ERROR: 5:35   expect  TypeScript@local compile error: 
Argument of type '{ a: number; }[]' is not assignable to parameter of type 'readonly Record<2, any>[]'.
  Property '2' is missing in type '{ a: number; }' but required in type 'Record<2, any>'.
ERROR: 6:35   expect  TypeScript@local compile error: 
Argument of type '{ a: number; }[]' is not assignable to parameter of type 'readonly Record<4, any>[]'.
  Property '4' is missing in type '{ a: number; }' but required in type 'Record<4, any>'.

/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/ramda/test/findLast-tests.ts:8:34
ERROR: 8:34   expect  TypeScript@local compile error: 
Argument of type '{ a: number; b: number; }[]' is not assignable to parameter of type 'readonly Record<1, any>[]'.
  Property '1' is missing in type '{ a: number; b: number; }' but required in type 'Record<1, any>'.
ERROR: 9:34   expect  TypeScript@local compile error: 
Argument of type '{ a: number; b: number; }[]' is not assignable to parameter of type 'readonly Record<4, any>[]'.
  Property '4' is missing in type '{ a: number; b: number; }' but required in type 'Record<4, any>'.

/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/ramda/test/findLastIndex-tests.ts:8:39
ERROR: 8:39   expect  TypeScript@local compile error: 
Argument of type '{ a: number; b: number; }[]' is not assignable to parameter of type 'readonly Record<1, any>[]'.
  Property '1' is missing in type '{ a: number; b: number; }' but required in type 'Record<1, any>'.
ERROR: 9:39   expect  TypeScript@local compile error: 
Argument of type '{ a: number; b: number; }[]' is not assignable to parameter of type 'readonly Record<4, any>[]'.
  Property '4' is missing in type '{ a: number; b: number; }' but required in type 'Record<4, any>'.

/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/ramda/test/propEq-tests.ts:10:11
ERROR: 10:11  expect  TypeScript@local compile error: 
Type '(obj: Record<"bar", any>) => boolean' is not assignable to type '(obj: Record<"foo", "bar">) => boolean'.
  Types of parameters 'obj' and 'obj' are incompatible.
    Property 'bar' is missing in type 'Record<"foo", "bar">' but required in type 'Record<"bar", any>'.
ERROR: 12:11  expect  TypeScript@local compile error: 
Type '(obj: Record<5, any>) => boolean' is not assignable to type '(obj: Record<"baz", number>) => boolean'.
  Types of parameters 'obj' and 'obj' are incompatible.
    Property '5' is missing in type 'Record<"baz", number>' but required in type 'Record<5, any>'.
ERROR: 14:11  expect  TypeScript@local compile error: 
Type '(obj: Record<"qwerty", any>) => boolean' is not assignable to type '(obj: Record<number, string>) => boolean'.
  Types of parameters 'obj' and 'obj' are incompatible.
    Property 'qwerty' is missing in type 'Record<number, string>' but required in type 'Record<"qwerty", any>'.
ERROR: 29:22  expect  TypeScript@local compile error: 
Argument of type 'Obj' is not assignable to parameter of type 'Record<1, any>'.
  Property '1' is missing in type 'Obj' but required in type 'Record<1, any>'.
ERROR: 30:22  expect  TypeScript@local compile error: 
Argument of type 'Obj' is not assignable to parameter of type 'Record<4, any>'.
  Property '4' is missing in type 'Obj' but required in type 'Record<4, any>'.
ERROR: 43:28  expect  TypeScript@local compile error: 
Argument of type 'A' is not assignable to parameter of type 'Record<"", any>'.
  Property '""' is missing in type 'A' but required in type 'Record<"", any>'.

    at testTypesVersion (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:194:15)
    at async runTests (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:151:9)

Branch error:

Error: /home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/ramda/test/find-tests.ts:5:30
ERROR: 5:30   expect  TypeScript@local compile error: 
Argument of type '{ a: number; }[]' is not assignable to parameter of type 'readonly Record<2, any>[]'.
  Property '2' is missing in type '{ a: number; }' but required in type 'Record<2, any>'.
ERROR: 6:30   expect  TypeScript@local compile error: 
Argument of type '{ a: number; }[]' is not assignable to parameter of type 'readonly Record<4, any>[]'.
  Property '4' is missing in type '{ a: number; }' but required in type 'Record<4, any>'.

/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/ramda/test/findIndex-tests.ts:5:35
ERROR: 5:35   expect  TypeScript@local compile error: 
Argument of type '{ a: number; }[]' is not assignable to parameter of type 'readonly Record<2, any>[]'.
  Property '2' is missing in type '{ a: number; }' but required in type 'Record<2, any>'.
ERROR: 6:35   expect  TypeScript@local compile error: 
Argument of type '{ a: number; }[]' is not assignable to parameter of type 'readonly Record<4, any>[]'.
  Property '4' is missing in type '{ a: number; }' but required in type 'Record<4, any>'.

/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/ramda/test/findLast-tests.ts:8:34
ERROR: 8:34   expect  TypeScript@local compile error: 
Argument of type '{ a: number; b: number; }[]' is not assignable to parameter of type 'readonly Record<1, any>[]'.
  Property '1' is missing in type '{ a: number; b: number; }' but required in type 'Record<1, any>'.
ERROR: 9:34   expect  TypeScript@local compile error: 
Argument of type '{ a: number; b: number; }[]' is not assignable to parameter of type 'readonly Record<4, any>[]'.
  Property '4' is missing in type '{ a: number; b: number; }' but required in type 'Record<4, any>'.

/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/ramda/test/findLastIndex-tests.ts:8:39
ERROR: 8:39   expect  TypeScript@local compile error: 
Argument of type '{ a: number; b: number; }[]' is not assignable to parameter of type 'readonly Record<1, any>[]'.
  Property '1' is missing in type '{ a: number; b: number; }' but required in type 'Record<1, any>'.
ERROR: 9:39   expect  TypeScript@local compile error: 
Argument of type '{ a: number; b: number; }[]' is not assignable to parameter of type 'readonly Record<4, any>[]'.
  Property '4' is missing in type '{ a: number; b: number; }' but required in type 'Record<4, any>'.

/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/ramda/test/indexBy-tests.ts:16:16
ERROR: 16:16  expect  TypeScript@local compile error: 
This expression is not callable.
  Type '{ [x: string]: { id: string; }; }' has no call signatures.
ERROR: 16:42  expect  TypeScript@local compile error: 
No overload matches this call.
  Overload 1 of 4, '(fn: (a: T) => string | number): <T>(list: readonly T[]) => { [x: string]: T; [x: number]: T; }', gave the following error.
    Argument of type '<T>(value: T) => Prop<T, "id">' is not assignable to parameter of type '(a: T) => string | number'.
  Overload 2 of 4, '(fn: (a: T) => string | number | undefined): <T>(list: readonly T[]) => { [x: string]: T | undefined; [x: number]: T | undefined; }', gave the following error.
    Argument of type '<T>(value: T) => Prop<T, "id">' is not assignable to parameter of type '(a: T) => string | number | undefined'.
ERROR: 17:16  expect  TypeScript@local compile error: 
This expression is not callable.
  Type '{ [x: string]: unknown; }' has no call signatures.
ERROR: 17:26  expect  TypeScript@local compile error: 
No overload matches this call.
  Overload 1 of 4, '(fn: (a: T) => string | number): <T>(list: readonly T[]) => { [x: string]: T; [x: number]: T; }', gave the following error.
    Argument of type '<T>(value: T) => Prop<T, "id">' is not assignable to parameter of type '(a: T) => string | number'.
  Overload 2 of 4, '(fn: (a: T) => string | number | undefined): <T>(list: readonly T[]) => { [x: string]: T | undefined; [x: number]: T | undefined; }', gave the following error.
    Argument of type '<T>(value: T) => Prop<T, "id">' is not assignable to parameter of type '(a: T) => string | number | undefined'.
ERROR: 18:16  expect  TypeScript@local compile error: 
This expression is not callable.
  Type '{ [x: string]: { id: string; }; }' has no call signatures.
ERROR: 18:42  expect  TypeScript@local compile error: 
No overload matches this call.
  Overload 1 of 4, '(fn: (a: T) => string | number): <T>(list: readonly T[]) => { [x: string]: T; [x: number]: T; }', gave the following error.
    Argument of type '<T>(value: T) => Prop<T, "id">' is not assignable to parameter of type '(a: T) => string | number'.
  Overload 2 of 4, '(fn: (a: T) => string | number | undefined): <T>(list: readonly T[]) => { [x: string]: T | undefined; [x: number]: T | undefined; }', gave the following error.
    Argument of type '<T>(value: T) => Prop<T, "id">' is not assignable to parameter of type '(a: T) => string | number | undefined'.

/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/ramda/test/prop-tests.ts:108:5
ERROR: 108:5  expect  TypeScript@local expected type to be:
  number
got:
  string

/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/DefinitelyTyped/types/ramda/test/propEq-tests.ts:10:11
ERROR: 10:11  expect  TypeScript@local compile error: 
Type '(obj: Record<"bar", any>) => boolean' is not assignable to type '(obj: Record<"foo", "bar">) => boolean'.
  Types of parameters 'obj' and 'obj' are incompatible.
    Property 'bar' is missing in type 'Record<"foo", "bar">' but required in type 'Record<"bar", any>'.
ERROR: 12:11  expect  TypeScript@local compile error: 
Type '(obj: Record<5, any>) => boolean' is not assignable to type '(obj: Record<"baz", number>) => boolean'.
  Types of parameters 'obj' and 'obj' are incompatible.
    Property '5' is missing in type 'Record<"baz", number>' but required in type 'Record<5, any>'.
ERROR: 14:11  expect  TypeScript@local compile error: 
Type '(obj: Record<"qwerty", any>) => boolean' is not assignable to type '(obj: Record<number, string>) => boolean'.
  Types of parameters 'obj' and 'obj' are incompatible.
    Property 'qwerty' is missing in type 'Record<number, string>' but required in type 'Record<"qwerty", any>'.
ERROR: 29:22  expect  TypeScript@local compile error: 
Argument of type 'Obj' is not assignable to parameter of type 'Record<1, any>'.
  Property '1' is missing in type 'Obj' but required in type 'Record<1, any>'.
ERROR: 30:22  expect  TypeScript@local compile error: 
Argument of type 'Obj' is not assignable to parameter of type 'Record<4, any>'.
  Property '4' is missing in type 'Obj' but required in type 'Record<4, any>'.
ERROR: 43:28  expect  TypeScript@local compile error: 
Argument of type 'A' is not assignable to parameter of type 'Record<"", any>'.
  Property '""' is missing in type 'A' but required in type 'Record<"", any>'.

    at testTypesVersion (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:194:15)
    at async runTests (/home/vsts/work/1/s/DefinitelyTyped-tools/packages/dtslint-runner/node_modules/@definitelytyped/dtslint/dist/index.js:151:9)

You can check the log here.

@typescript-bot
Copy link
Collaborator

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

Something interesting changed - please have a look.

Details

microsoft/vscode

5 of 53 projects failed to build with the old tsc and were ignored

src/tsconfig.tsec.json

  • error TS2345: Argument of type '(result: ISearchEngineSuccess) => (ISearchEngineSuccess | IRawFileMatch[])[]' is not assignable to parameter of type '(value: ISearchEngineSuccess) => [ISearchEngineSuccess, IRawFileMatch[]] | PromiseLike<[ISearchEngineSuccess, IRawFileMatch[]]>'.

react-hook-form/react-hook-form

2 of 3 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS2322: Type '(data: { checkbox: [{ test: string; }, { test1: string; }]; }) => { errors: { checkbox?: { test1?: { type: string; message: string; } | undefined; test?: { type: string; message: string; } | undefined; }[] | undefined; }; values: {}; }' is not assignable to type 'Resolver<{ checkbox: [{ test: string; }, { test1: string; }]; }, any>'.

vercel/swr

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

test/type/tsconfig.json

@weswigham
Copy link
Member Author

#26349 is once again up to date with main, since that approach doesn't break the world and is much more familiar to users of Flow, F#, and Rust.

@Andarist
Copy link
Contributor

Andarist commented May 3, 2023

@weswigham since partial inference by default seems to be to be off the table - do you envision any way for library authors to opt-into that in the future in their signature declarations?

@weswigham weswigham added the Experiment A fork with an experimental idea which might not make it into master label Aug 13, 2024
@weswigham weswigham marked this pull request as draft August 13, 2024 22:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team Experiment A fork with an experimental idea which might not make it into master For Milestone Bug PRs that fix a bug with a specific milestone
Projects
Status: Waiting on reviewers
Development

Successfully merging this pull request may close these issues.

3 participants