Skip to content

Fix narrowing of intersections of type variables and primitive types - #43131

Merged
Anders Hejlsberg (ahejlsberg) merged 2 commits into
masterfrom
fix43130
Mar 18, 2021
Merged

Fix narrowing of intersections of type variables and primitive types#43131
Anders Hejlsberg (ahejlsberg) merged 2 commits into
masterfrom
fix43130

Conversation

@ahejlsberg

Copy link
Copy Markdown
Member

Fixes #43130.

@ahejlsberg

Copy link
Copy Markdown
Member Author

@typescript-bot

TypeScript Bot (typescript-bot) commented Mar 8, 2021

Copy link
Copy Markdown
Contributor

Heya Anders Hejlsberg (@ahejlsberg), I've started to run the perf test suite on this PR at 5a8a0bb. You can monitor the build here.

Update: The results are in!

@typescript-bot

TypeScript Bot (typescript-bot) commented Mar 8, 2021

Copy link
Copy Markdown
Contributor

Heya Anders Hejlsberg (@ahejlsberg), I've started to run the extended test suite on this PR at 5a8a0bb. You can monitor the build here.

@typescript-bot

TypeScript Bot (typescript-bot) commented Mar 8, 2021

Copy link
Copy Markdown
Contributor

Heya Anders Hejlsberg (@ahejlsberg), I've started to run the parallelized community code test suite on this PR at 5a8a0bb. You can monitor the build here.

@typescript-bot

TypeScript Bot (typescript-bot) commented Mar 8, 2021

Copy link
Copy Markdown
Contributor

Heya Anders Hejlsberg (@ahejlsberg), I've started to run the parallelized Definitely Typed test suite on this PR at 5a8a0bb. You can monitor the build here.

@typescript-bot

TypeScript Bot (typescript-bot) commented Mar 8, 2021

Copy link
Copy Markdown
Contributor

Heya Anders Hejlsberg (@ahejlsberg), I've started to run the abridged perf test suite on this PR at 5a8a0bb. You can monitor the build here.

Update: The results are in!

@typescript-bot

Copy link
Copy Markdown
Contributor

Anders Hejlsberg (@ahejlsberg)
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..43131

