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

Replace missingType with undefinedType in the IndexedAccessTypeNode's type #52016

Merged
merged 3 commits into from
Feb 4, 2023

Conversation

Andarist
Copy link
Contributor

fixes #51953

cc @sandersn

@typescript-bot typescript-bot added the For Milestone Bug PRs that fix a bug with a specific milestone label Dec 24, 2022
@sandersn sandersn self-requested a review December 30, 2022 00:52
Copy link
Member

@sandersn sandersn left a comment

Choose a reason for hiding this comment

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

Looks like a good fix for the observed bug, but it might be have undesired effects for other indexTypes.

@@ -16856,6 +16856,8 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
const propType = getTypeOfSymbol(prop);
return accessExpression && getAssignmentTargetKind(accessExpression) !== AssignmentKind.Definite ?
getFlowTypeOfReference(accessExpression, propType) :
accessNode && isIndexedAccessTypeNode(accessNode) ?
mapType(propType, type => type === missingType ? undefinedType : type) :
Copy link
Member

Choose a reason for hiding this comment

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

this is a good fix for the problem encountered here, and probably for most cases when referencing a single property, but I think it might have undesired effects for cases where the indexType is a union of property names, especially something like keyof T.

Am I wrong? Does it still make sense to turn missing into undefined there too? @weswigham I'd like your advice on this.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

But even in such cases - we just end up distributing~ the indexType over objectType. Essentially it's the same as T['a'] | T['b'] | .... So the open question is - is there any case for which indexed access type should "transfer" the optionality~ into the target type? The only operation that should do it, that I know of, involved homomorphic mapped types - and in this case, indexed access types are not involved directly.

@sandersn sandersn removed their assignment Jan 10, 2023
@sandersn sandersn assigned weswigham and unassigned sandersn Jan 10, 2023
@sandersn sandersn requested a review from weswigham January 10, 2023 21:07
Comment on lines 16857 to 16858
return accessExpression && getAssignmentTargetKind(accessExpression) !== AssignmentKind.Definite ?
getFlowTypeOfReference(accessExpression, propType) :
Copy link
Member

Choose a reason for hiding this comment

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

now that this has multiple entries, can you format it cond-style? Like so:

return cond1 ? cons2
    : cond2 ? cons2
    : default;

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done #prettierwhereareyou 😉

@Andarist Andarist requested review from sandersn and removed request for weswigham February 2, 2023 21:33
@sandersn sandersn requested a review from weswigham February 3, 2023 01:06
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.

This looks pretty reasonable to me, but @RyanCavanaugh should probably sign off, since he's probably got the most complete mental model for how missingType is supposed to work.

@microsoft-github-policy-service

It looks like you've sent a pull request to update our 'lib' files. These files aren't meant to be edited by hand, as they consist of last-known good states of the compiler and are generated from 'src/lib' or possibly our lib generator. Unless this is necessary, consider closing the pull request and sending a separate PR to update 'src/lib' or https://github.com/microsoft/TypeScript-DOM-lib-generator

@RyanCavanaugh
Copy link
Member

Sorry, the bot is off the rails. We've asked the team owning it to investigate.

@RyanCavanaugh
Copy link
Member

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 3, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 3, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 3, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 3, 2023

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 3, 2023

Heya @RyanCavanaugh, I've started to run the diff-based top-repos suite (tsserver) on this PR at ea832bf. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 3, 2023

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 3, 2023

Heya @RyanCavanaugh, I've started to run the diff-based user code test suite (tsserver) on this PR at ea832bf. You can monitor the build here.

Update: The results are in!

Copy link
Member

@RyanCavanaugh RyanCavanaugh left a comment

Choose a reason for hiding this comment

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

The code seems fine to me; if the test results come back clean we can merge this

@typescript-bot
Copy link
Collaborator

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

Everything looks good!

@typescript-bot
Copy link
Collaborator

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

Everything looks good!

@typescript-bot
Copy link
Collaborator

Heya @RyanCavanaugh, 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

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

Here they are:

Compiler

