Skip to content

Accurate constraintType for indexedAccessType #53059

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

Merged
merged 3 commits into from
Mar 21, 2023

Conversation

islandryu
Copy link
Contributor

Fixes #52399

@typescript-bot typescript-bot added the For Backlog Bug PRs that fix a backlog bug label Mar 2, 2023
@islandryu islandryu marked this pull request as ready for review March 2, 2023 12:59
@islandryu islandryu force-pushed the constraintWithIndexedAccess branch from 277732e to 0f6bc92 Compare March 2, 2023 12:59
@RyanCavanaugh RyanCavanaugh requested review from ahejlsberg and weswigham and removed request for ahejlsberg March 2, 2023 20:27
const indexType = type.indexType;
let indexConstraint = getSimplifiedTypeOrConstraint(indexType);
if (indexConstraint && indexConstraint.flags & TypeFlags.Index) {
const constraint = getBaseConstraintOfType((indexConstraint as IndexType).type);
Copy link
Member

Choose a reason for hiding this comment

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

Hm, by using getBaseConstraintOfType here like this, you're shortcutting a lot of steps in structuredTypeRelatedToWorker. That's what the baseline changes here show. Specifically, presume you have a T[keyof U] being related to a A where A extends T[keyof T] and U extends T - this will cause us to skip past the T[keyof T] constraint for T[keyof U] straight to T[string | number | symbol] (assuming T is unconstrained), thereby missing that T[keyof U] is an allowed subset of A because T[keyof T] is A's constraint (under our current rules - read how we have lax indexed access constraint relationships elsewhere). This is, unfortunately, almost definitely a visible breaking change as-is. Rather than skipping so many steps here, explicitly adjusting structuredTypeRelatedToWorker to do some extra constraint exploration for IndexedAccess types within the sourceFlags & TypeFlags.TypeVariable section would be preferable and probably less likely to be breaky if it's just an alternate non-error-reporting success path.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Process in sourceFlags & TypeFlags.TypeVariable section, so that existing error.txt is not affected !

@islandryu islandryu requested review from weswigham and removed request for ahejlsberg March 18, 2023 13:27
Copy link
Member

@weswigham weswigham left a comment

Choose a reason for hiding this comment

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

Provided tests come back clean, I think this looks pretty good

@weswigham
Copy link
Member

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 20, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 20, 2023

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 20, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 20, 2023

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

Update: The results are in!

@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/53059/merge:

Everything looks good!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Compiler

Comparison Report - main..53059
Metric main 53059 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 361,726k (± 0.01%) 361,713k (± 0.01%) ~ 361,671k 361,738k p=0.297 n=6
Parse Time 3.38s (± 0.24%) 3.37s (± 0.46%) ~ 3.36s 3.40s p=0.085 n=6
Bind Time 1.11s (± 0.49%) 1.11s (± 0.94%) ~ 1.10s 1.13s p=1.000 n=6
Check Time 8.67s (± 0.45%) 8.71s (± 0.34%) ~ 8.67s 8.76s p=0.091 n=6
Emit Time 7.46s (± 0.77%) 7.45s (± 0.68%) ~ 7.39s 7.53s p=0.809 n=6
Total Time 20.63s (± 0.45%) 20.64s (± 0.33%) ~ 20.56s 20.73s p=0.520 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 191,741k (± 1.18%) 192,717k (± 1.52%) ~ 190,772k 196,589k p=0.471 n=6
Parse Time 1.49s (± 1.12%) 1.51s (± 1.47%) ~ 1.48s 1.54s p=0.123 n=6
Bind Time 0.77s (± 1.06%) 0.77s (± 0.00%) ~ 0.77s 0.77s p=0.290 n=6
Check Time 9.37s (± 0.33%) 9.40s (± 0.37%) ~ 9.35s 9.45s p=0.374 n=6
Emit Time 2.73s (± 0.73%) 2.73s (± 1.46%) ~ 2.69s 2.79s p=0.808 n=6
Total Time 14.37s (± 0.37%) 14.41s (± 0.43%) ~ 14.30s 14.47s p=0.297 n=6
Monaco - node (v18.10.0, x64)
Memory used 346,257k (± 0.01%) 346,258k (± 0.01%) ~ 346,232k 346,299k p=0.810 n=6
Parse Time 2.58s (± 0.57%) 2.60s (± 1.37%) ~ 2.55s 2.63s p=0.517 n=6
Bind Time 1.01s (± 0.51%) 1.01s (± 0.51%) ~ 1.00s 1.01s p=1.000 n=6
Check Time 6.98s (± 0.15%) 7.00s (± 0.73%) ~ 6.95s 7.07s p=0.808 n=6
Emit Time 4.25s (± 0.61%) 4.24s (± 0.10%) ~ 4.24s 4.25s p=0.929 n=6
Total Time 14.81s (± 0.24%) 14.85s (± 0.56%) ~ 14.75s 14.94s p=0.575 n=6
TFS - node (v18.10.0, x64)
Memory used 300,469k (± 0.01%) 300,456k (± 0.01%) ~ 300,425k 300,484k p=0.471 n=6
Parse Time 2.07s (± 1.33%) 2.06s (± 0.94%) ~ 2.03s 2.08s p=0.329 n=6
Bind Time 1.14s (± 0.66%) 1.13s (± 0.91%) ~ 1.12s 1.15s p=0.351 n=6
Check Time 6.50s (± 0.43%) 6.50s (± 0.32%) ~ 6.47s 6.53s p=1.000 n=6
Emit Time 3.88s (± 0.65%) 3.86s (± 0.39%) ~ 3.84s 3.88s p=0.506 n=6
Total Time 13.59s (± 0.30%) 13.56s (± 0.26%) ~ 13.51s 13.60s p=0.334 n=6
material-ui - node (v18.10.0, x64)
Memory used 477,096k (± 0.00%) 477,120k (± 0.01%) ~ 477,076k 477,178k p=0.128 n=6
Parse Time 3.06s (± 2.00%) 3.04s (± 2.31%) ~ 2.94s 3.11s p=1.000 n=6
Bind Time 0.93s (± 6.01%) 0.96s (± 9.01%) ~ 0.90s 1.08s p=0.357 n=6
Check Time 16.88s (± 0.74%) 17.00s (± 0.73%) ~ 16.81s 17.19s p=0.128 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.87s (± 0.61%) 21.01s (± 0.55%) ~ 20.82s 21.18s p=0.128 n=6
xstate - node (v18.10.0, x64)
Memory used 553,144k (± 0.03%) 552,957k (± 0.02%) ~ 552,856k 553,183k p=0.128 n=6
Parse Time 3.76s (± 0.55%) 3.77s (± 0.79%) ~ 3.74s 3.81s p=0.567 n=6
Bind Time 1.67s (± 0.90%) 1.69s (± 0.45%) ~ 1.68s 1.70s p=0.111 n=6
Check Time 2.82s (± 0.76%) 2.82s (± 1.04%) ~ 2.78s 2.85s p=1.000 n=6
Emit Time 0.08s (± 4.99%) 0.08s (± 0.00%) ~ 0.08s 0.08s p=0.405 n=6
Total Time 8.33s (± 0.36%) 8.35s (± 0.39%) ~ 8.30s 8.39s p=0.222 n=6
Angular - node (v16.17.1, x64)
Memory used 361,049k (± 0.01%) 361,037k (± 0.01%) ~ 360,986k 361,088k p=0.575 n=6
Parse Time 3.53s (± 0.58%) 3.52s (± 0.59%) ~ 3.50s 3.56s p=0.466 n=6
Bind Time 1.18s (± 0.35%) 1.19s (± 0.69%) ~ 1.18s 1.20s p=0.248 n=6
Check Time 9.46s (± 0.43%) 9.43s (± 0.53%) ~ 9.37s 9.50s p=0.629 n=6
Emit Time 7.95s (± 0.95%) 7.92s (± 0.85%) ~ 7.87s 8.05s p=0.297 n=6
Total Time 22.13s (± 0.48%) 22.06s (± 0.33%) ~ 21.95s 22.15s p=0.298 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 192,546k (± 0.03%) 192,567k (± 0.04%) ~ 192,421k 192,645k p=0.471 n=6
Parse Time 1.58s (± 0.48%) 1.57s (± 2.15%) ~ 1.50s 1.59s p=0.652 n=6
Bind Time 0.82s (± 0.00%) 0.82s (± 0.50%) ~ 0.82s 0.83s p=0.405 n=6
Check Time 10.03s (± 0.56%) 10.09s (± 0.85%) ~ 9.95s 10.18s p=0.196 n=6
Emit Time 2.97s (± 1.15%) 2.99s (± 0.59%) ~ 2.96s 3.01s p=0.196 n=6
Total Time 15.40s (± 0.41%) 15.47s (± 0.46%) ~ 15.35s 15.56s p=0.128 n=6
Monaco - node (v16.17.1, x64)
Memory used 345,569k (± 0.00%) 345,572k (± 0.01%) ~ 345,537k 345,629k p=0.748 n=6
Parse Time 2.72s (± 0.43%) 2.72s (± 0.49%) ~ 2.70s 2.74s p=0.737 n=6
Bind Time 1.09s (± 0.47%) 1.09s (± 0.58%) ~ 1.08s 1.10s p=0.386 n=6
Check Time 7.70s (± 0.56%) 7.69s (± 0.45%) ~ 7.64s 7.72s p=0.687 n=6
Emit Time 4.45s (± 0.51%) 4.46s (± 0.33%) ~ 4.44s 4.48s p=0.684 n=6
Total Time 15.95s (± 0.16%) 15.96s (± 0.30%) ~ 15.89s 16.02s p=0.808 n=6
TFS - node (v16.17.1, x64)
Memory used 299,812k (± 0.01%) 299,793k (± 0.01%) ~ 299,742k 299,822k p=0.471 n=6
Parse Time 2.16s (± 0.38%) 2.17s (± 0.58%) ~ 2.16s 2.19s p=0.065 n=6
Bind Time 1.24s (± 0.83%) 1.24s (± 1.14%) ~ 1.22s 1.26s p=0.738 n=6
Check Time 7.15s (± 0.40%) 7.14s (± 0.37%) ~ 7.10s 7.17s p=0.292 n=6
Emit Time 4.33s (± 0.50%) 4.36s (± 0.48%) ~ 4.33s 4.39s p=0.062 n=6
Total Time 14.87s (± 0.17%) 14.90s (± 0.31%) ~ 14.84s 14.95s p=0.334 n=6
material-ui - node (v16.17.1, x64)
Memory used 476,359k (± 0.00%) 476,364k (± 0.00%) ~ 476,352k 476,390k p=0.575 n=6
Parse Time 3.22s (± 0.38%) 3.22s (± 0.26%) ~ 3.22s 3.24s p=0.276 n=6
Bind Time 0.95s (± 0.43%) 0.96s (± 0.57%) ~ 0.95s 0.96s p=0.282 n=6
Check Time 17.88s (± 0.94%) 17.91s (± 0.54%) ~ 17.78s 18.07s p=0.748 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.76%) 22.09s (± 0.43%) ~ 21.96s 22.25s p=0.470 n=6
xstate - node (v16.17.1, x64)
Memory used 550,641k (± 0.02%) 550,611k (± 0.02%) ~ 550,488k 550,748k p=0.378 n=6
Parse Time 3.94s (± 0.31%) 3.93s (± 0.50%) ~ 3.90s 3.96s p=0.171 n=6
Bind Time 1.80s (± 0.29%) 1.79s (± 0.30%) ~ 1.79s 1.80s p=0.640 n=6
Check Time 3.03s (± 0.60%) 3.03s (± 0.45%) ~ 3.02s 3.06s p=0.743 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 8.87s (± 0.26%) 8.86s (± 0.33%) ~ 8.82s 8.90s p=0.683 n=6
Angular - node (v14.15.1, x64)
Memory used 354,893k (± 0.01%) 354,905k (± 0.01%) ~ 354,862k 354,942k p=0.689 n=6
Parse Time 3.58s (± 0.48%) 3.60s (± 0.72%) ~ 3.58s 3.65s p=0.088 n=6
Bind Time 1.23s (± 0.61%) 1.23s (± 0.42%) ~ 1.23s 1.24s p=0.784 n=6
Check Time 9.78s (± 0.40%) 9.82s (± 0.28%) ~ 9.78s 9.86s p=0.076 n=6
Emit Time 8.32s (± 0.69%) 8.38s (± 0.73%) ~ 8.29s 8.44s p=0.147 n=6
Total Time 22.92s (± 0.33%) 23.04s (± 0.30%) +0.12s (+ 0.51%) 22.93s 23.13s p=0.031 n=6
Compiler-Unions - node (v14.15.1, x64)
Memory used 187,791k (± 0.02%) 187,805k (± 0.02%) ~ 187,764k 187,838k p=0.471 n=6
Parse Time 1.59s (± 0.26%) 1.60s (± 0.65%) ~ 1.59s 1.61s p=0.114 n=6
Bind Time 0.84s (± 0.48%) 0.84s (± 0.61%) ~ 0.84s 0.85s p=0.595 n=6
Check Time 10.19s (± 0.74%) 10.19s (± 0.47%) ~ 10.13s 10.26s p=0.936 n=6
Emit Time 3.12s (± 0.48%) 3.13s (± 0.68%) ~ 3.11s 3.17s p=0.511 n=6
Total Time 15.75s (± 0.53%) 15.77s (± 0.25%) ~ 15.71s 15.81s p=0.688 n=6
Monaco - node (v14.15.1, x64)
Memory used 340,555k (± 0.00%) 340,551k (± 0.01%) ~ 340,516k 340,582k p=1.000 n=6
Parse Time 2.82s (± 0.47%) 2.83s (± 0.67%) ~ 2.81s 2.85s p=0.285 n=6
Bind Time 1.09s (± 0.76%) 1.09s (± 0.50%) ~ 1.09s 1.10s p=0.855 n=6
Check Time 8.09s (± 0.45%) 8.09s (± 0.36%) ~ 8.04s 8.13s p=1.000 n=6
Emit Time 4.67s (± 0.37%) 4.69s (± 0.73%) ~ 4.64s 4.73s p=0.374 n=6
Total Time 16.68s (± 0.24%) 16.70s (± 0.38%) ~ 16.64s 16.77s p=0.520 n=6
TFS - node (v14.15.1, x64)
Memory used 294,892k (± 0.01%) 294,888k (± 0.00%) ~ 294,876k 294,898k p=1.000 n=6
Parse Time 2.40s (± 0.57%) 2.40s (± 0.86%) ~ 2.37s 2.42s p=1.000 n=6
Bind Time 1.07s (± 0.51%) 1.07s (± 0.51%) ~ 1.06s 1.07s p=1.000 n=6
Check Time 7.50s (± 0.37%) 7.50s (± 0.51%) ~ 7.46s 7.56s p=0.742 n=6
Emit Time 4.29s (± 0.62%) 4.30s (± 0.61%) ~ 4.28s 4.34s p=0.808 n=6
Total Time 15.24s (± 0.26%) 15.27s (± 0.28%) ~ 15.19s 15.31s p=0.296 n=6
material-ui - node (v14.15.1, x64)
Memory used 471,995k (± 0.01%) 472,017k (± 0.00%) ~ 471,992k 472,033k p=0.093 n=6
Parse Time 3.34s (± 0.46%) 3.34s (± 0.52%) ~ 3.32s 3.37s p=0.870 n=6
Bind Time 1.01s (± 0.00%) 1.01s (± 0.51%) ~ 1.00s 1.01s p=0.174 n=6
Check Time 18.80s (± 0.30%) 18.88s (± 0.56%) ~ 18.77s 19.05s p=0.197 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.15s (± 0.18%) 23.23s (± 0.46%) ~ 23.12s 23.41s p=0.149 n=6
xstate - node (v14.15.1, x64)
Memory used 539,073k (± 0.00%) 539,144k (± 0.01%) +71k (+ 0.01%) 539,099k 539,194k p=0.013 n=6
Parse Time 4.22s (± 0.39%) 4.23s (± 0.41%) ~ 4.21s 4.26s p=0.168 n=6
Bind Time 1.64s (± 0.31%) 1.67s (± 0.70%) +0.03s (+ 1.72%) 1.66s 1.69s p=0.004 n=6
Check Time 3.17s (± 0.43%) 3.19s (± 0.71%) ~ 3.17s 3.23s p=0.288 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 9.12s (± 0.13%) 9.18s (± 0.22%) +0.06s (+ 0.64%) 9.15s 9.21s p=0.005 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 53059 6
Baseline main 6

