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

Preserve generic substitutions through instantiation more often #53758

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

weswigham
Copy link
Member

@weswigham weswigham commented Apr 12, 2023

Fixes #53343

This fix ended up being relatively simple, but the issue is anything but. A conditional like string extends T produces substitutions on string within the true branch of the conditional, so we know all string instances can be used as Ts (something sometimes needed to satisfy constraint checks). When we go to instantiate a substitute like this, we would see that string (the base of the substitute) isn't a generic, and go "oh, well, this can just be an intersection then, we don't really need any substitution behaviors anymore", and would instantiate it down to a plain string & T. Unfortunately, this discards the information that that T came in from a substitution constraint, which, in turn, allows inferring to that T. That isn't necessarily bad - it is here, because the inference result doesn't satisfy the condition that produced the substitution, but inferences like this could be producing useful results (especially for conditionals which are usually true). In any case, by preserving the substitution type in instantiation when the constraint is still a type variable, we preserve the substitution-ness of the position into inference, and then skip performing the inferences to the substitution constraint (because we always walk substitution types on the target side back to their base type).

I would say that if it turns out these substitution constraint position inferences (which this PR is effectively removing) are actually used usefully in the wild, we could totally keep them (by explicitly inferring to the substitution constraint), but we need to make them at a much lower priority than we do now (so they don't override other, non-conditional inferences), or, better yet, conditionalize them on the result of their associated conditional passing with the given inference candidate. (which we could do by tracking conditions as we descend through inference and instantiating and testing them all as we produce inference results.)

@typescript-bot typescript-bot added Author: Team For Milestone Bug PRs that fix a bug with a specific milestone labels Apr 12, 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 12, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 12, 2023

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 12, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 12, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 12, 2023

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Apr 12, 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/152258/artifacts?artifactName=tgz&fileId=3725D32837486DD427D9061F71DBA26D604740F5BFAA20D3D1487B9404049CE702&fileName=/typescript-5.1.0-insiders.20230412.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.1.0-pr-53758-6".;

@typescript-bot
Copy link
Collaborator

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

Here they are:

Compiler

Comparison Report - main..53758
Metric main 53758 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 365,323k (± 0.01%) 365,317k (± 0.01%) ~ 365,289k 365,351k p=0.936 n=6
Parse Time 3.40s (± 0.64%) 3.38s (± 0.44%) ~ 3.36s 3.39s p=0.085 n=6
Bind Time 1.12s (± 0.00%) 1.12s (± 0.46%) ~ 1.11s 1.12s p=0.174 n=6
Check Time 8.77s (± 0.25%) 8.74s (± 0.35%) ~ 8.69s 8.78s p=0.053 n=6
Emit Time 7.49s (± 0.80%) 7.44s (± 0.56%) ~ 7.40s 7.52s p=0.170 n=6
Total Time 20.79s (± 0.23%) 20.67s (± 0.28%) -0.12s (- 0.58%) 20.62s 20.77s p=0.013 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 191,763k (± 1.18%) 191,777k (± 1.20%) ~ 190,814k 196,479k p=0.936 n=6
Parse Time 1.50s (± 0.42%) 1.49s (± 2.08%) ~ 1.43s 1.51s p=1.000 n=6
Bind Time 0.77s (± 0.00%) 0.77s (± 0.67%) ~ 0.76s 0.77s p=0.174 n=6
Check Time 9.58s (± 0.71%) 9.58s (± 0.47%) ~ 9.54s 9.64s p=1.000 n=6
Emit Time 2.72s (± 1.24%) 2.72s (± 0.51%) ~ 2.70s 2.73s p=1.000 n=6
Total Time 14.57s (± 0.54%) 14.55s (± 0.33%) ~ 14.49s 14.63s p=0.747 n=6
Monaco - node (v18.10.0, x64)
Memory used 346,508k (± 0.01%) 346,496k (± 0.01%) ~ 346,463k 346,560k p=0.936 n=6
Parse Time 2.60s (± 0.97%) 2.59s (± 1.30%) ~ 2.54s 2.64s p=0.936 n=6
Bind Time 1.00s (± 0.81%) 1.01s (± 0.88%) ~ 1.00s 1.02s p=0.176 n=6
Check Time 7.13s (± 0.64%) 7.10s (± 0.45%) ~ 7.06s 7.14s p=0.258 n=6
Emit Time 4.28s (± 1.71%) 4.23s (± 0.31%) ~ 4.21s 4.24s p=0.223 n=6
Total Time 15.01s (± 0.65%) 14.92s (± 0.25%) ~ 14.87s 14.97s p=0.146 n=6
TFS - node (v18.10.0, x64)
Memory used 300,724k (± 0.01%) 300,735k (± 0.01%) ~ 300,711k 300,761k p=0.471 n=6
Parse Time 2.07s (± 1.01%) 2.06s (± 1.26%) ~ 2.02s 2.09s p=0.808 n=6
Bind Time 1.14s (± 0.45%) 1.14s (± 0.36%) ~ 1.13s 1.14s p=0.114 n=6
Check Time 6.58s (± 0.60%) 6.55s (± 0.33%) ~ 6.52s 6.57s p=0.107 n=6
Emit Time 3.85s (± 1.03%) 3.84s (± 0.82%) ~ 3.79s 3.88s p=0.466 n=6
Total Time 13.65s (± 0.50%) 13.59s (± 0.39%) ~ 13.54s 13.67s p=0.227 n=6
material-ui - node (v18.10.0, x64)
Memory used 480,178k (± 0.01%) 480,204k (± 0.00%) ~ 480,175k 480,227k p=0.471 n=6
Parse Time 3.04s (± 0.45%) 3.03s (± 0.82%) ~ 3.00s 3.07s p=0.871 n=6
Bind Time 0.92s (± 2.10%) 0.91s (± 0.89%) ~ 0.90s 0.92s p=0.666 n=6
Check Time 16.92s (± 0.33%) 16.88s (± 0.46%) ~ 16.81s 17.02s p=0.256 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.88s (± 0.29%) 20.82s (± 0.37%) ~ 20.73s 20.94s p=0.295 n=6
xstate - node (v18.10.0, x64)
Memory used 562,182k (± 0.02%) 562,059k (± 0.04%) ~ 561,851k 562,295k p=0.471 n=6
Parse Time 3.82s (± 0.42%) 3.82s (± 0.86%) ~ 3.79s 3.88s p=0.742 n=6
Bind Time 1.65s (± 0.31%) 1.64s (± 0.67%) ~ 1.63s 1.66s p=0.149 n=6
Check Time 2.86s (± 0.62%) 2.81s (± 0.89%) -0.05s (- 1.86%) 2.77s 2.83s p=0.006 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 0.00%) ~ 0.08s 0.08s p=1.000 n=6
Total Time 8.41s (± 0.30%) 8.36s (± 0.44%) ~ 8.33s 8.43s p=0.062 n=6
Angular - node (v16.17.1, x64)
Memory used 364,717k (± 0.01%) 364,709k (± 0.01%) ~ 364,691k 364,738k p=0.810 n=6
Parse Time 3.55s (± 1.00%) 3.57s (± 0.77%) ~ 3.52s 3.59s p=0.519 n=6
Bind Time 1.18s (± 1.13%) 1.18s (± 1.16%) ~ 1.17s 1.21s p=0.620 n=6
Check Time 9.53s (± 0.67%) 9.54s (± 0.25%) ~ 9.51s 9.57s p=0.470 n=6
Emit Time 7.99s (± 0.64%) 7.94s (± 0.55%) ~ 7.88s 7.99s p=0.288 n=6
Total Time 22.25s (± 0.51%) 22.24s (± 0.30%) ~ 22.15s 22.34s p=0.936 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 192,527k (± 0.03%) 192,584k (± 0.04%) ~ 192,532k 192,719k p=0.064 n=6
Parse Time 1.59s (± 0.95%) 1.59s (± 1.22%) ~ 1.55s 1.60s p=0.933 n=6
Bind Time 0.83s (± 0.99%) 0.82s (± 0.00%) ~ 0.82s 0.82s p=0.073 n=6
Check Time 10.36s (± 0.72%) 10.28s (± 0.54%) ~ 10.21s 10.36s p=0.077 n=6
Emit Time 3.02s (± 1.18%) 2.99s (± 0.75%) ~ 2.95s 3.01s p=0.294 n=6
Total Time 15.80s (± 0.69%) 15.68s (± 0.47%) ~ 15.58s 15.77s p=0.092 n=6
Monaco - node (v16.17.1, x64)
Memory used 345,788k (± 0.00%) 345,774k (± 0.00%) -14k (- 0.00%) 345,765k 345,784k p=0.030 n=6
Parse Time 2.72s (± 0.60%) 2.71s (± 0.47%) ~ 2.70s 2.73s p=0.163 n=6
Bind Time 1.08s (± 0.48%) 1.09s (± 1.07%) ~ 1.08s 1.11s p=0.191 n=6
Check Time 7.82s (± 0.54%) 7.80s (± 0.19%) ~ 7.78s 7.82s p=0.139 n=6
Emit Time 4.50s (± 0.76%) 4.45s (± 0.37%) -0.05s (- 1.07%) 4.43s 4.47s p=0.015 n=6
Total Time 16.13s (± 0.44%) 16.05s (± 0.20%) -0.08s (- 0.49%) 16.00s 16.09s p=0.045 n=6
TFS - node (v16.17.1, x64)
Memory used 300,053k (± 0.01%) 300,072k (± 0.01%) ~ 300,023k 300,105k p=0.230 n=6
Parse Time 2.16s (± 0.35%) 2.17s (± 0.56%) ~ 2.15s 2.18s p=0.240 n=6
Bind Time 1.24s (± 0.88%) 1.25s (± 0.84%) ~ 1.23s 1.26s p=0.554 n=6
Check Time 7.22s (± 0.62%) 7.23s (± 0.34%) ~ 7.20s 7.27s p=1.000 n=6
Emit Time 4.33s (± 0.66%) 4.33s (± 0.86%) ~ 4.29s 4.39s p=1.000 n=6
Total Time 14.96s (± 0.37%) 14.97s (± 0.39%) ~ 14.91s 15.05s p=0.378 n=6
material-ui - node (v16.17.1, x64)
Memory used 479,490k (± 0.01%) 479,471k (± 0.01%) ~ 479,421k 479,524k p=0.378 n=6
Parse Time 3.24s (± 0.23%) 3.25s (± 0.19%) +0.01s (+ 0.36%) 3.24s 3.26s p=0.027 n=6
Bind Time 0.96s (± 0.57%) 0.95s (± 0.67%) ~ 0.94s 0.96s p=0.201 n=6
Check Time 18.03s (± 0.86%) 17.92s (± 0.32%) ~ 17.86s 18.01s p=0.229 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.22s (± 0.73%) 22.12s (± 0.25%) ~ 22.06s 22.21s p=0.228 n=6
xstate - node (v16.17.1, x64)
Memory used 559,769k (± 0.02%) 559,631k (± 0.01%) -138k (- 0.02%) 559,556k 559,710k p=0.020 n=6
Parse Time 3.98s (± 0.30%) 4.00s (± 0.37%) ~ 3.98s 4.02s p=0.125 n=6
Bind Time 1.75s (± 0.56%) 1.75s (± 0.56%) ~ 1.74s 1.76s p=0.611 n=6
Check Time 3.06s (± 0.40%) 3.03s (± 0.29%) -0.03s (- 0.82%) 3.02s 3.04s p=0.003 n=6
Emit Time 0.09s (± 5.53%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=0.174 n=6
Total Time 8.88s (± 0.09%) 8.87s (± 0.29%) ~ 8.84s 8.91s p=0.114 n=6
Angular - node (v14.15.1, x64)
Memory used 358,504k (± 0.00%) 358,513k (± 0.01%) ~ 358,490k 358,542k p=0.748 n=6
Parse Time 3.64s (± 0.36%) 3.65s (± 1.13%) ~ 3.60s 3.71s p=0.732 n=6
Bind Time 1.21s (± 0.43%) 1.21s (± 0.43%) ~ 1.21s 1.22s p=1.000 n=6
Check Time 9.94s (± 0.66%) 9.88s (± 0.49%) ~ 9.81s 9.93s p=0.076 n=6
Emit Time 8.36s (± 1.47%) 8.24s (± 0.48%) ~ 8.19s 8.31s p=0.053 n=6
Total Time 23.16s (± 0.75%) 22.98s (± 0.38%) -0.17s (- 0.75%) 22.82s 23.06s p=0.045 n=6
Compiler-Unions - node (v14.15.1, x64)
Memory used 187,818k (± 0.01%) 187,822k (± 0.02%) ~ 187,778k 187,862k p=0.630 n=6
Parse Time 1.60s (± 0.47%) 1.59s (± 0.77%) ~ 1.59s 1.62s p=0.120 n=6
Bind Time 0.86s (± 1.55%) 0.85s (± 0.89%) ~ 0.84s 0.86s p=0.180 n=6
Check Time 10.43s (± 0.20%) 10.36s (± 0.47%) -0.06s (- 0.61%) 10.30s 10.42s p=0.030 n=6
Emit Time 3.17s (± 1.31%) 3.15s (± 1.20%) ~ 3.11s 3.22s p=0.414 n=6
Total Time 16.06s (± 0.36%) 15.96s (± 0.37%) -0.10s (- 0.64%) 15.88s 16.03s p=0.020 n=6
Monaco - node (v14.15.1, x64)
Memory used 340,670k (± 0.00%) 340,660k (± 0.00%) ~ 340,645k 340,685k p=0.378 n=6
Parse Time 2.83s (± 0.62%) 2.82s (± 0.52%) ~ 2.80s 2.84s p=0.510 n=6
Bind Time 1.11s (± 0.95%) 1.10s (± 0.76%) ~ 1.10s 1.12s p=1.000 n=6
Check Time 8.14s (± 0.32%) 8.12s (± 0.41%) ~ 8.08s 8.18s p=0.195 n=6
Emit Time 4.71s (± 0.95%) 4.69s (± 1.13%) ~ 4.62s 4.77s p=0.574 n=6
Total Time 16.79s (± 0.36%) 16.73s (± 0.48%) ~ 16.65s 16.86s p=0.227 n=6
TFS - node (v14.15.1, x64)
Memory used 295,145k (± 0.01%) 295,147k (± 0.01%) ~ 295,124k 295,170k p=0.810 n=6
Parse Time 2.41s (± 0.90%) 2.39s (± 0.59%) ~ 2.37s 2.41s p=0.195 n=6
Bind Time 1.07s (± 0.48%) 1.06s (± 0.49%) ~ 1.06s 1.07s p=0.311 n=6
Check Time 7.57s (± 0.39%) 7.54s (± 0.45%) ~ 7.50s 7.60s p=0.226 n=6
Emit Time 4.30s (± 1.22%) 4.26s (± 0.29%) ~ 4.25s 4.28s p=0.366 n=6
Total Time 15.34s (± 0.35%) 15.26s (± 0.18%) -0.08s (- 0.51%) 15.23s 15.31s p=0.013 n=6
material-ui - node (v14.15.1, x64)
Memory used 474,886k (± 0.01%) 474,893k (± 0.00%) ~ 474,868k 474,917k p=0.936 n=6
Parse Time 3.37s (± 0.66%) 3.35s (± 0.12%) ~ 3.34s 3.35s p=0.101 n=6
Bind Time 1.00s (± 0.75%) 0.99s (± 0.52%) ~ 0.99s 1.00s p=0.247 n=6
Check Time 18.97s (± 0.91%) 18.79s (± 0.21%) -0.18s (- 0.96%) 18.74s 18.83s p=0.024 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.35s (± 0.80%) 23.14s (± 0.16%) -0.21s (- 0.90%) 23.09s 23.17s p=0.024 n=6
xstate - node (v14.15.1, x64)
Memory used 548,273k (± 0.00%) 548,254k (± 0.00%) ~ 548,225k 548,275k p=0.173 n=6
Parse Time 4.33s (± 1.79%) 4.27s (± 1.22%) ~ 4.23s 4.37s p=0.198 n=6
Bind Time 1.60s (± 4.57%) 1.63s (± 3.60%) ~ 1.52s 1.66s p=0.934 n=6
Check Time 3.19s (± 0.90%) 3.17s (± 1.19%) ~ 3.13s 3.22s p=0.260 n=6
Emit Time 0.09s (± 5.53%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=0.174 n=6
Total Time 9.22s (± 0.28%) 9.16s (± 0.39%) -0.06s (- 0.67%) 9.12s 9.22s p=0.024 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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.15.1, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53758 6
Baseline main 6

TSServer

Comparison Report - main..53758
Metric main 53758 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,402ms (± 0.67%) 2,400ms (± 0.34%) ~ 2,389ms 2,413ms p=1.000 n=6
Req 2 - geterr 5,704ms (± 0.83%) 5,671ms (± 0.45%) ~ 5,638ms 5,712ms p=0.066 n=6
Req 3 - references 337ms (± 1.21%) 334ms (± 0.74%) ~ 330ms 337ms p=0.375 n=6
Req 4 - navto 281ms (± 0.99%) 279ms (± 0.90%) ~ 277ms 284ms p=0.332 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 83ms (± 3.04%) 86ms (± 2.98%) ~ 83ms 89ms p=0.117 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,499ms (± 1.90%) 2,516ms (± 1.10%) ~ 2,462ms 2,538ms p=0.575 n=6
Req 2 - geterr 4,262ms (± 0.54%) 4,229ms (± 0.37%) -33ms (- 0.77%) 4,215ms 4,258ms p=0.020 n=6
Req 3 - references 343ms (± 0.75%) 343ms (± 0.77%) ~ 341ms 348ms p=1.000 n=6
Req 4 - navto 292ms (± 0.71%) 290ms (± 1.03%) ~ 286ms 294ms p=0.462 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 64ms (± 4.73%) 65ms (± 5.77%) ~ 62ms 70ms p=0.673 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,023ms (± 0.50%) 3,010ms (± 0.45%) ~ 2,988ms 3,027ms p=0.093 n=6
Req 2 - geterr 1,618ms (± 0.87%) 1,613ms (± 0.60%) ~ 1,601ms 1,626ms p=0.378 n=6
Req 3 - references 106ms (± 1.44%) 107ms (± 1.74%) ~ 105ms 110ms p=0.289 n=6
Req 4 - navto 363ms (± 0.88%) 362ms (± 0.69%) ~ 358ms 365ms p=0.520 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 369ms (± 1.63%) 373ms (± 1.28%) ~ 366ms 379ms p=0.373 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,519ms (± 0.64%) 2,510ms (± 0.80%) ~ 2,492ms 2,537ms p=0.298 n=6
Req 2 - geterr 6,101ms (± 1.15%) 6,092ms (± 0.54%) ~ 6,042ms 6,122ms p=0.689 n=6
Req 3 - references 346ms (± 0.70%) 344ms (± 0.50%) ~ 342ms 347ms p=0.327 n=6
Req 4 - navto 280ms (± 1.07%) 278ms (± 0.32%) ~ 277ms 279ms p=0.084 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 86ms (± 5.57%) 81ms (± 1.27%) 🟩-4ms (- 4.87%) 80ms 83ms p=0.050 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,658ms (± 1.05%) 2,671ms (± 1.37%) ~ 2,616ms 2,720ms p=0.471 n=6
Req 2 - geterr 4,634ms (± 0.43%) 4,638ms (± 0.50%) ~ 4,608ms 4,671ms p=0.575 n=6
Req 3 - references 358ms (± 0.35%) 357ms (± 0.33%) ~ 355ms 358ms p=0.247 n=6
Req 4 - navto 285ms (± 0.98%) 287ms (± 0.88%) ~ 283ms 291ms p=0.141 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 68ms (± 0.81%) 68ms (± 1.55%) ~ 66ms 69ms p=1.000 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,178ms (± 0.45%) 3,177ms (± 0.39%) ~ 3,160ms 3,189ms p=1.000 n=6
Req 2 - geterr 1,761ms (± 0.90%) 1,746ms (± 0.81%) ~ 1,733ms 1,767ms p=0.226 n=6
Req 3 - references 115ms (± 2.49%) 117ms (± 2.65%) ~ 113ms 120ms p=0.259 n=6
Req 4 - navto 348ms (± 1.22%) 350ms (± 0.35%) ~ 348ms 351ms p=0.515 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 387ms (± 1.08%) 393ms (± 1.97%) ~ 384ms 403ms p=0.199 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,608ms (± 0.41%) 2,600ms (± 0.29%) ~ 2,592ms 2,610ms p=0.173 n=6
Req 2 - geterr 6,441ms (± 1.12%) 6,407ms (± 1.43%) ~ 6,279ms 6,540ms p=0.423 n=6
Req 3 - references 360ms (± 0.98%) 360ms (± 1.17%) ~ 355ms 365ms p=1.000 n=6
Req 4 - navto 285ms (± 0.72%) 283ms (± 0.80%) ~ 280ms 285ms p=0.118 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 91ms (± 5.30%) 96ms (± 7.12%) ~ 89ms 103ms p=0.227 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,832ms (± 0.18%) 2,812ms (± 0.20%) -20ms (- 0.69%) 2,805ms 2,821ms p=0.005 n=6
Req 2 - geterr 4,730ms (± 0.45%) 4,717ms (± 0.75%) ~ 4,674ms 4,772ms p=0.575 n=6
Req 3 - references 375ms (± 0.82%) 375ms (± 0.85%) ~ 372ms 381ms p=1.000 n=6
Req 4 - navto 291ms (± 0.35%) 293ms (± 0.45%) ~ 291ms 295ms p=0.067 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 (± 5.95%) 80ms (± 4.33%) ~ 73ms 82ms p=0.403 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,396ms (± 0.61%) 3,388ms (± 0.23%) ~ 3,377ms 3,400ms p=0.688 n=6
Req 2 - geterr 1,866ms (± 0.99%) 1,871ms (± 0.89%) ~ 1,843ms 1,889ms p=0.748 n=6
Req 3 - references 125ms (± 0.93%) 125ms (± 1.89%) ~ 122ms 129ms p=0.742 n=6
Req 4 - navto 378ms (± 1.15%) 378ms (± 0.45%) ~ 375ms 380ms p=0.331 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 411ms (± 1.45%) 413ms (± 1.19%) ~ 406ms 419ms p=0.470 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53758 6
Baseline main 6

Startup

Comparison Report - main..53758
Metric main 53758 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 141.67ms (± 0.17%) 141.99ms (± 0.22%) +0.32ms (+ 0.23%) 141.35ms 147.53ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 220.31ms (± 0.22%) 220.68ms (± 0.18%) +0.37ms (+ 0.17%) 219.80ms 226.24ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 222.39ms (± 0.33%) 221.91ms (± 0.16%) -0.48ms (- 0.22%) 221.14ms 227.41ms p=0.001 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 204.10ms (± 0.31%) 203.69ms (± 0.15%) -0.41ms (- 0.20%) 202.94ms 207.48ms p=0.000 n=600
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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 53758 6
Baseline main 6

Developer Information:

Download Benchmark

@typescript-bot
Copy link
Collaborator

Hey @weswigham, the results of running the DT tests are ready.
Everything looks the same!
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/53758/merge:

Everything looks good!

@sandersn sandersn added this to Not started in PR Backlog Apr 25, 2023
@sandersn sandersn moved this from Not started to Waiting on reviewers in PR Backlog Apr 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Milestone Bug PRs that fix a bug with a specific milestone
Projects
Status: Waiting on reviewers
PR Backlog
  
Waiting on reviewers
Development

Successfully merging this pull request may close these issues.

Record keys are inferred to be values when using extends string conditional in a generic type
2 participants