Skip to content

Expand the tuple contextual type to the target's shape when it comes from a binding pattern #52630

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

Closed
wants to merge 2 commits into from

Conversation

Andarist
Copy link
Contributor

@Andarist Andarist commented Feb 6, 2023

@typescript-bot typescript-bot added the For Backlog Bug PRs that fix a backlog bug label Feb 6, 2023
// this allows us to infer tuples even if the binding pattern is shorter than the target type, like here:
// declare function fn<T>(t: T) => [T, string[]];
// const [[x]] = fn(['hi']);
else if (isTupleType(contextualType) && isTupleType(inferenceTargetType)) {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this doesn't handle the case when inferenceTargetType is a union of tuple types but I have no idea how "expansion" towards that shape should work - unless all union members would have the very same shape

@andrewbranch
Copy link
Member

This seems pretty reasonable to me.

@typescript-bot user test this
@typescript-bot test top100
@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 7, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 7, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 7, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

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

Everything looks good!

@typescript-bot
Copy link
Collaborator

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

Everything looks good!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Compiler

Comparison Report - main..52630
Metric main 52630 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 359,797k (± 0.02%) 359,812k (± 0.02%) ~ 359,714k 359,894k p=0.689 n=6
Parse Time 3.93s (± 0.90%) 3.92s (± 1.13%) ~ 3.86s 3.98s p=0.747 n=6
Bind Time 1.17s (± 0.64%) 1.18s (± 0.64%) ~ 1.17s 1.19s p=0.195 n=6
Check Time 8.71s (± 0.72%) 8.67s (± 0.51%) ~ 8.62s 8.73s p=0.336 n=6
Emit Time 7.61s (± 0.87%) 7.59s (± 0.34%) ~ 7.55s 7.63s p=0.686 n=6
Total Time 21.42s (± 0.68%) 21.36s (± 0.39%) ~ 21.30s 21.51s p=0.332 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 193,220k (± 1.19%) 195,936k (± 1.51%) ~ 192,105k 198,095k p=0.575 n=6
Parse Time 1.63s (± 1.32%) 1.63s (± 2.53%) ~ 1.59s 1.70s p=0.746 n=6
Bind Time 0.80s (± 0.65%) 0.79s (± 0.52%) ~ 0.79s 0.80s p=0.112 n=6
Check Time 9.75s (± 0.52%) 9.72s (± 0.47%) ~ 9.68s 9.78s p=0.145 n=6
Emit Time 2.80s (± 1.01%) 2.84s (± 4.58%) ~ 2.74s 3.10s p=1.000 n=6
Total Time 14.98s (± 0.46%) 14.98s (± 0.99%) ~ 14.86s 15.26s p=0.628 n=6
Monaco - node (v18.10.0, x64)
Memory used 343,965k (± 0.01%) 343,963k (± 0.01%) ~ 343,915k 344,017k p=0.748 n=6
Parse Time 2.94s (± 0.84%) 2.92s (± 0.83%) ~ 2.89s 2.95s p=0.090 n=6
Bind Time 1.04s (± 1.32%) 1.04s (± 1.00%) ~ 1.02s 1.05s p=0.867 n=6
Check Time 7.07s (± 0.47%) 7.03s (± 0.77%) ~ 6.97s 7.13s p=0.065 n=6
Emit Time 4.33s (± 1.22%) 4.33s (± 1.17%) ~ 4.28s 4.42s p=0.747 n=6
Total Time 15.37s (± 0.45%) 15.30s (± 0.79%) ~ 15.19s 15.53s p=0.173 n=6
TFS - node (v18.10.0, x64)
Memory used 300,377k (± 0.01%) 300,363k (± 0.00%) ~ 300,348k 300,377k p=0.378 n=6
Parse Time 2.27s (± 1.71%) 2.26s (± 0.78%) ~ 2.24s 2.28s p=0.934 n=6
Bind Time 1.17s (± 0.44%) 1.17s (± 0.54%) ~ 1.16s 1.18s p=0.386 n=6
Check Time 6.54s (± 0.65%) 6.52s (± 0.40%) ~ 6.48s 6.56s p=0.169 n=6
Emit Time 3.93s (± 1.01%) 3.90s (± 0.35%) ~ 3.88s 3.92s p=0.124 n=6
Total Time 13.92s (± 0.51%) 13.85s (± 0.33%) ~ 13.81s 13.94s p=0.063 n=6
material-ui - node (v18.10.0, x64)
Memory used 476,782k (± 0.01%) 476,781k (± 0.01%) ~ 476,722k 476,818k p=0.936 n=6
Parse Time 3.53s (± 0.46%) 3.50s (± 2.06%) ~ 3.36s 3.56s p=1.000 n=6
Bind Time 0.97s (± 0.53%) 0.99s (± 4.69%) ~ 0.96s 1.08s p=0.542 n=6
Check Time 17.12s (± 0.55%) 17.15s (± 0.72%) ~ 17.03s 17.38s p=0.873 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.61s (± 0.38%) 21.64s (± 0.62%) ~ 21.52s 21.89s p=1.000 n=6
xstate - node (v18.10.0, x64)
Memory used 549,092k (± 0.03%) 548,948k (± 0.01%) ~ 548,825k 549,008k p=0.128 n=6
Parse Time 4.58s (± 0.67%) 4.56s (± 0.55%) ~ 4.54s 4.60s p=0.225 n=6
Bind Time 1.71s (± 1.26%) 1.71s (± 1.63%) ~ 1.68s 1.76s p=0.870 n=6
Check Time 2.81s (± 0.54%) 2.83s (± 0.66%) ~ 2.81s 2.86s p=0.126 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 0.00%) ~ 0.08s 0.08s p=1.000 n=6
Total Time 9.20s (± 0.25%) 9.19s (± 0.51%) ~ 9.13s 9.26s p=0.688 n=6
Angular - node (v16.17.1, x64)
Memory used 359,144k (± 0.01%) 359,159k (± 0.00%) ~ 359,148k 359,178k p=0.199 n=6
Parse Time 4.17s (± 0.45%) 4.16s (± 0.39%) ~ 4.15s 4.19s p=0.800 n=6
Bind Time 1.24s (± 0.41%) 1.24s (± 0.85%) ~ 1.22s 1.25s p=0.142 n=6
Check Time 9.49s (± 0.19%) 9.46s (± 0.20%) ~ 9.45s 9.50s p=0.061 n=6
Emit Time 8.06s (± 0.35%) 8.05s (± 0.53%) ~ 8.01s 8.13s p=0.252 n=6
Total Time 22.96s (± 0.23%) 22.91s (± 0.20%) ~ 22.85s 22.98s p=0.107 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 193,814k (± 0.04%) 193,853k (± 0.05%) ~ 193,719k 193,998k p=0.230 n=6
Parse Time 1.80s (± 0.93%) 1.81s (± 0.30%) ~ 1.80s 1.81s p=0.228 n=6
Bind Time 0.84s (± 0.00%) 0.84s (± 0.48%) ~ 0.84s 0.85s p=0.405 n=6
Check Time 10.42s (± 0.35%) 10.41s (± 0.35%) ~ 10.35s 10.46s p=0.572 n=6
Emit Time 3.10s (± 4.70%) 3.19s (± 5.59%) ~ 3.04s 3.42s p=0.147 n=6
Total Time 16.17s (± 1.07%) 16.25s (± 0.93%) ~ 16.14s 16.48s p=0.261 n=6
Monaco - node (v16.17.1, x64)
Memory used 343,232k (± 0.01%) 343,226k (± 0.01%) ~ 343,192k 343,259k p=1.000 n=6
Parse Time 3.14s (± 1.50%) 3.15s (± 1.28%) ~ 3.09s 3.21s p=0.520 n=6
Bind Time 1.11s (± 1.51%) 1.12s (± 0.67%) ~ 1.11s 1.13s p=0.351 n=6
Check Time 7.73s (± 0.25%) 7.72s (± 0.25%) ~ 7.69s 7.74s p=0.570 n=6
Emit Time 4.54s (± 0.46%) 4.53s (± 0.33%) ~ 4.51s 4.55s p=1.000 n=6
Total Time 16.51s (± 0.50%) 16.52s (± 0.24%) ~ 16.46s 16.56s p=0.688 n=6
TFS - node (v16.17.1, x64)
Memory used 299,706k (± 0.01%) 299,704k (± 0.01%) ~ 299,662k 299,729k p=0.936 n=6
Parse Time 2.46s (± 0.99%) 2.46s (± 1.14%) ~ 2.43s 2.49s p=0.462 n=6
Bind Time 1.26s (± 0.82%) 1.25s (± 0.60%) ~ 1.24s 1.26s p=0.155 n=6
Check Time 7.21s (± 0.39%) 7.19s (± 0.34%) ~ 7.16s 7.22s p=0.147 n=6
Emit Time 4.22s (± 0.21%) 4.24s (± 0.36%) ~ 4.21s 4.25s p=0.084 n=6
Total Time 15.15s (± 0.23%) 15.13s (± 0.20%) ~ 15.10s 15.18s p=0.373 n=6
material-ui - node (v16.17.1, x64)
Memory used 476,012k (± 0.01%) 476,039k (± 0.01%) ~ 476,015k 476,086k p=0.298 n=6
Parse Time 3.68s (± 0.14%) 3.67s (± 0.28%) ~ 3.65s 3.68s p=0.070 n=6
Bind Time 1.02s (± 0.40%) 1.02s (± 0.40%) ~ 1.01s 1.02s p=1.000 n=6
Check Time 18.21s (± 0.67%) 18.17s (± 0.24%) ~ 18.09s 18.22s p=0.872 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.91s (± 0.54%) 22.86s (± 0.20%) ~ 22.78s 22.90s p=0.688 n=6
xstate - node (v16.17.1, x64)
Memory used 546,665k (± 0.01%) 546,665k (± 0.02%) ~ 546,582k 546,820k p=0.810 n=6
Parse Time 4.77s (± 0.22%) 4.77s (± 0.31%) ~ 4.75s 4.79s p=0.510 n=6
Bind Time 1.84s (± 0.28%) 1.85s (± 0.22%) ~ 1.84s 1.85s p=0.112 n=6
Check Time 3.06s (± 0.65%) 3.06s (± 0.68%) ~ 3.04s 3.09s p=1.000 n=6
Emit Time 0.09s (± 4.45%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=0.405 n=6
Total Time 9.76s (± 0.29%) 9.77s (± 0.22%) ~ 9.75s 9.81s p=1.000 n=6
Angular - node (v14.15.1, x64)
Memory used 352,818k (± 0.01%) 352,816k (± 0.01%) ~ 352,774k 352,845k p=0.936 n=6
Parse Time 4.23s (± 0.35%) 4.22s (± 0.35%) ~ 4.20s 4.24s p=0.408 n=6
Bind Time 1.28s (± 0.80%) 1.28s (± 0.59%) ~ 1.27s 1.29s p=0.931 n=6
Check Time 9.74s (± 0.71%) 9.74s (± 0.67%) ~ 9.65s 9.85s p=1.000 n=6
Emit Time 8.37s (± 0.54%) 8.39s (± 0.56%) ~ 8.34s 8.45s p=0.809 n=6
Total Time 23.61s (± 0.42%) 23.63s (± 0.45%) ~ 23.50s 23.78s p=1.000 n=6
Compiler-Unions - node (v14.15.1, x64)
Memory used 188,784k (± 0.05%) 189,348k (± 0.69%) ~ 188,674k 191,991k p=0.810 n=6
Parse Time 1.83s (± 0.41%) 1.82s (± 0.69%) ~ 1.81s 1.84s p=0.115 n=6
Bind Time 0.87s (± 0.97%) 0.86s (± 0.47%) ~ 0.86s 0.87s p=0.527 n=6
Check Time 10.50s (± 0.59%) 10.54s (± 0.63%) ~ 10.43s 10.61s p=0.228 n=6
Emit Time 3.39s (± 3.89%) 3.35s (± 4.45%) ~ 3.15s 3.47s p=0.630 n=6
Total Time 16.59s (± 1.03%) 16.57s (± 0.98%) ~ 16.34s 16.74s p=0.748 n=6
Monaco - node (v14.15.1, x64)
Memory used 337,993k (± 0.00%) 337,997k (± 0.01%) ~ 337,970k 338,020k p=0.689 n=6
Parse Time 3.20s (± 0.67%) 3.19s (± 0.92%) ~ 3.14s 3.22s p=0.627 n=6
Bind Time 1.11s (± 0.46%) 1.11s (± 0.80%) ~ 1.10s 1.12s p=0.541 n=6
Check Time 8.11s (± 0.56%) 8.06s (± 0.41%) ~ 8.01s 8.11s p=0.126 n=6
Emit Time 4.80s (± 0.83%) 4.78s (± 0.89%) ~ 4.73s 4.85s p=0.327 n=6
Total Time 17.23s (± 0.34%) 17.14s (± 0.55%) ~ 17.01s 17.26s p=0.170 n=6
TFS - node (v14.15.1, x64)
Memory used 294,575k (± 0.01%) 294,558k (± 0.00%) ~ 294,541k 294,574k p=0.258 n=6
Parse Time 2.74s (± 0.68%) 2.73s (± 0.30%) ~ 2.72s 2.74s p=0.084 n=6
Bind Time 1.11s (± 0.95%) 1.11s (± 0.00%) ~ 1.11s 1.11s p=0.293 n=6
Check Time 7.51s (± 0.47%) 7.51s (± 0.36%) ~ 7.46s 7.53s p=0.871 n=6
Emit Time 4.63s (± 1.03%) 4.65s (± 0.93%) ~ 4.60s 4.72s p=0.520 n=6
Total Time 15.99s (± 0.44%) 16.00s (± 0.30%) ~ 15.95s 16.09s p=0.810 n=6
material-ui - node (v14.15.1, x64)
Memory used 471,622k (± 0.00%) 471,630k (± 0.00%) ~ 471,617k 471,649k p=0.199 n=6
Parse Time 3.88s (± 0.72%) 3.87s (± 0.51%) ~ 3.84s 3.89s p=1.000 n=6
Bind Time 1.05s (± 0.00%) 1.04s (± 0.78%) ~ 1.03s 1.05s p=0.073 n=6
Check Time 19.14s (± 0.77%) 19.09s (± 0.75%) ~ 18.94s 19.32s p=0.423 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 24.07s (± 0.57%) 24.01s (± 0.56%) ~ 23.86s 24.21s p=0.471 n=6
xstate - node (v14.15.1, x64)
Memory used 534,749k (± 0.00%) 534,744k (± 0.01%) ~ 534,720k 534,805k p=0.630 n=6
Parse Time 5.12s (± 0.82%) 5.07s (± 0.73%) ~ 5.02s 5.12s p=0.077 n=6
Bind Time 1.71s (± 0.60%) 1.71s (± 0.68%) ~ 1.70s 1.73s p=0.615 n=6
Check Time 3.13s (± 0.48%) 3.14s (± 0.56%) ~ 3.11s 3.16s p=0.366 n=6
Emit Time 0.10s (± 4.01%) 0.10s (± 0.00%) ~ 0.10s 0.10s p=0.405 n=6
Total Time 10.06s (± 0.36%) 10.02s (± 0.48%) ~ 9.95s 10.06s p=0.170 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 52630 6
Baseline main 6

TSServer

Comparison Report - main..52630
Metric main 52630 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,496ms (± 1.28%) 2,497ms (± 1.01%) ~ 2,470ms 2,527ms p=1.000 n=6
Req 2 - geterr 5,511ms (± 0.57%) 5,541ms (± 0.48%) ~ 5,510ms 5,589ms p=0.093 n=6
Req 3 - references 370ms (± 1.13%) 370ms (± 0.96%) ~ 368ms 377ms p=0.682 n=6
Req 4 - navto 284ms (± 0.99%) 283ms (± 0.65%) ~ 281ms 286ms p=0.459 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 73ms (± 1.03%) 72ms (± 1.63%) ~ 70ms 73ms p=0.054 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,739ms (± 0.79%) 2,746ms (± 1.08%) ~ 2,702ms 2,779ms p=0.630 n=6
Req 2 - geterr 4,059ms (± 0.64%) 4,048ms (± 0.36%) ~ 4,024ms 4,065ms p=0.336 n=6
Req 3 - references 368ms (± 0.72%) 367ms (± 0.80%) ~ 362ms 370ms p=1.000 n=6
Req 4 - navto 293ms (± 0.88%) 292ms (± 0.36%) ~ 290ms 293ms p=0.374 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 66ms (± 0.79%) 66ms (± 1.14%) ~ 65ms 67ms p=0.241 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,490ms (± 0.82%) 3,487ms (± 0.49%) ~ 3,460ms 3,504ms p=0.748 n=6
Req 2 - geterr 1,648ms (± 0.66%) 1,645ms (± 0.97%) ~ 1,632ms 1,671ms p=0.810 n=6
Req 3 - references 104ms (± 1.05%) 104ms (± 2.30%) ~ 100ms 107ms p=0.548 n=6
Req 4 - navto 355ms (± 0.53%) 357ms (± 0.35%) +3ms (+ 0.71%) 355ms 358ms p=0.035 n=6
Req 5 - completionInfo count 3,175 (± 0.00%) 3,175 (± 0.00%) ~ 3,175 3,175 p=1.000 n=6
Req 5 - completionInfo 450ms (± 0.90%) 448ms (± 1.77%) ~ 439ms 458ms p=0.630 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,770ms (± 0.58%) 2,763ms (± 0.59%) ~ 2,740ms 2,789ms p=0.336 n=6
Req 2 - geterr 5,930ms (± 0.53%) 5,923ms (± 0.34%) ~ 5,895ms 5,944ms p=0.936 n=6
Req 3 - references 377ms (± 0.76%) 376ms (± 1.09%) ~ 370ms 380ms p=0.808 n=6
Req 4 - navto 277ms (± 0.91%) 279ms (± 0.84%) ~ 276ms 282ms p=0.119 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 79ms (± 2.70%) 81ms (± 4.29%) ~ 78ms 85ms p=0.360 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,924ms (± 0.37%) 2,919ms (± 0.43%) ~ 2,908ms 2,935ms p=0.422 n=6
Req 2 - geterr 4,412ms (± 0.53%) 4,418ms (± 0.26%) ~ 4,400ms 4,431ms p=1.000 n=6
Req 3 - references 382ms (± 1.07%) 381ms (± 0.68%) ~ 377ms 383ms p=0.375 n=6
Req 4 - navto 287ms (± 0.56%) 287ms (± 0.56%) ~ 285ms 289ms p=0.871 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 71ms (± 0.57%) 72ms (± 1.24%) ~ 71ms 73ms p=0.086 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,626ms (± 0.35%) 3,625ms (± 0.23%) ~ 3,617ms 3,639ms p=0.936 n=6
Req 2 - geterr 1,825ms (± 1.51%) 1,820ms (± 1.64%) ~ 1,785ms 1,863ms p=0.748 n=6
Req 3 - references 113ms (± 1.42%) 113ms (± 1.56%) ~ 109ms 114ms p=0.612 n=6
Req 4 - navto 344ms (± 1.02%) 345ms (± 1.20%) ~ 340ms 349ms p=1.000 n=6
Req 5 - completionInfo count 3,175 (± 0.00%) 3,175 (± 0.00%) ~ 3,175 3,175 p=1.000 n=6
Req 5 - completionInfo 457ms (± 0.99%) 456ms (± 0.99%) ~ 451ms 464ms p=0.872 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,884ms (± 0.28%) 2,884ms (± 0.30%) ~ 2,875ms 2,896ms p=1.000 n=6
Req 2 - geterr 6,277ms (± 0.73%) 6,320ms (± 0.95%) ~ 6,232ms 6,393ms p=0.173 n=6
Req 3 - references 391ms (± 0.53%) 393ms (± 1.32%) ~ 385ms 399ms p=0.376 n=6
Req 4 - navto 280ms (± 1.31%) 286ms (± 2.58%) ~ 277ms 295ms 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 99ms (± 1.69%) 94ms (± 8.19%) ~ 80ms 100ms p=0.141 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,038ms (± 0.96%) 3,037ms (± 0.15%) ~ 3,030ms 3,043ms p=0.872 n=6
Req 2 - geterr 4,695ms (± 0.40%) 4,700ms (± 0.29%) ~ 4,690ms 4,726ms p=0.810 n=6
Req 3 - references 404ms (± 0.43%) 402ms (± 0.35%) ~ 400ms 404ms p=0.052 n=6
Req 4 - navto 293ms (± 1.30%) 293ms (± 1.03%) ~ 289ms 298ms p=0.806 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 82ms (± 3.84%) 80ms (± 0.64%) ~ 80ms 81ms p=0.523 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,955ms (± 0.60%) 3,952ms (± 0.50%) ~ 3,934ms 3,989ms p=1.000 n=6
Req 2 - geterr 1,776ms (± 1.68%) 1,780ms (± 1.07%) ~ 1,755ms 1,801ms p=0.422 n=6
Req 3 - references 133ms (± 1.99%) 129ms (± 3.30%) ~ 124ms 135ms p=0.088 n=6
Req 4 - navto 375ms (± 0.95%) 375ms (± 0.58%) ~ 372ms 378ms p=0.686 n=6
Req 5 - completionInfo count 3,175 (± 0.00%) 3,175 (± 0.00%) ~ 3,175 3,175 p=1.000 n=6
Req 5 - completionInfo 470ms (± 2.40%) 468ms (± 2.60%) ~ 457ms 482ms p=1.000 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 52630 6
Baseline main 6

Startup

Comparison Report - main..52630
Metric main 52630 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 142.53ms (± 0.21%) 142.26ms (± 0.22%) -0.27ms (- 0.19%) 141.57ms 148.10ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 227.47ms (± 0.18%) 226.55ms (± 0.16%) -0.92ms (- 0.41%) 225.61ms 231.02ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 228.98ms (± 0.13%) 228.37ms (± 0.16%) -0.61ms (- 0.27%) 227.40ms 232.75ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 209.74ms (± 0.15%) 209.24ms (± 0.17%) -0.50ms (- 0.24%) 208.41ms 214.23ms 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 52630 6
Baseline main 6

Developer Information:

Download Benchmark

# Conflicts:
#	tests/baselines/reference/inferTupleFromBindingPattern.js
#	tests/baselines/reference/inferTupleFromBindingPattern.symbols
#	tests/baselines/reference/inferTupleFromBindingPattern.types
resultFlags = source.target.elementFlags.slice();
}
const targetFlag = target.target.elementFlags[i];
resultTypes.push(anyType);
Copy link
Member

Choose a reason for hiding this comment

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

Rather than any with the target flags, shouldn't it be never with the optional flag? To reflect how the consumer never reads the member?

@Andarist Andarist marked this pull request as draft December 17, 2023 17:58
@Andarist
Copy link
Contributor Author

This gets superseded by #56875 since this PR here aimed to solve the problem through special-casing and the new PR takes a much more general approach to this and similar problems.

@Andarist Andarist closed this Dec 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
For Backlog Bug PRs that fix a backlog bug
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

nested destructured tuple value is string | undefined when second tuple item is not accessed
4 participants