Metric master 43131 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 348,551k (± 0.03%) 348,531k (± 0.02%) -19k (- 0.01%) 348,438k 348,646k
Parse Time 1.91s (± 0.82%) 1.93s (± 0.66%) +0.02s (+ 0.78%) 1.90s 1.96s
Bind Time 0.83s (± 0.87%) 0.83s (± 0.72%) +0.00s (+ 0.36%) 0.82s 0.85s
Check Time 5.02s (± 0.78%) 5.04s (± 0.60%) +0.01s (+ 0.28%) 4.97s 5.11s
Emit Time 5.92s (± 0.92%) 5.96s (± 0.65%) +0.04s (+ 0.64%) 5.88s 6.03s
Total Time 13.69s (± 0.74%) 13.77s (± 0.42%) +0.08s (+ 0.57%) 13.62s 13.92s
Compiler-Unions - node (v10.16.3, x64)
Memory used 204,765k (± 0.03%) 204,811k (± 0.05%) +47k (+ 0.02%) 204,647k 205,131k
Parse Time 0.78s (± 0.60%) 0.78s (± 0.75%) -0.00s (- 0.38%) 0.77s 0.79s
Bind Time 0.52s (± 1.56%) 0.52s (± 1.24%) -0.00s (- 0.19%) 0.51s 0.53s
Check Time 7.42s (± 0.80%) 7.45s (± 0.66%) +0.03s (+ 0.44%) 7.33s 7.54s
Emit Time 2.59s (± 0.75%) 2.59s (± 1.18%) -0.00s (- 0.04%) 2.54s 2.70s
Total Time 11.31s (± 0.62%) 11.34s (± 0.48%) +0.03s (+ 0.23%) 11.19s 11.42s
Monaco - node (v10.16.3, x64)
Memory used 356,591k (± 0.02%) 356,608k (± 0.03%) +18k (+ 0.00%) 356,456k 356,973k
Parse Time 1.56s (± 0.81%) 1.55s (± 0.44%) -0.01s (- 0.83%) 1.53s 1.56s
Bind Time 0.73s (± 0.46%) 0.74s (± 0.79%) +0.00s (+ 0.55%) 0.73s 0.75s
Check Time 5.21s (± 0.67%) 5.20s (± 0.52%) -0.01s (- 0.17%) 5.13s 5.25s
Emit Time 3.14s (± 0.83%) 3.15s (± 1.02%) +0.00s (+ 0.13%) 3.10s 3.25s
Total Time 10.64s (± 0.53%) 10.63s (± 0.50%) -0.02s (- 0.14%) 10.52s 10.77s
TFS - node (v10.16.3, x64)
Memory used 308,906k (± 0.02%) 308,937k (± 0.01%) +32k (+ 0.01%) 308,836k 309,017k
Parse Time 1.21s (± 0.80%) 1.21s (± 0.63%) -0.01s (- 0.41%) 1.19s 1.22s
Bind Time 0.69s (± 0.52%) 0.70s (± 0.72%) +0.00s (+ 0.14%) 0.69s 0.71s
Check Time 4.69s (± 0.79%) 4.70s (± 0.67%) +0.01s (+ 0.21%) 4.64s 4.78s
Emit Time 3.26s (± 0.74%) 3.23s (± 1.88%) -0.02s (- 0.77%) 3.10s 3.35s
Total Time 9.85s (± 0.66%) 9.84s (± 0.67%) -0.01s (- 0.15%) 9.70s 9.97s
material-ui - node (v10.16.3, x64)
Memory used 501,596k (± 0.02%) 501,603k (± 0.02%) +7k (+ 0.00%) 501,397k 501,763k
Parse Time 1.99s (± 0.72%) 2.00s (± 0.86%) +0.01s (+ 0.45%) 1.95s 2.03s
Bind Time 0.66s (± 0.68%) 0.64s (± 0.96%) -0.02s (- 2.58%) 0.63s 0.65s
Check Time 14.22s (± 0.49%) 14.30s (± 0.97%) +0.08s (+ 0.60%) 13.96s 14.54s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.87s (± 0.44%) 16.94s (± 0.91%) +0.07s (+ 0.44%) 16.56s 17.22s
Angular - node (v12.1.0, x64)
Memory used 326,193k (± 0.01%) 326,275k (± 0.04%) +82k (+ 0.03%) 325,953k 326,513k
Parse Time 1.91s (± 0.65%) 1.91s (± 0.78%) -0.01s (- 0.42%) 1.87s 1.94s
Bind Time 0.81s (± 0.80%) 0.81s (± 0.76%) -0.00s (- 0.12%) 0.80s 0.82s
Check Time 4.93s (± 0.49%) 4.93s (± 0.53%) -0.00s (- 0.10%) 4.88s 4.98s
Emit Time 6.00s (± 0.88%) 6.04s (± 0.68%) +0.04s (+ 0.60%) 5.94s 6.15s
Total Time 13.66s (± 0.58%) 13.68s (± 0.47%) +0.02s (+ 0.17%) 13.51s 13.85s
Compiler-Unions - node (v12.1.0, x64)
Memory used 191,480k (± 0.03%) 191,305k (± 0.11%) -176k (- 0.09%) 190,528k 191,545k
Parse Time 0.77s (± 0.91%) 0.77s (± 0.87%) -0.00s (- 0.52%) 0.75s 0.78s
Bind Time 0.53s (± 0.94%) 0.53s (± 1.45%) -0.00s (- 0.19%) 0.51s 0.54s
Check Time 6.99s (± 0.64%) 6.97s (± 0.51%) -0.01s (- 0.21%) 6.92s 7.06s
Emit Time 2.57s (± 0.69%) 2.57s (± 0.82%) +0.01s (+ 0.23%) 2.53s 2.63s
Total Time 10.85s (± 0.56%) 10.84s (± 0.54%) -0.01s (- 0.12%) 10.73s 11.00s
Monaco - node (v12.1.0, x64)
Memory used 339,059k (± 0.02%) 339,091k (± 0.04%) +32k (+ 0.01%) 338,890k 339,490k
Parse Time 1.55s (± 0.60%) 1.53s (± 1.07%) -0.01s (- 0.90%) 1.49s 1.58s
Bind Time 0.72s (± 0.55%) 0.72s (± 0.92%) +0.00s (+ 0.28%) 0.71s 0.74s
Check Time 5.03s (± 0.37%) 5.02s (± 0.36%) -0.01s (- 0.20%) 4.99s 5.08s
Emit Time 3.12s (± 1.02%) 3.12s (± 0.43%) +0.00s (+ 0.03%) 3.10s 3.15s
Total Time 10.43s (± 0.45%) 10.40s (± 0.29%) -0.02s (- 0.23%) 10.32s 10.45s
TFS - node (v12.1.0, x64)
Memory used 293,126k (± 0.03%) 293,092k (± 0.02%) -34k (- 0.01%) 292,929k 293,186k
Parse Time 1.22s (± 0.56%) 1.22s (± 1.24%) -0.01s (- 0.49%) 1.19s 1.25s
Bind Time 0.68s (± 1.07%) 0.68s (± 0.85%) +0.00s (+ 0.15%) 0.67s 0.69s
Check Time 4.59s (± 0.38%) 4.59s (± 0.57%) +0.00s (+ 0.02%) 4.53s 4.66s
Emit Time 3.17s (± 0.70%) 3.16s (± 0.84%) -0.02s (- 0.47%) 3.11s 3.24s
Total Time 9.67s (± 0.41%) 9.65s (± 0.47%) -0.02s (- 0.17%) 9.53s 9.77s
material-ui - node (v12.1.0, x64)
Memory used 479,469k (± 0.02%) 479,315k (± 0.06%) -154k (- 0.03%) 478,434k 479,655k
Parse Time 2.00s (± 0.44%) 2.00s (± 0.56%) -0.00s (- 0.20%) 1.97s 2.02s
Bind Time 0.64s (± 0.62%) 0.64s (± 0.97%) -0.00s (- 0.31%) 0.63s 0.65s
Check Time 12.85s (± 0.57%) 12.85s (± 0.70%) +0.00s (+ 0.03%) 12.68s 13.05s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.49s (± 0.47%) 15.49s (± 0.55%) -0.00s (- 0.01%) 15.33s 15.65s
Angular - node (v14.15.1, x64)
Memory used 324,915k (± 0.01%) 324,809k (± 0.08%) -106k (- 0.03%) 323,699k 325,015k
Parse Time 1.90s (± 0.72%) 1.90s (± 0.76%) -0.00s (- 0.11%) 1.88s 1.94s
Bind Time 0.85s (± 1.17%) 0.85s (± 0.83%) -0.00s (- 0.47%) 0.84s 0.87s
Check Time 4.92s (± 0.32%) 4.92s (± 0.76%) +0.00s (+ 0.10%) 4.86s 5.05s
Emit Time 6.27s (± 0.54%) 6.27s (± 0.74%) -0.01s (- 0.10%) 6.19s 6.39s
Total Time 13.95s (± 0.34%) 13.94s (± 0.60%) -0.01s (- 0.07%) 13.83s 14.22s
Compiler-Unions - node (v14.15.1, x64)
Memory used 191,048k (± 0.02%) 191,057k (± 0.01%) +10k (+ 0.01%) 190,990k 191,103k
Parse Time 0.79s (± 0.43%) 0.80s (± 0.63%) +0.00s (+ 0.25%) 0.79s 0.81s
Bind Time 0.55s (± 0.67%) 0.55s (± 0.73%) -0.00s (- 0.72%) 0.54s 0.56s
Check Time 7.02s (± 0.88%) 7.04s (± 0.67%) +0.02s (+ 0.34%) 6.96s 7.15s
Emit Time 2.54s (± 0.97%) 2.55s (± 0.79%) +0.01s (+ 0.51%) 2.52s 2.61s
Total Time 10.90s (± 0.68%) 10.94s (± 0.52%) +0.04s (+ 0.33%) 10.84s 11.10s
Monaco - node (v14.15.1, x64)
Memory used 338,052k (± 0.01%) 338,065k (± 0.00%) +13k (+ 0.00%) 338,020k 338,091k
Parse Time 1.56s (± 0.67%) 1.56s (± 0.69%) -0.00s (- 0.26%) 1.53s 1.59s
Bind Time 0.75s (± 1.03%) 0.75s (± 0.30%) -0.00s (- 0.27%) 0.74s 0.75s
Check Time 4.96s (± 0.63%) 4.95s (± 0.49%) -0.01s (- 0.22%) 4.90s 5.02s
Emit Time 3.16s (± 1.14%) 3.15s (± 0.79%) -0.01s (- 0.22%) 3.11s 3.23s
Total Time 10.43s (± 0.61%) 10.41s (± 0.31%) -0.02s (- 0.19%) 10.35s 10.48s
TFS - node (v14.15.1, x64)
Memory used 292,246k (± 0.01%) 292,250k (± 0.01%) +4k (+ 0.00%) 292,187k 292,310k
Parse Time 1.25s (± 1.10%) 1.26s (± 0.78%) +0.00s (+ 0.24%) 1.24s 1.28s
Bind Time 0.72s (± 1.06%) 0.72s (± 0.95%) 0.00s ( 0.00%) 0.71s 0.74s
Check Time 4.59s (± 0.55%) 4.57s (± 0.56%) -0.02s (- 0.52%) 4.53s 4.64s
Emit Time 3.24s (± 0.60%) 3.25s (± 0.73%) +0.00s (+ 0.12%) 3.18s 3.29s
Total Time 9.81s (± 0.50%) 9.79s (± 0.39%) -0.02s (- 0.18%) 9.73s 9.89s
material-ui - node (v14.15.1, x64)
Memory used 477,948k (± 0.01%) 477,946k (± 0.00%) -2k (- 0.00%) 477,909k 477,981k
Parse Time 2.06s (± 0.67%) 2.05s (± 0.61%) -0.01s (- 0.39%) 2.03s 2.09s
Bind Time 0.70s (± 0.74%) 0.70s (± 0.80%) -0.00s (- 0.14%) 0.69s 0.71s
Check Time 12.95s (± 0.62%) 13.02s (± 0.54%) +0.07s (+ 0.56%) 12.86s 13.15s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.71s (± 0.55%) 15.77s (± 0.48%) +0.06s (+ 0.40%) 15.60s 15.91s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-198-generic
Architecturex64
Available Memory16 GB
Available Memory5 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v10.16.3, x64)
  • Compiler-Unions - node (v12.1.0, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v14.15.1, x64)