Comparison Report - main..52016
Metric main 52016 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 359,833k (± 0.01%) 359,851k (± 0.01%) ~ 359,824k 359,914k p=0.128 n=6
Parse Time 3.98s (± 0.82%) 3.96s (± 0.52%) ~ 3.94s 3.99s p=0.418 n=6
Bind Time 1.17s (± 1.00%) 1.18s (± 0.64%) ~ 1.17s 1.19s p=0.383 n=6
Check Time 8.71s (± 0.59%) 8.69s (± 0.39%) ~ 8.66s 8.75s p=0.293 n=6
Emit Time 7.64s (± 0.73%) 7.64s (± 0.45%) ~ 7.59s 7.67s p=1.000 n=6
Total Time 21.50s (± 0.47%) 21.46s (± 0.26%) ~ 21.42s 21.54s p=0.376 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 194,575k (± 1.47%) 193,172k (± 1.21%) ~ 192,069k 197,949k p=0.378 n=6
Parse Time 1.64s (± 1.58%) 1.61s (± 1.30%) ~ 1.59s 1.65s p=0.103 n=6
Bind Time 0.80s (± 1.02%) 0.79s (± 0.65%) ~ 0.79s 0.80s p=0.523 n=6
Check Time 9.71s (± 0.51%) 9.71s (± 0.69%) ~ 9.63s 9.82s p=1.000 n=6
Emit Time 2.86s (± 4.33%) 2.87s (± 4.04%) ~ 2.80s 3.10s p=0.686 n=6
Total Time 15.00s (± 0.93%) 14.98s (± 1.31%) ~ 14.83s 15.36s p=0.521 n=6
Monaco - node (v18.10.0, x64)
Memory used 343,996k (± 0.01%) 344,019k (± 0.01%) ~ 343,980k 344,059k p=0.422 n=6
Parse Time 2.96s (± 0.59%) 2.96s (± 0.73%) ~ 2.93s 2.98s p=0.744 n=6
Bind Time 1.05s (± 0.72%) 1.04s (± 1.32%) ~ 1.02s 1.05s p=0.149 n=6
Check Time 7.07s (± 0.35%) 7.07s (± 0.51%) ~ 7.04s 7.13s p=0.622 n=6
Emit Time 4.35s (± 0.57%) 4.34s (± 0.65%) ~ 4.31s 4.39s p=0.295 n=6
Total Time 15.43s (± 0.33%) 15.40s (± 0.38%) ~ 15.34s 15.49s p=0.292 n=6
TFS - node (v18.10.0, x64)
Memory used 300,407k (± 0.00%) 300,401k (± 0.00%) ~ 300,379k 300,418k p=0.419 n=6
Parse Time 2.30s (± 2.15%) 2.28s (± 1.23%) ~ 2.23s 2.31s p=0.515 n=6
Bind Time 1.17s (± 0.00%) 1.17s (± 0.44%) ~ 1.17s 1.18s p=0.174 n=6
Check Time 6.58s (± 0.31%) 6.54s (± 0.33%) -0.04s (- 0.63%) 6.51s 6.57s p=0.015 n=6
Emit Time 3.94s (± 0.52%) 3.91s (± 0.67%) -0.03s (- 0.85%) 3.89s 3.96s p=0.036 n=6
Total Time 13.99s (± 0.30%) 13.90s (± 0.38%) -0.09s (- 0.66%) 13.84s 13.99s p=0.012 n=6
material-ui - node (v18.10.0, x64)
Memory used 476,856k (± 0.00%) 476,887k (± 0.01%) ~ 476,855k 476,925k p=0.065 n=6
Parse Time 3.57s (± 0.49%) 3.54s (± 0.52%) -0.03s (- 0.98%) 3.52s 3.56s p=0.015 n=6
Bind Time 0.97s (± 0.65%) 0.97s (± 0.65%) ~ 0.96s 0.98s p=1.000 n=6
Check Time 17.34s (± 0.66%) 17.16s (± 0.25%) -0.18s (- 1.01%) 17.10s 17.21s p=0.013 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.88s (± 0.53%) 21.67s (± 0.23%) -0.21s (- 0.94%) 21.60s 21.72s p=0.008 n=6
xstate - node (v18.10.0, x64)
Memory used 549,044k (± 0.02%) 549,065k (± 0.03%) ~ 548,918k 549,293k p=1.000 n=6
Parse Time 4.59s (± 0.60%) 4.57s (± 0.56%) ~ 4.52s 4.59s p=0.467 n=6
Bind Time 1.72s (± 1.00%) 1.71s (± 0.74%) ~ 1.70s 1.73s p=0.249 n=6
Check Time 2.82s (± 0.86%) 2.83s (± 0.61%) ~ 2.81s 2.86s p=0.466 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 4.99%) ~ 0.08s 0.09s p=0.405 n=6
Total Time 9.21s (± 0.76%) 9.20s (± 0.15%) ~ 9.18s 9.21s p=0.747 n=6
Angular - node (v16.17.1, x64)
Memory used 359,239k (± 0.00%) 359,228k (± 0.01%) ~ 359,198k 359,265k p=0.575 n=6
Parse Time 4.20s (± 0.49%) 4.20s (± 0.25%) ~ 4.18s 4.21s p=0.357 n=6
Bind Time 1.23s (± 0.68%) 1.22s (± 0.45%) ~ 1.22s 1.23s p=0.855 n=6
Check Time 9.48s (± 0.18%) 9.46s (± 0.26%) ~ 9.43s 9.50s p=0.118 n=6
Emit Time 8.08s (± 0.34%) 8.06s (± 0.49%) ~ 8.02s 8.13s p=0.261 n=6
Total Time 22.98s (± 0.17%) 22.93s (± 0.30%) ~ 22.87s 23.06s p=0.107 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 195,155k (± 0.93%) 194,531k (± 0.73%) ~ 193,821k 197,441k p=0.378 n=6
Parse Time 1.81s (± 0.96%) 1.80s (± 0.45%) ~ 1.80s 1.82s p=0.301 n=6
Bind Time 0.85s (± 0.89%) 0.84s (± 0.65%) ~ 0.84s 0.85s p=0.476 n=6
Check Time 10.47s (± 0.45%) 10.43s (± 0.17%) ~ 10.42s 10.46s p=0.195 n=6
Emit Time 3.08s (± 0.90%) 3.04s (± 0.61%) -0.03s (- 1.08%) 3.03s 3.08s p=0.035 n=6
Total Time 16.21s (± 0.34%) 16.13s (± 0.22%) -0.08s (- 0.50%) 16.09s 16.18s p=0.020 n=6
Monaco - node (v16.17.1, x64)
Memory used 343,280k (± 0.01%) 343,269k (± 0.00%) ~ 343,252k 343,288k p=0.936 n=6
Parse Time 3.17s (± 0.52%) 3.19s (± 0.83%) ~ 3.16s 3.23s p=0.222 n=6
Bind Time 1.12s (± 0.49%) 1.12s (± 0.46%) ~ 1.11s 1.12s p=0.640 n=6
Check Time 7.76s (± 0.44%) 7.73s (± 0.52%) ~ 7.69s 7.79s p=0.126 n=6
Emit Time 4.54s (± 0.55%) 4.53s (± 0.50%) ~ 4.49s 4.55s p=1.000 n=6
Total Time 16.58s (± 0.29%) 16.56s (± 0.20%) ~ 16.51s 16.60s p=0.512 n=6
TFS - node (v16.17.1, x64)
Memory used 299,769k (± 0.01%) 299,768k (± 0.01%) ~ 299,753k 299,794k p=0.630 n=6
Parse Time 2.49s (± 0.86%) 2.47s (± 0.81%) ~ 2.45s 2.50s p=0.220 n=6
Bind Time 1.25s (± 0.97%) 1.25s (± 0.41%) ~ 1.25s 1.26s p=1.000 n=6
Check Time 7.19s (± 0.60%) 7.21s (± 0.18%) ~ 7.19s 7.23s p=0.681 n=6
Emit Time 4.24s (± 0.66%) 4.23s (± 0.66%) ~ 4.20s 4.28s p=0.807 n=6
Total Time 15.17s (± 0.54%) 15.16s (± 0.15%) ~ 15.14s 15.19s p=0.809 n=6
material-ui - node (v16.17.1, x64)
Memory used 476,107k (± 0.00%) 476,117k (± 0.00%) ~ 476,103k 476,156k p=0.296 n=6
Parse Time 3.73s (± 0.44%) 3.72s (± 0.22%) ~ 3.71s 3.73s p=0.616 n=6
Bind Time 1.02s (± 0.00%) 1.02s (± 0.40%) ~ 1.02s 1.03s p=0.405 n=6
Check Time 18.20s (± 0.55%) 18.16s (± 0.32%) ~ 18.09s 18.25s p=0.575 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.94s (± 0.41%) 22.91s (± 0.28%) ~ 22.83s 23.00s p=0.574 n=6
xstate - node (v16.17.1, x64)
Memory used 546,724k (± 0.03%) 546,732k (± 0.02%) ~ 546,619k 546,847k p=0.378 n=6
Parse Time 4.77s (± 0.55%) 4.75s (± 0.47%) ~ 4.73s 4.79s p=0.295 n=6
Bind Time 1.84s (± 0.44%) 1.84s (± 0.66%) ~ 1.82s 1.85s p=0.933 n=6
Check Time 3.05s (± 1.20%) 3.05s (± 0.60%) ~ 3.02s 3.07s p=0.935 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 9.75s (± 0.44%) 9.73s (± 0.34%) ~ 9.68s 9.77s p=0.469 n=6
Angular - node (v14.15.1, x64)
Memory used 352,842k (± 0.01%) 352,847k (± 0.01%) ~ 352,818k 352,879k p=0.688 n=6
Parse Time 4.26s (± 0.40%) 4.25s (± 1.04%) ~ 4.22s 4.34s p=0.126 n=6
Bind Time 1.29s (± 0.40%) 1.28s (± 0.80%) ~ 1.27s 1.30s p=0.437 n=6
Check Time 9.77s (± 0.70%) 9.74s (± 0.54%) ~ 9.69s 9.82s p=0.332 n=6
Emit Time 8.43s (± 0.78%) 8.36s (± 0.40%) ~ 8.32s 8.42s p=0.092 n=6
Total Time 23.74s (± 0.58%) 23.64s (± 0.54%) ~ 23.53s 23.89s p=0.078 n=6
Compiler-Unions - node (v14.15.1, x64)
Memory used 188,842k (± 0.04%) 189,425k (± 0.67%) ~ 188,753k 191,989k p=0.471 n=6
Parse Time 1.86s (± 0.79%) 1.84s (± 0.59%) -0.02s (- 1.16%) 1.82s 1.85s p=0.010 n=6
Bind Time 0.87s (± 0.47%) 0.86s (± 0.60%) ~ 0.86s 0.87s p=0.112 n=6
Check Time 10.56s (± 0.44%) 10.49s (± 0.38%) -0.07s (- 0.65%) 10.44s 10.56s p=0.023 n=6
Emit Time 3.44s (± 4.27%) 3.34s (± 4.49%) ~ 3.12s 3.47s p=0.092 n=6
Total Time 16.72s (± 1.07%) 16.53s (± 1.00%) -0.18s (- 1.11%) 16.27s 16.65s p=0.036 n=6
Monaco - node (v14.15.1, x64)
Memory used 338,032k (± 0.00%) 338,031k (± 0.00%) ~ 338,014k 338,050k p=1.000 n=6
Parse Time 3.26s (± 1.30%) 3.23s (± 1.02%) ~ 3.20s 3.29s p=0.373 n=6
Bind Time 1.11s (± 0.68%) 1.12s (± 0.46%) ~ 1.11s 1.12s p=0.247 n=6
Check Time 8.08s (± 0.33%) 8.10s (± 0.23%) ~ 8.08s 8.13s p=0.164 n=6
Emit Time 4.76s (± 0.97%) 4.76s (± 1.00%) ~ 4.72s 4.84s p=0.936 n=6
Total Time 17.21s (± 0.32%) 17.21s (± 0.25%) ~ 17.16s 17.28s p=0.936 n=6
TFS - node (v14.15.1, x64)
Memory used 294,567k (± 0.00%) 294,571k (± 0.01%) ~ 294,549k 294,594k p=0.810 n=6
Parse Time 2.75s (± 1.07%) 2.75s (± 0.91%) ~ 2.70s 2.77s p=0.935 n=6
Bind Time 1.11s (± 0.93%) 1.11s (± 1.33%) ~ 1.08s 1.12s p=0.863 n=6
Check Time 7.50s (± 0.31%) 7.52s (± 0.34%) ~ 7.49s 7.56s p=0.288 n=6
Emit Time 4.65s (± 0.51%) 4.61s (± 0.19%) -0.04s (- 0.86%) 4.60s 4.62s p=0.007 n=6
Total Time 16.02s (± 0.41%) 15.99s (± 0.23%) ~ 15.94s 16.04s p=0.470 n=6
material-ui - node (v14.15.1, x64)
Memory used 471,640k (± 0.01%) 471,628k (± 0.00%) ~ 471,597k 471,647k p=0.336 n=6
Parse Time 3.96s (± 0.69%) 3.94s (± 0.47%) ~ 3.92s 3.97s p=0.254 n=6
Bind Time 1.05s (± 1.16%) 1.04s (± 0.50%) ~ 1.03s 1.04s p=0.070 n=6
Check Time 19.27s (± 0.66%) 19.12s (± 0.58%) ~ 18.97s 19.31s p=0.066 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 24.28s (± 0.57%) 24.09s (± 0.47%) -0.18s (- 0.76%) 23.94s 24.28s p=0.025 n=6
xstate - node (v14.15.1, x64)
Memory used 534,870k (± 0.01%) 534,868k (± 0.01%) ~ 534,810k 534,939k p=0.936 n=6
Parse Time 5.18s (± 1.06%) 5.15s (± 1.03%) ~ 5.08s 5.24s p=0.517 n=6
Bind Time 1.73s (± 0.57%) 1.72s (± 0.57%) ~ 1.71s 1.74s p=0.242 n=6
Check Time 3.15s (± 0.55%) 3.14s (± 0.52%) ~ 3.11s 3.16s p=0.317 n=6
Emit Time 0.10s (± 0.00%) 0.10s (± 0.00%) ~ 0.10s 0.10s p=1.000 n=6
Total Time 10.16s (± 0.46%) 10.10s (± 0.59%) ~ 10.03s 10.21s p=0.092 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 52016 6
Baseline main 6

