Skip to content

Consistent narrowing to 'never' in conditional and switch statements #39191

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 4 commits into from
Jun 29, 2020

Conversation

ahejlsberg
Copy link
Member

Fixes #38629.

@ahejlsberg
Copy link
Member Author

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 22, 2020

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 22, 2020

Heya @ahejlsberg, I've started to run the parallelized community code test suite on this PR at 224877d. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 22, 2020

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 22, 2020

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

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..39191

Metric master 39191 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 340,391k (± 0.01%) 339,870k (± 0.02%) -521k (- 0.15%) 339,726k 340,059k
Parse Time 1.99s (± 0.62%) 1.99s (± 0.77%) +0.00s (+ 0.15%) 1.97s 2.03s
Bind Time 0.80s (± 0.74%) 0.81s (± 1.38%) +0.00s (+ 0.12%) 0.79s 0.84s
Check Time 4.74s (± 0.35%) 4.72s (± 0.36%) -0.02s (- 0.44%) 4.68s 4.74s
Emit Time 5.22s (± 0.56%) 5.19s (± 0.67%) -0.03s (- 0.52%) 5.09s 5.25s
Total Time 12.75s (± 0.34%) 12.70s (± 0.42%) -0.05s (- 0.37%) 12.53s 12.82s
Monaco - node (v10.16.3, x64)
Memory used 338,891k (± 0.01%) 338,952k (± 0.02%) +62k (+ 0.02%) 338,808k 339,041k
Parse Time 1.57s (± 0.77%) 1.57s (± 0.80%) +0.00s (+ 0.06%) 1.54s 1.60s
Bind Time 0.70s (± 0.71%) 0.69s (± 0.86%) -0.00s (- 0.14%) 0.68s 0.71s
Check Time 4.86s (± 0.49%) 4.85s (± 0.75%) -0.01s (- 0.10%) 4.78s 4.94s
Emit Time 2.75s (± 0.84%) 2.74s (± 0.52%) -0.00s (- 0.18%) 2.72s 2.77s
Total Time 9.88s (± 0.37%) 9.87s (± 0.53%) -0.01s (- 0.12%) 9.74s 9.96s
TFS - node (v10.16.3, x64)
Memory used 301,843k (± 0.02%) 301,887k (± 0.03%) +44k (+ 0.01%) 301,776k 302,081k
Parse Time 1.21s (± 0.58%) 1.21s (± 0.73%) +0.00s (+ 0.17%) 1.19s 1.23s
Bind Time 0.64s (± 0.92%) 0.65s (± 1.19%) +0.01s (+ 0.78%) 0.62s 0.66s
Check Time 4.35s (± 0.56%) 4.36s (± 0.30%) +0.01s (+ 0.21%) 4.33s 4.39s
Emit Time 2.86s (± 1.35%) 2.86s (± 0.74%) -0.00s (- 0.03%) 2.81s 2.92s
Total Time 9.07s (± 0.62%) 9.09s (± 0.31%) +0.02s (+ 0.21%) 9.03s 9.14s
material-ui - node (v10.16.3, x64)
Memory used 459,543k (± 0.02%) 459,225k (± 0.02%) -318k (- 0.07%) 459,105k 459,443k
Parse Time 2.05s (± 0.76%) 2.03s (± 0.70%) -0.01s (- 0.54%) 2.01s 2.07s
Bind Time 0.66s (± 1.43%) 0.65s (± 1.30%) -0.01s (- 0.91%) 0.63s 0.67s
Check Time 12.82s (± 0.62%) 12.81s (± 0.62%) -0.01s (- 0.06%) 12.69s 13.00s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.52s (± 0.57%) 15.49s (± 0.55%) -0.02s (- 0.14%) 15.37s 15.67s
Angular - node (v12.1.0, x64)
Memory used 317,804k (± 0.03%) 317,289k (± 0.02%) -515k (- 0.16%) 317,154k 317,436k
Parse Time 1.96s (± 0.78%) 1.98s (± 1.03%) +0.01s (+ 0.61%) 1.92s 2.01s
Bind Time 0.78s (± 0.60%) 0.78s (± 0.74%) -0.00s (- 0.00%) 0.77s 0.79s
Check Time 4.61s (± 0.56%) 4.58s (± 0.48%) -0.03s (- 0.69%) 4.54s 4.65s
Emit Time 5.34s (± 0.48%) 5.37s (± 1.10%) +0.03s (+ 0.58%) 5.24s 5.52s
Total Time 12.69s (± 0.37%) 12.70s (± 0.56%) +0.01s (+ 0.06%) 12.53s 12.85s
Monaco - node (v12.1.0, x64)
Memory used 321,481k (± 0.02%) 321,467k (± 0.02%) -14k (- 0.00%) 321,348k 321,571k
Parse Time 1.54s (± 0.94%) 1.53s (± 0.62%) -0.00s (- 0.20%) 1.51s 1.55s
Bind Time 0.68s (± 1.70%) 0.67s (± 0.66%) -0.01s (- 0.74%) 0.66s 0.68s
Check Time 4.65s (± 0.60%) 4.64s (± 0.48%) -0.01s (- 0.17%) 4.58s 4.70s
Emit Time 2.79s (± 0.82%) 2.79s (± 0.43%) -0.00s (- 0.04%) 2.77s 2.83s
Total Time 9.66s (± 0.56%) 9.64s (± 0.34%) -0.02s (- 0.22%) 9.58s 9.75s
TFS - node (v12.1.0, x64)
Memory used 286,349k (± 0.03%) 286,352k (± 0.02%) +3k (+ 0.00%) 286,179k 286,439k
Parse Time 1.23s (± 0.94%) 1.23s (± 0.74%) -0.00s (- 0.32%) 1.21s 1.24s
Bind Time 0.63s (± 1.09%) 0.62s (± 1.55%) -0.00s (- 0.80%) 0.60s 0.65s
Check Time 4.27s (± 0.35%) 4.26s (± 0.36%) -0.01s (- 0.19%) 4.23s 4.31s
Emit Time 2.93s (± 0.88%) 2.90s (± 0.57%) -0.04s (- 1.19%) 2.86s 2.94s
Total Time 9.06s (± 0.33%) 9.01s (± 0.31%) -0.05s (- 0.57%) 8.96s 9.07s
material-ui - node (v12.1.0, x64)
Memory used 437,981k (± 0.02%) 437,678k (± 0.02%) -302k (- 0.07%) 437,565k 437,882k
Parse Time 2.02s (± 0.52%) 2.02s (± 0.47%) -0.00s (- 0.10%) 2.00s 2.04s
Bind Time 0.63s (± 0.75%) 0.63s (± 1.16%) -0.00s (- 0.79%) 0.61s 0.64s
Check Time 11.46s (± 0.61%) 11.53s (± 1.11%) +0.07s (+ 0.63%) 11.34s 11.86s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 14.11s (± 0.48%) 14.18s (± 0.93%) +0.07s (+ 0.47%) 13.96s 14.52s
Angular - node (v8.9.0, x64)
Memory used 336,794k (± 0.01%) 336,446k (± 0.02%) -348k (- 0.10%) 336,252k 336,561k
Parse Time 2.50s (± 0.53%) 2.49s (± 0.30%) -0.01s (- 0.28%) 2.47s 2.50s
Bind Time 0.83s (± 0.36%) 0.83s (± 0.69%) +0.00s (+ 0.24%) 0.82s 0.84s
Check Time 5.30s (± 0.57%) 5.34s (± 0.51%) +0.04s (+ 0.70%) 5.27s 5.40s
Emit Time 5.86s (± 1.37%) 5.86s (± 1.20%) +0.00s (+ 0.02%) 5.67s 5.98s
Total Time 14.49s (± 0.74%) 14.52s (± 0.40%) +0.03s (+ 0.19%) 14.36s 14.63s
Monaco - node (v8.9.0, x64)
Memory used 340,278k (± 0.02%) 340,204k (± 0.02%) -73k (- 0.02%) 340,118k 340,401k
Parse Time 1.87s (± 0.48%) 1.86s (± 0.78%) -0.00s (- 0.05%) 1.84s 1.91s
Bind Time 0.87s (± 0.55%) 0.86s (± 0.42%) -0.00s (- 0.35%) 0.86s 0.87s
Check Time 5.36s (± 0.67%) 5.33s (± 0.43%) -0.03s (- 0.60%) 5.26s 5.37s
Emit Time 3.22s (± 0.57%) 3.22s (± 0.48%) -0.00s (- 0.12%) 3.17s 3.25s
Total Time 11.31s (± 0.41%) 11.28s (± 0.36%) -0.04s (- 0.32%) 11.15s 11.36s
TFS - node (v8.9.0, x64)
Memory used 303,621k (± 0.01%) 303,620k (± 0.02%) -1k (- 0.00%) 303,508k 303,720k
Parse Time 1.53s (± 0.69%) 1.53s (± 0.42%) -0.00s (- 0.13%) 1.52s 1.55s
Bind Time 0.65s (± 0.85%) 0.65s (± 0.95%) -0.00s (- 0.46%) 0.64s 0.66s
Check Time 4.94s (± 1.65%) 4.96s (± 1.65%) +0.02s (+ 0.32%) 4.82s 5.12s
Emit Time 3.08s (± 3.17%) 3.04s (± 2.72%) -0.04s (- 1.14%) 2.88s 3.19s
Total Time 10.20s (± 0.61%) 10.18s (± 0.48%) -0.02s (- 0.21%) 10.04s 10.30s
material-ui - node (v8.9.0, x64)
Memory used 463,645k (± 0.02%) 463,352k (± 0.01%) -294k (- 0.06%) 463,209k 463,487k
Parse Time 2.37s (± 0.55%) 2.37s (± 0.39%) -0.01s (- 0.25%) 2.35s 2.39s
Bind Time 0.78s (± 1.15%) 0.77s (± 1.21%) -0.01s (- 1.03%) 0.75s 0.79s
Check Time 16.96s (± 0.67%) 16.94s (± 1.37%) -0.01s (- 0.06%) 16.60s 17.56s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 20.10s (± 0.58%) 20.08s (± 1.13%) -0.02s (- 0.12%) 19.75s 20.66s
Angular - node (v8.9.0, x86)
Memory used 193,334k (± 0.02%) 193,140k (± 0.02%) -194k (- 0.10%) 193,039k 193,216k
Parse Time 2.43s (± 0.63%) 2.44s (± 0.53%) +0.01s (+ 0.25%) 2.41s 2.47s
Bind Time 0.98s (± 0.78%) 0.97s (± 0.87%) -0.00s (- 0.41%) 0.95s 0.99s
Check Time 4.79s (± 0.44%) 4.81s (± 0.85%) +0.03s (+ 0.54%) 4.75s 4.92s
Emit Time 5.91s (± 0.88%) 5.98s (± 0.80%) +0.07s (+ 1.20%) 5.87s 6.08s
Total Time 14.11s (± 0.54%) 14.20s (± 0.54%) +0.10s (+ 0.68%) 14.03s 14.38s
Monaco - node (v8.9.0, x86)
Memory used 193,294k (± 0.02%) 193,264k (± 0.02%) -30k (- 0.02%) 193,171k 193,342k
Parse Time 1.92s (± 1.37%) 1.91s (± 1.07%) -0.01s (- 0.68%) 1.87s 1.96s
Bind Time 0.68s (± 1.21%) 0.68s (± 1.11%) +0.00s (+ 0.15%) 0.67s 0.71s
Check Time 5.47s (± 0.57%) 5.47s (± 0.54%) -0.00s (- 0.09%) 5.39s 5.55s
Emit Time 2.66s (± 0.77%) 2.66s (± 1.20%) -0.01s (- 0.23%) 2.60s 2.75s
Total Time 10.74s (± 0.59%) 10.72s (± 0.66%) -0.03s (- 0.23%) 10.53s 10.87s
TFS - node (v8.9.0, x86)
Memory used 173,586k (± 0.03%) 173,569k (± 0.02%) -16k (- 0.01%) 173,462k 173,637k
Parse Time 1.57s (± 0.70%) 1.59s (± 0.82%) +0.02s (+ 1.02%) 1.56s 1.62s
Bind Time 0.62s (± 1.00%) 0.62s (± 1.20%) +0.00s (+ 0.16%) 0.61s 0.64s
Check Time 4.62s (± 0.58%) 4.63s (± 0.63%) +0.00s (+ 0.11%) 4.56s 4.72s
Emit Time 2.79s (± 0.80%) 2.77s (± 0.72%) -0.02s (- 0.82%) 2.72s 2.80s
Total Time 9.60s (± 0.36%) 9.60s (± 0.45%) -0.00s (- 0.01%) 9.53s 9.73s
material-ui - node (v8.9.0, x86)
Memory used 262,483k (± 0.02%) 262,299k (± 0.01%) -183k (- 0.07%) 262,249k 262,369k
Parse Time 2.44s (± 0.79%) 2.43s (± 0.47%) -0.00s (- 0.21%) 2.40s 2.46s
Bind Time 0.67s (± 1.66%) 0.66s (± 1.10%) -0.00s (- 0.75%) 0.65s 0.68s
Check Time 15.45s (± 0.51%) 15.44s (± 0.51%) -0.00s (- 0.03%) 15.26s 15.56s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 18.55s (± 0.52%) 18.54s (± 0.49%) -0.02s (- 0.09%) 18.34s 18.67s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-166-generic
Architecturex64
Available Memory16 GB
Available Memory1 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v8.9.0, x64)
  • node (v8.9.0, x86)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v8.9.0, x64)
  • Angular - node (v8.9.0, x86)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v8.9.0, x64)
  • Monaco - node (v8.9.0, x86)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v8.9.0, x64)
  • TFS - node (v8.9.0, x86)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v8.9.0, x64)
  • material-ui - node (v8.9.0, x86)
Benchmark Name Iterations
Current 39191 10
Baseline master 10

@ahejlsberg
Copy link
Member Author

Tests look good. Differences are all preexisting conditions. No performance impact.

@ahejlsberg ahejlsberg merged commit 9458f8a into master Jun 29, 2020
@ahejlsberg ahejlsberg deleted the fix38629 branch June 29, 2020 22:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Re-assigning to a variable with a recursive type got unexpected type narrowing result.
3 participants