TSServer

Comparison Report - main..53059
Metric main 53059 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,376ms (± 0.43%) 2,387ms (± 1.24%) ~ 2,364ms 2,443ms p=0.936 n=6
Req 2 - geterr 5,356ms (± 0.59%) 5,370ms (± 1.16%) ~ 5,311ms 5,481ms p=0.936 n=6
Req 3 - references 338ms (± 1.42%) 336ms (± 0.62%) ~ 333ms 338ms p=0.806 n=6
Req 4 - navto 280ms (± 0.45%) 280ms (± 0.57%) ~ 279ms 283ms p=1.000 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 (± 5.12%) 75ms (± 7.97%) ~ 68ms 83ms p=0.198 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,489ms (± 1.05%) 2,509ms (± 0.97%) ~ 2,463ms 2,537ms p=0.092 n=6
Req 2 - geterr 4,001ms (± 0.51%) 4,013ms (± 0.52%) ~ 3,978ms 4,037ms p=0.375 n=6
Req 3 - references 346ms (± 0.96%) 348ms (± 0.85%) ~ 344ms 351ms p=0.466 n=6
Req 4 - navto 292ms (± 0.56%) 292ms (± 0.74%) ~ 289ms 295ms p=1.000 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 79ms (± 7.84%) 77ms (± 5.06%) ~ 74ms 83ms p=0.293 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,019ms (± 0.46%) 3,024ms (± 0.79%) ~ 2,998ms 3,068ms p=1.000 n=6
Req 2 - geterr 1,584ms (± 1.03%) 1,580ms (± 2.36%) ~ 1,505ms 1,605ms p=0.748 n=6
Req 3 - references 107ms (± 2.33%) 110ms (± 2.92%) ~ 106ms 115ms p=0.191 n=6
Req 4 - navto 355ms (± 0.64%) 355ms (± 1.33%) ~ 346ms 360ms p=0.369 n=6
Req 5 - completionInfo count 2,861 (± 0.00%) 2,861 (± 0.00%) ~ 2,861 2,861 p=1.000 n=6
Req 5 - completionInfo 384ms (± 0.65%) 381ms (± 2.00%) ~ 368ms 389ms p=1.000 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,510ms (± 0.86%) 2,507ms (± 0.70%) ~ 2,488ms 2,530ms p=0.810 n=6
Req 2 - geterr 5,765ms (± 0.62%) 5,779ms (± 0.55%) ~ 5,740ms 5,821ms p=0.378 n=6
Req 3 - references 345ms (± 1.03%) 347ms (± 0.59%) ~ 344ms 350ms p=0.196 n=6
Req 4 - navto 278ms (± 0.42%) 279ms (± 1.12%) ~ 277ms 285ms p=0.604 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 74ms (± 1.01%) 73ms (± 0.70%) ~ 73ms 74ms p=0.069 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,678ms (± 1.40%) 2,670ms (± 0.44%) ~ 2,654ms 2,689ms p=0.810 n=6
Req 2 - geterr 4,358ms (± 0.62%) 4,348ms (± 0.58%) ~ 4,320ms 4,377ms p=0.630 n=6
Req 3 - references 358ms (± 0.79%) 358ms (± 1.02%) ~ 354ms 364ms p=1.000 n=6
Req 4 - navto 291ms (± 0.46%) 290ms (± 0.58%) ~ 287ms 292ms p=0.455 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 75ms (± 7.86%) 76ms (± 4.58%) ~ 72ms 81ms p=0.872 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,169ms (± 0.30%) 3,163ms (± 0.21%) ~ 3,152ms 3,171ms p=0.334 n=6
Req 2 - geterr 1,768ms (± 1.31%) 1,770ms (± 1.18%) ~ 1,737ms 1,791ms p=0.872 n=6
Req 3 - references 117ms (± 1.00%) 117ms (± 1.26%) ~ 114ms 118ms p=0.933 n=6
Req 4 - navto 340ms (± 0.29%) 341ms (± 0.37%) ~ 340ms 343ms p=0.360 n=6
Req 5 - completionInfo count 2,861 (± 0.00%) 2,861 (± 0.00%) ~ 2,861 2,861 p=1.000 n=6
Req 5 - completionInfo 416ms (± 6.38%) 406ms (± 4.74%) ~ 395ms 445ms p=0.688 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,596ms (± 0.67%) 2,600ms (± 0.73%) ~ 2,568ms 2,622ms p=0.810 n=6
Req 2 - geterr 6,181ms (± 0.92%) 6,171ms (± 0.60%) ~ 6,123ms 6,227ms p=1.000 n=6
Req 3 - references 365ms (± 0.65%) 362ms (± 0.69%) ~ 358ms 365ms p=0.053 n=6
Req 4 - navto 277ms (± 0.67%) 281ms (± 1.88%) ~ 275ms 287ms p=0.376 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 102ms (± 1.19%) 97ms (± 6.62%) ~ 89ms 103ms p=0.254 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,817ms (± 0.43%) 2,826ms (± 0.82%) ~ 2,803ms 2,858ms p=0.936 n=6
Req 2 - geterr 4,496ms (± 2.10%) 4,462ms (± 0.17%) ~ 4,453ms 4,472ms p=0.630 n=6
Req 3 - references 411ms (± 6.56%) 422ms (± 4.41%) ~ 384ms 431ms p=0.090 n=6
Req 4 - navto 289ms (± 1.78%) 289ms (± 1.33%) ~ 285ms 294ms p=1.000 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 85ms (± 9.86%) 86ms (± 6.13%) ~ 76ms 92ms p=0.627 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,445ms (± 0.50%) 3,453ms (± 0.61%) ~ 3,424ms 3,486ms p=0.689 n=6
Req 2 - geterr 1,887ms (± 1.42%) 1,893ms (± 1.55%) ~ 1,853ms 1,936ms p=0.810 n=6
Req 3 - references 124ms (± 1.66%) 124ms (± 1.58%) ~ 122ms 127ms p=0.869 n=6
Req 4 - navto 370ms (± 0.30%) 370ms (± 0.24%) ~ 369ms 371ms p=0.932 n=6
Req 5 - completionInfo count 2,861 (± 0.00%) 2,861 (± 0.00%) ~ 2,861 2,861 p=1.000 n=6
Req 5 - completionInfo 412ms (± 0.79%) 411ms (± 0.63%) ~ 407ms 414ms p=0.628 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 53059 6
Baseline main 6

Startup

Comparison Report - main..53059
Metric main 53059 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 141.10ms (± 0.19%) 141.61ms (± 0.20%) +0.51ms (+ 0.36%) 140.60ms 146.81ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 225.81ms (± 0.17%) 227.43ms (± 0.39%) +1.62ms (+ 0.72%) 224.84ms 233.50ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 227.71ms (± 0.16%) 228.31ms (± 0.27%) +0.60ms (+ 0.26%) 226.65ms 238.70ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 208.62ms (± 0.17%) 209.13ms (± 0.24%) +0.51ms (+ 0.25%) 207.67ms 213.54ms 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 53059 6
Baseline main 6

Developer Information:

Download Benchmark

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.

Cannot select object type from wrapping object using parameter
3 participants