TSServer

Comparison Report - main..52016
Metric main 52016 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,536ms (± 1.27%) 2,525ms (± 1.89%) ~ 2,487ms 2,606ms p=0.575 n=6
Req 2 - geterr 5,569ms (± 0.63%) 5,584ms (± 0.47%) ~ 5,548ms 5,621ms p=0.471 n=6
Req 3 - references 373ms (± 1.17%) 375ms (± 0.64%) ~ 371ms 377ms p=0.567 n=6
Req 4 - navto 282ms (± 0.32%) 283ms (± 0.41%) ~ 282ms 285ms p=0.114 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 64ms (± 1.88%) 65ms (± 1.85%) ~ 64ms 67ms p=0.219 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,738ms (± 1.76%) 2,722ms (± 1.29%) ~ 2,687ms 2,789ms p=0.810 n=6
Req 2 - geterr 4,049ms (± 0.27%) 4,060ms (± 0.44%) ~ 4,042ms 4,091ms p=0.261 n=6
Req 3 - references 367ms (± 0.44%) 368ms (± 0.60%) ~ 365ms 371ms p=0.515 n=6
Req 4 - navto 297ms (± 0.60%) 298ms (± 0.93%) ~ 294ms 301ms p=0.466 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 (± 2.49%) 82ms (± 2.60%) ~ 78ms 84ms p=0.560 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,494ms (± 0.38%) 3,506ms (± 0.65%) ~ 3,469ms 3,529ms p=0.297 n=6
Req 2 - geterr 1,643ms (± 0.76%) 1,654ms (± 0.68%) ~ 1,634ms 1,664ms p=0.077 n=6
Req 3 - references 102ms (± 1.48%) 105ms (± 1.88%) +3ms (+ 2.95%) 102ms 107ms p=0.029 n=6
Req 4 - navto 355ms (± 0.56%) 358ms (± 0.58%) ~ 355ms 360ms p=0.062 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 469ms (± 1.95%) 474ms (± 1.55%) ~ 459ms 478ms p=0.520 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,784ms (± 0.61%) 2,777ms (± 0.69%) ~ 2,749ms 2,798ms p=0.687 n=6
Req 2 - geterr 5,922ms (± 0.54%) 5,924ms (± 0.47%) ~ 5,886ms 5,968ms p=1.000 n=6
Req 3 - references 378ms (± 0.33%) 380ms (± 0.60%) ~ 378ms 384ms p=0.087 n=6
Req 4 - navto 278ms (± 1.71%) 277ms (± 0.67%) ~ 276ms 281ms p=0.796 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 71ms (± 1.46%) 71ms (± 3.25%) ~ 68ms 75ms p=0.803 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,923ms (± 0.57%) 2,931ms (± 0.53%) ~ 2,912ms 2,956ms p=0.471 n=6
Req 2 - geterr 4,410ms (± 0.30%) 4,411ms (± 0.41%) ~ 4,382ms 4,435ms p=1.000 n=6
Req 3 - references 379ms (± 0.46%) 381ms (± 1.31%) ~ 375ms 387ms p=0.518 n=6
Req 4 - navto 287ms (± 0.36%) 288ms (± 0.52%) ~ 286ms 289ms p=0.802 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 (±10.73%) 72ms (± 3.23%) ~ 71ms 77ms p=1.000 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,623ms (± 0.17%) 3,627ms (± 0.29%) ~ 3,610ms 3,641ms p=0.378 n=6
Req 2 - geterr 1,815ms (± 1.35%) 1,813ms (± 0.97%) ~ 1,789ms 1,841ms p=0.810 n=6
Req 3 - references 113ms (± 1.66%) 112ms (± 2.33%) ~ 108ms 115ms p=0.872 n=6
Req 4 - navto 345ms (± 0.63%) 344ms (± 1.00%) ~ 340ms 348ms p=0.685 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 483ms (± 0.86%) 482ms (± 1.05%) ~ 475ms 487ms p=0.747 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,907ms (± 0.51%) 2,917ms (± 0.56%) ~ 2,893ms 2,941ms p=0.378 n=6
Req 2 - geterr 6,304ms (± 0.78%) 6,330ms (± 1.01%) ~ 6,226ms 6,395ms p=0.378 n=6
Req 3 - references 390ms (± 0.44%) 392ms (± 0.42%) ~ 389ms 393ms p=0.164 n=6
Req 4 - navto 280ms (± 1.00%) 283ms (± 1.81%) ~ 278ms 292ms p=0.168 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 (± 8.01%) 87ms (±10.43%) ~ 73ms 97ms p=0.422 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,069ms (± 0.32%) 3,087ms (± 1.20%) ~ 3,058ms 3,152ms p=0.630 n=6
Req 2 - geterr 4,726ms (± 0.41%) 4,725ms (± 0.59%) ~ 4,687ms 4,760ms p=1.000 n=6
Req 3 - references 409ms (± 1.11%) 412ms (± 1.46%) ~ 406ms 423ms p=0.747 n=6
Req 4 - navto 295ms (± 0.45%) 296ms (± 0.62%) ~ 294ms 299ms p=0.452 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 83ms (± 4.69%) 84ms (± 4.35%) ~ 81ms 88ms p=0.445 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,983ms (± 0.64%) 3,957ms (± 0.32%) -26ms (- 0.66%) 3,936ms 3,973ms p=0.045 n=6
Req 2 - geterr 1,793ms (± 0.77%) 1,782ms (± 1.38%) ~ 1,757ms 1,819ms p=0.378 n=6
Req 3 - references 130ms (± 2.22%) 131ms (± 2.31%) ~ 126ms 135ms p=0.687 n=6
Req 4 - navto 375ms (± 0.43%) 374ms (± 0.17%) ~ 373ms 375ms p=0.179 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 499ms (± 1.38%) 494ms (± 1.40%) ~ 484ms 502ms p=0.377 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 52016 6
Baseline main 6

Startup

Comparison Report - main..52016
Metric main 52016 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 142.21ms (± 0.17%) 142.33ms (± 0.19%) +0.12ms (+ 0.08%) 141.63ms 145.63ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 227.28ms (± 0.23%) 226.72ms (± 0.14%) -0.56ms (- 0.25%) 225.84ms 229.44ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 230.60ms (± 0.39%) 228.54ms (± 0.14%) -2.06ms (- 0.89%) 227.62ms 232.82ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 209.54ms (± 0.18%) 209.45ms (± 0.16%) -0.09ms (- 0.04%) 208.66ms 216.68ms 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 52016 6
Baseline main 6

Developer Information:

Download Benchmark

@typescript-bot
Copy link
Collaborator

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

Everything looks good!

@RyanCavanaugh RyanCavanaugh merged commit c9b5f2b into microsoft:main Feb 4, 2023
@typescript-bot
Copy link
Collaborator

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

Everything looks good!

@Andarist Andarist deleted the fix/51953 branch February 4, 2023 07:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
For Milestone Bug PRs that fix a bug with a specific milestone
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Error with is assertion when using exactOptionalPropertyTypes and indexed fields from another interface
5 participants