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

Always substitute indexed generic mapped type when getting constraint from indexed access #53066

Conversation

Andarist
Copy link
Contributor

@Andarist Andarist commented Mar 2, 2023

fixes #50030

@typescript-bot typescript-bot added the For Milestone Bug PRs that fix a bug with a specific milestone label Mar 2, 2023
@@ -13512,7 +13512,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}

function getConstraintFromIndexedAccess(type: IndexedAccessType) {
if (isMappedTypeGenericIndexedAccess(type)) {
if (isMappedTypeGenericIndexedAccess(type) || isGenericMappedType(type.objectType)) {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

If the indexed access is allowed - then I think it's always safe to substitute as when the indexType is invalid then the error is reported elsewhere anyway.

@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 extended test suite on this PR at 20c9d3a. 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 parallelized Definitely Typed test suite on this PR at 20c9d3a. 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 20c9d3a. 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 diff-based top-repos suite on this PR at 20c9d3a. 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/53066/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..53066
Metric main 53066 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 361,726k (± 0.01%) 361,720k (± 0.00%) ~ 361,693k 361,743k p=0.689 n=6
Parse Time 3.40s (± 0.60%) 3.40s (± 0.52%) ~ 3.37s 3.41s p=0.677 n=6
Bind Time 1.11s (± 0.75%) 1.11s (± 0.46%) ~ 1.11s 1.12s p=0.923 n=6
Check Time 8.75s (± 0.33%) 8.71s (± 0.62%) ~ 8.61s 8.77s p=0.195 n=6
Emit Time 7.53s (± 0.58%) 7.47s (± 0.71%) ~ 7.41s 7.54s p=0.149 n=6
Total Time 20.80s (± 0.33%) 20.69s (± 0.49%) ~ 20.55s 20.81s p=0.090 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 192,747k (± 1.53%) 193,647k (± 1.61%) ~ 190,745k 196,670k p=0.936 n=6
Parse Time 1.51s (± 0.77%) 1.50s (± 0.50%) ~ 1.49s 1.51s p=0.150 n=6
Bind Time 0.77s (± 0.82%) 0.78s (± 0.71%) ~ 0.77s 0.78s p=0.201 n=6
Check Time 9.48s (± 0.84%) 9.44s (± 0.77%) ~ 9.31s 9.50s p=0.171 n=6
Emit Time 2.74s (± 0.55%) 2.74s (± 0.84%) ~ 2.71s 2.77s p=1.000 n=6
Total Time 14.50s (± 0.54%) 14.46s (± 0.57%) ~ 14.30s 14.51s p=0.467 n=6
Monaco - node (v18.10.0, x64)
Memory used 346,261k (± 0.01%) 346,262k (± 0.01%) ~ 346,233k 346,311k p=0.689 n=6
Parse Time 2.61s (± 0.83%) 2.60s (± 0.92%) ~ 2.56s 2.62s p=0.746 n=6
Bind Time 1.01s (± 1.20%) 1.01s (± 0.88%) ~ 1.00s 1.02s p=0.676 n=6
Check Time 7.07s (± 0.38%) 7.03s (± 0.47%) -0.05s (- 0.68%) 6.98s 7.07s p=0.030 n=6
Emit Time 4.28s (± 0.59%) 4.28s (± 1.03%) ~ 4.22s 4.33s p=0.686 n=6
Total Time 14.97s (± 0.21%) 14.91s (± 0.62%) ~ 14.77s 15.02s p=0.376 n=6
TFS - node (v18.10.0, x64)
Memory used 300,455k (± 0.01%) 300,466k (± 0.01%) ~ 300,419k 300,499k p=0.810 n=6
Parse Time 2.08s (± 0.66%) 2.05s (± 1.10%) -0.03s (- 1.44%) 2.01s 2.07s p=0.027 n=6
Bind Time 1.14s (± 0.92%) 1.14s (± 0.55%) ~ 1.13s 1.15s p=0.388 n=6
Check Time 6.53s (± 0.38%) 6.50s (± 0.75%) ~ 6.43s 6.57s p=0.168 n=6
Emit Time 3.87s (± 0.83%) 3.86s (± 0.85%) ~ 3.81s 3.89s p=0.747 n=6
Total Time 13.62s (± 0.27%) 13.54s (± 0.60%) ~ 13.43s 13.66s p=0.065 n=6
material-ui - node (v18.10.0, x64)
Memory used 477,126k (± 0.01%) 477,080k (± 0.01%) ~ 477,043k 477,125k p=0.078 n=6
Parse Time 2.96s (± 2.11%) 3.06s (± 2.43%) ~ 2.93s 3.13s p=0.106 n=6
Bind Time 1.05s (± 7.17%) 0.96s (± 8.31%) ~ 0.89s 1.08s p=0.088 n=6
Check Time 16.91s (± 0.65%) 17.02s (± 1.13%) ~ 16.75s 17.27s p=0.378 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.92s (± 0.58%) 21.03s (± 0.88%) ~ 20.77s 21.27s p=0.199 n=6
xstate - node (v18.10.0, x64)
Memory used 552,897k (± 0.01%) 553,034k (± 0.02%) +137k (+ 0.02%) 552,919k 553,152k p=0.031 n=6
Parse Time 3.78s (± 0.61%) 3.77s (± 0.35%) ~ 3.75s 3.79s p=0.251 n=6
Bind Time 1.71s (± 0.52%) 1.68s (± 0.61%) -0.03s (- 1.56%) 1.67s 1.70s p=0.007 n=6
Check Time 2.78s (± 0.78%) 2.82s (± 0.48%) +0.05s (+ 1.68%) 2.80s 2.84s p=0.008 n=6
Emit Time 0.08s (± 6.19%) 0.08s (± 4.99%) ~ 0.08s 0.09s p=0.752 n=6
Total Time 8.36s (± 0.35%) 8.36s (± 0.22%) ~ 8.34s 8.39s p=0.808 n=6
Angular - node (v16.17.1, x64)
Memory used 361,031k (± 0.01%) 361,024k (± 0.01%) ~ 360,984k 361,071k p=0.810 n=6
Parse Time 3.53s (± 0.68%) 3.51s (± 0.48%) ~ 3.49s 3.53s p=0.061 n=6
Bind Time 1.18s (± 0.46%) 1.18s (± 1.15%) ~ 1.16s 1.20s p=1.000 n=6
Check Time 9.51s (± 0.52%) 9.47s (± 0.45%) ~ 9.41s 9.53s p=0.172 n=6
Emit Time 7.94s (± 0.78%) 7.90s (± 0.44%) ~ 7.86s 7.96s p=0.199 n=6
Total Time 22.17s (± 0.46%) 22.06s (± 0.31%) ~ 21.98s 22.17s p=0.092 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 193,530k (± 0.78%) 193,122k (± 0.76%) ~ 192,422k 196,115k p=0.378 n=6
Parse Time 1.60s (± 1.45%) 1.57s (± 2.24%) ~ 1.50s 1.59s p=0.123 n=6
Bind Time 0.83s (± 0.66%) 0.82s (± 0.63%) ~ 0.82s 0.83s p=0.640 n=6
Check Time 10.22s (± 0.72%) 10.07s (± 0.47%) -0.16s (- 1.53%) 9.98s 10.11s p=0.006 n=6
Emit Time 2.99s (± 0.70%) 2.99s (± 0.69%) ~ 2.95s 3.01s p=1.000 n=6
Total Time 15.63s (± 0.35%) 15.44s (± 0.51%) -0.19s (- 1.22%) 15.30s 15.54s p=0.006 n=6
Monaco - node (v16.17.1, x64)
Memory used 345,555k (± 0.00%) 345,555k (± 0.01%) ~ 345,534k 345,590k p=0.936 n=6
Parse Time 2.73s (± 0.44%) 2.73s (± 0.60%) ~ 2.71s 2.75s p=0.933 n=6
Bind Time 1.09s (± 0.37%) 1.09s (± 0.37%) ~ 1.08s 1.09s p=1.000 n=6
Check Time 7.76s (± 0.39%) 7.70s (± 0.22%) -0.06s (- 0.73%) 7.68s 7.73s p=0.007 n=6
Emit Time 4.50s (± 0.71%) 4.47s (± 0.63%) ~ 4.45s 4.53s p=0.060 n=6
Total Time 16.08s (± 0.27%) 16.00s (± 0.17%) -0.08s (- 0.50%) 15.97s 16.03s p=0.013 n=6
TFS - node (v16.17.1, x64)
Memory used 299,792k (± 0.01%) 299,797k (± 0.01%) ~ 299,748k 299,847k p=0.689 n=6
Parse Time 2.17s (± 0.48%) 2.17s (± 0.48%) ~ 2.16s 2.18s p=0.203 n=6
Bind Time 1.25s (± 0.67%) 1.24s (± 0.83%) ~ 1.23s 1.25s p=1.000 n=6
Check Time 7.19s (± 0.38%) 7.16s (± 0.57%) ~ 7.11s 7.21s p=0.169 n=6
Emit Time 4.35s (± 0.53%) 4.33s (± 0.68%) ~ 4.31s 4.39s p=0.253 n=6
Total Time 14.95s (± 0.38%) 14.90s (± 0.45%) ~ 14.85s 15.03s p=0.226 n=6
material-ui - node (v16.17.1, x64)
Memory used 476,397k (± 0.01%) 476,378k (± 0.00%) ~ 476,352k 476,410k p=0.630 n=6
Parse Time 3.22s (± 0.23%) 3.22s (± 0.17%) ~ 3.21s 3.22s p=0.476 n=6
Bind Time 0.96s (± 0.66%) 0.96s (± 0.54%) ~ 0.95s 0.96s p=0.386 n=6
Check Time 17.93s (± 0.41%) 17.91s (± 0.72%) ~ 17.80s 18.15s p=0.520 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.11s (± 0.37%) 22.09s (± 0.61%) ~ 21.96s 22.33s p=0.575 n=6
xstate - node (v16.17.1, x64)
Memory used 550,565k (± 0.01%) 550,653k (± 0.02%) ~ 550,532k 550,783k p=0.093 n=6
Parse Time 3.96s (± 0.49%) 3.95s (± 0.26%) ~ 3.94s 3.97s p=0.517 n=6
Bind Time 1.80s (± 0.76%) 1.80s (± 0.55%) ~ 1.78s 1.81s p=0.388 n=6
Check Time 3.01s (± 0.75%) 3.01s (± 0.34%) ~ 3.00s 3.03s p=0.145 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 8.86s (± 0.30%) 8.86s (± 0.25%) ~ 8.84s 8.90s p=1.000 n=6
Angular - node (v14.15.1, x64)
Memory used 354,924k (± 0.01%) 354,914k (± 0.01%) ~ 354,879k 354,954k p=0.689 n=6
Parse Time 3.63s (± 0.44%) 3.60s (± 0.49%) -0.03s (- 0.92%) 3.57s 3.61s p=0.019 n=6
Bind Time 1.23s (± 0.61%) 1.23s (± 0.73%) ~ 1.22s 1.24s p=0.798 n=6
Check Time 9.81s (± 0.32%) 9.79s (± 0.25%) ~ 9.77s 9.83s p=0.293 n=6
Emit Time 8.43s (± 0.77%) 8.35s (± 0.56%) ~ 8.29s 8.41s p=0.054 n=6
Total Time 23.10s (± 0.40%) 22.97s (± 0.25%) -0.13s (- 0.58%) 22.87s 23.05s p=0.016 n=6
Compiler-Unions - node (v14.15.1, x64)
Memory used 187,799k (± 0.01%) 187,801k (± 0.02%) ~ 187,762k 187,853k p=0.936 n=6
Parse Time 1.61s (± 0.88%) 1.60s (± 1.02%) ~ 1.58s 1.62s p=0.194 n=6
Bind Time 0.85s (± 0.96%) 0.85s (± 0.74%) ~ 0.84s 0.86s p=0.432 n=6
Check Time 10.27s (± 0.17%) 10.21s (± 0.34%) -0.07s (- 0.67%) 10.15s 10.24s p=0.005 n=6
Emit Time 3.14s (± 1.78%) 3.12s (± 0.72%) ~ 3.09s 3.15s p=0.373 n=6
Total Time 15.87s (± 0.35%) 15.77s (± 0.41%) -0.11s (- 0.67%) 15.66s 15.85s p=0.020 n=6
Monaco - node (v14.15.1, x64)
Memory used 340,539k (± 0.01%) 340,547k (± 0.00%) ~ 340,519k 340,567k p=0.229 n=6
Parse Time 2.84s (± 0.91%) 2.83s (± 0.75%) ~ 2.81s 2.87s p=0.809 n=6
Bind Time 1.11s (± 0.93%) 1.10s (± 0.68%) ~ 1.09s 1.11s p=0.351 n=6
Check Time 8.12s (± 0.49%) 8.07s (± 0.39%) ~ 8.03s 8.11s p=0.053 n=6
Emit Time 4.69s (± 0.57%) 4.70s (± 0.86%) ~ 4.65s 4.76s p=0.746 n=6
Total Time 16.75s (± 0.44%) 16.70s (± 0.37%) ~ 16.61s 16.77s p=0.422 n=6
TFS - node (v14.15.1, x64)
Memory used 294,892k (± 0.01%) 294,896k (± 0.00%) ~ 294,884k 294,905k p=0.688 n=6
Parse Time 2.41s (± 0.57%) 2.40s (± 0.78%) ~ 2.37s 2.42s p=0.618 n=6
Bind Time 1.07s (± 0.38%) 1.07s (± 0.70%) ~ 1.06s 1.08s p=1.000 n=6
Check Time 7.53s (± 0.71%) 7.47s (± 0.60%) -0.06s (- 0.84%) 7.39s 7.52s p=0.045 n=6
Emit Time 4.30s (± 0.99%) 4.30s (± 0.70%) ~ 4.26s 4.34s p=1.000 n=6
Total Time 15.30s (± 0.38%) 15.23s (± 0.55%) ~ 15.11s 15.33s p=0.128 n=6
material-ui - node (v14.15.1, x64)
Memory used 471,983k (± 0.00%) 471,986k (± 0.00%) ~ 471,962k 472,001k p=0.521 n=6
Parse Time 3.38s (± 0.39%) 3.36s (± 0.49%) -0.02s (- 0.69%) 3.33s 3.38s p=0.027 n=6
Bind Time 1.00s (± 0.75%) 1.01s (± 0.74%) ~ 1.00s 1.02s p=0.062 n=6
Check Time 18.96s (± 0.61%) 18.95s (± 0.95%) ~ 18.76s 19.17s 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 23.34s (± 0.53%) 23.32s (± 0.72%) ~ 23.14s 23.53s p=0.873 n=6
xstate - node (v14.15.1, x64)
Memory used 539,157k (± 0.00%) 539,097k (± 0.00%) -60k (- 0.01%) 539,062k 539,138k p=0.013 n=6
Parse Time 4.23s (± 0.25%) 4.22s (± 0.61%) ~ 4.19s 4.26s p=1.000 n=6
Bind Time 1.67s (± 0.45%) 1.66s (± 0.45%) ~ 1.65s 1.67s p=0.062 n=6
Check Time 3.14s (± 0.66%) 3.18s (± 0.51%) +0.05s (+ 1.49%) 3.16s 3.21s p=0.008 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 9.13s (± 0.29%) 9.15s (± 0.46%) ~ 9.09s 9.20s p=0.295 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 53066 6
Baseline main 6

TSServer

Comparison Report - main..53066
Metric main 53066 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,400ms (± 0.53%) 2,375ms (± 0.24%) -25ms (- 1.04%) 2,366ms 2,381ms p=0.005 n=6
Req 2 - geterr 5,399ms (± 0.49%) 5,376ms (± 0.72%) ~ 5,335ms 5,445ms p=0.261 n=6
Req 3 - references 338ms (± 1.00%) 336ms (± 0.31%) ~ 334ms 337ms p=0.142 n=6
Req 4 - navto 282ms (± 0.54%) 280ms (± 0.35%) ~ 279ms 282ms p=0.102 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 (± 6.28%) 81ms (± 3.40%) +7ms (+ 9.28%) 78ms 83ms p=0.015 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,529ms (± 1.17%) 2,523ms (± 0.82%) ~ 2,502ms 2,556ms p=0.423 n=6
Req 2 - geterr 4,050ms (± 0.96%) 4,019ms (± 0.69%) ~ 3,984ms 4,055ms p=0.230 n=6
Req 3 - references 351ms (± 0.94%) 350ms (± 1.20%) ~ 342ms 354ms p=0.625 n=6
Req 4 - navto 294ms (± 0.79%) 293ms (± 0.86%) ~ 290ms 297ms p=0.627 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 78ms (± 6.25%) 80ms (± 7.28%) ~ 69ms 84ms p=0.280 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,028ms (± 0.45%) 3,035ms (± 0.56%) ~ 3,019ms 3,060ms p=0.471 n=6
Req 2 - geterr 1,559ms (± 0.87%) 1,592ms (± 0.85%) +33ms (+ 2.12%) 1,569ms 1,610ms p=0.008 n=6
Req 3 - references 107ms (± 0.70%) 108ms (± 1.94%) ~ 106ms 112ms p=0.611 n=6
Req 4 - navto 356ms (± 0.56%) 360ms (± 2.19%) ~ 356ms 376ms p=0.244 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 385ms (± 0.39%) 382ms (± 2.27%) ~ 369ms 390ms p=1.000 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,507ms (± 0.98%) 2,508ms (± 0.55%) ~ 2,490ms 2,528ms p=0.809 n=6
Req 2 - geterr 5,793ms (± 0.59%) 5,767ms (± 0.60%) ~ 5,720ms 5,819ms p=0.378 n=6
Req 3 - references 351ms (± 0.75%) 347ms (± 1.20%) ~ 343ms 353ms p=0.288 n=6
Req 4 - navto 279ms (± 1.55%) 279ms (± 1.38%) ~ 273ms 282ms 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 74ms (± 0.55%) 75ms (± 4.04%) ~ 73ms 81ms p=0.787 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,691ms (± 0.94%) 2,691ms (± 0.89%) ~ 2,671ms 2,735ms p=1.000 n=6
Req 2 - geterr 4,398ms (± 0.28%) 4,372ms (± 0.30%) -26ms (- 0.59%) 4,356ms 4,390ms p=0.013 n=6
Req 3 - references 358ms (± 0.33%) 360ms (± 0.42%) ~ 357ms 361ms p=0.071 n=6
Req 4 - navto 291ms (± 0.42%) 291ms (± 0.68%) ~ 288ms 293ms p=0.864 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 77ms (± 2.17%) 74ms (± 4.92%) ~ 68ms 77ms p=0.073 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,170ms (± 0.69%) 3,175ms (± 0.31%) ~ 3,165ms 3,190ms p=0.575 n=6
Req 2 - geterr 1,743ms (± 1.51%) 1,766ms (± 1.76%) ~ 1,733ms 1,819ms p=0.298 n=6
Req 3 - references 114ms (± 1.32%) 117ms (± 0.64%) +3ms (+ 2.19%) 116ms 118ms p=0.022 n=6
Req 4 - navto 342ms (± 0.55%) 341ms (± 0.44%) ~ 339ms 343ms p=0.461 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 394ms (± 1.15%) 396ms (± 1.14%) ~ 388ms 401ms p=0.466 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,621ms (± 0.67%) 2,589ms (± 0.48%) -32ms (- 1.21%) 2,573ms 2,600ms p=0.031 n=6
Req 2 - geterr 6,203ms (± 0.41%) 6,162ms (± 0.87%) ~ 6,104ms 6,255ms p=0.093 n=6
Req 3 - references 366ms (± 0.40%) 365ms (± 0.56%) ~ 362ms 367ms p=0.453 n=6
Req 4 - navto 278ms (± 0.43%) 279ms (± 1.37%) ~ 275ms 286ms p=0.622 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.07%) 99ms (± 4.70%) ~ 90ms 102ms p=0.120 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,848ms (± 0.85%) 2,824ms (± 0.39%) ~ 2,812ms 2,837ms p=0.092 n=6
Req 2 - geterr 4,576ms (± 2.46%) 4,497ms (± 1.81%) -80ms (- 1.74%) 4,436ms 4,659ms p=0.045 n=6
Req 3 - references 394ms (± 7.36%) 411ms (± 6.51%) ~ 371ms 430ms p=0.573 n=6
Req 4 - navto 291ms (± 1.83%) 291ms (± 1.42%) ~ 286ms 296ms 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 84ms (±12.51%) 84ms (± 8.60%) ~ 74ms 93ms p=1.000 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,461ms (± 0.44%) 3,464ms (± 0.76%) ~ 3,439ms 3,514ms p=0.936 n=6
Req 2 - geterr 1,873ms (± 0.88%) 1,903ms (± 0.48%) +30ms (+ 1.58%) 1,888ms 1,914ms p=0.013 n=6
Req 3 - references 128ms (± 1.38%) 126ms (± 1.10%) ~ 124ms 128ms p=0.071 n=6
Req 4 - navto 371ms (± 0.37%) 371ms (± 0.58%) ~ 368ms 373ms p=0.625 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 (± 1.35%) 413ms (± 0.72%) ~ 409ms 416ms p=0.629 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 53066 6
Baseline main 6

Startup

Comparison Report - main..53066
Metric main 53066 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 141.42ms (± 0.20%) 140.83ms (± 0.15%) -0.59ms (- 0.42%) 140.24ms 143.34ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 226.36ms (± 0.20%) 225.54ms (± 0.18%) -0.82ms (- 0.36%) 224.28ms 229.57ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 228.77ms (± 0.26%) 227.33ms (± 0.20%) -1.44ms (- 0.63%) 226.31ms 239.50ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 210.31ms (± 0.33%) 208.21ms (± 0.18%) -2.10ms (- 1.00%) 207.29ms 217.10ms 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 53066 6
Baseline main 6

Developer Information:

Download Benchmark

@weswigham weswigham merged commit abb4052 into microsoft:main Mar 21, 2023
@Andarist Andarist deleted the fix/generic-mapped-type-substitution-indexed-access branch September 1, 2023 17:00
@ahejlsberg
Copy link
Member

ahejlsberg commented Jan 28, 2024

@Andarist @weswigham Stumbled on this PR that I hadn't seen before. Something is not right here:

type Remap<K extends string> = {
    [P in K as `_${P}`]: P;
};

type Key = "foo" | "bar" | "baz";

function qq1<K extends string>(obj: Remap<K>, key: keyof Remap<K>) {
    let s: `_${string}` = obj[key];  // Error expected here
}

function qq2(obj: Remap<Key>, key: keyof Remap<Key>) {
    let s: `_${string}` = obj[key];  // Error (as expected)
}

I think your comment here is really only true when the name type isn't a remapping.

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.

Generic template literal index does not resolve value type
4 participants