Benchmark Name Iterations
Current 43131 10
Baseline master 10

Developer Information:

Download Benchmark

@typescript-bot

Copy link
Copy Markdown
Contributor

Anders Hejlsberg (@ahejlsberg)
The results of the perf run you requested are in!

Here they are:

Comparison Report - master..43131

Metric master 43131 Delta Best Worst
Angular - node (v14.15.1, x64)
Memory used 324,915k (± 0.01%) 324,804k (± 0.07%) -112k (- 0.03%) 323,834k 324,971k
Parse Time 1.90s (± 0.72%) 1.90s (± 0.50%) +0.00s (+ 0.16%) 1.89s 1.93s
Bind Time 0.85s (± 1.17%) 0.85s (± 0.99%) -0.00s (- 0.23%) 0.84s 0.88s
Check Time 4.92s (± 0.32%) 4.92s (± 0.65%) +0.01s (+ 0.14%) 4.88s 5.03s
Emit Time 6.27s (± 0.54%) 6.29s (± 0.74%) +0.02s (+ 0.29%) 6.20s 6.45s
Total Time 13.95s (± 0.34%) 13.97s (± 0.55%) +0.02s (+ 0.16%) 13.84s 14.25s
Compiler-Unions - node (v14.15.1, x64)
Memory used 191,048k (± 0.02%) 191,063k (± 0.02%) +15k (+ 0.01%) 190,992k 191,151k
Parse Time 0.79s (± 0.43%) 0.79s (± 0.60%) 0.00s ( 0.00%) 0.78s 0.80s
Bind Time 0.55s (± 0.67%) 0.55s (± 0.73%) -0.00s (- 0.72%) 0.54s 0.56s
Check Time 7.02s (± 0.88%) 6.99s (± 0.52%) -0.03s (- 0.41%) 6.93s 7.07s
Emit Time 2.54s (± 0.97%) 2.53s (± 0.33%) -0.01s (- 0.47%) 2.51s 2.55s
Total Time 10.90s (± 0.68%) 10.86s (± 0.34%) -0.04s (- 0.40%) 10.79s 10.96s
Monaco - node (v14.15.1, x64)
Memory used 338,052k (± 0.01%) 338,058k (± 0.01%) +6k (+ 0.00%) 338,008k 338,111k
Parse Time 1.56s (± 0.67%) 1.55s (± 0.47%) -0.01s (- 0.70%) 1.54s 1.57s
Bind Time 0.75s (± 1.03%) 0.74s (± 0.66%) -0.01s (- 0.93%) 0.74s 0.76s
Check Time 4.96s (± 0.63%) 4.94s (± 0.42%) -0.03s (- 0.54%) 4.90s 4.98s
Emit Time 3.16s (± 1.14%) 3.15s (± 0.51%) -0.01s (- 0.44%) 3.11s 3.17s
Total Time 10.43s (± 0.61%) 10.38s (± 0.30%) -0.05s (- 0.53%) 10.31s 10.43s
TFS - node (v14.15.1, x64)
Memory used 292,246k (± 0.01%) 292,246k (± 0.01%) +0k (+ 0.00%) 292,221k 292,311k
Parse Time 1.25s (± 1.10%) 1.24s (± 0.89%) -0.01s (- 0.88%) 1.22s 1.27s
Bind Time 0.72s (± 1.06%) 0.71s (± 1.06%) -0.00s (- 0.28%) 0.70s 0.74s
Check Time 4.59s (± 0.55%) 4.57s (± 0.36%) -0.02s (- 0.48%) 4.53s 4.61s
Emit Time 3.24s (± 0.60%) 3.24s (± 0.61%) -0.01s (- 0.18%) 3.20s 3.30s
Total Time 9.81s (± 0.50%) 9.76s (± 0.25%) -0.05s (- 0.46%) 9.72s 9.82s
material-ui - node (v14.15.1, x64)
Memory used 477,948k (± 0.01%) 477,802k (± 0.06%) -146k (- 0.03%) 476,684k 477,966k
Parse Time 2.06s (± 0.67%) 2.06s (± 0.54%) -0.01s (- 0.24%) 2.03s 2.08s
Bind Time 0.70s (± 0.74%) 0.70s (± 0.83%) -0.00s (- 0.29%) 0.69s 0.71s
Check Time 12.95s (± 0.62%) 12.93s (± 0.72%) -0.01s (- 0.09%) 12.82s 13.18s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.71s (± 0.55%) 15.69s (± 0.62%) -0.01s (- 0.10%) 15.56s 15.94s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-198-generic
Architecturex64
Available Memory16 GB
Available Memory5 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v14.15.1, x64)
Benchmark Name Iterations
Current 43131 10
Baseline master 10

Developer Information:

Download Benchmark

@typescript-bot

Copy link
Copy Markdown
Contributor

The user suite test run you requested has finished and failed. I've opened a PR with the baseline diff from master.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Author: Team 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.

Missing narrowing of intersections involving type parameter and primitive types

3 participants