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

Defer checking of class static blocks #59607

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Andarist
Copy link
Contributor

closes #52892

This only helps with a specific situation when a type alias defined in a class static block triggered the first variance check in those circular situations. Then all properties referencing A again were reentering getVariancesWorker and thus it was assumed that they were OK. My comment at the bottom of this post explains more about this kind of situation: #59606 (comment)

In other words, this only mitigates the problem in this specific situation but it's still possible to run into problems in similar circular situations.

@typescript-bot typescript-bot added the For Milestone Bug PRs that fix a bug with a specific milestone label Aug 12, 2024
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this one was already fixed by #53549 , this is just an extra test case

@RyanCavanaugh
Copy link
Member

@typescript-bot test it

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 13, 2024

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
test top400 ✅ Started ✅ Results
user test this ✅ Started ✅ Results
run dt ✅ Started ✅ Results
perf test this faster ✅ Started 👀 Results

@typescript-bot
Copy link
Collaborator

Hey @RyanCavanaugh, the results of running the DT tests are ready.

Everything looks the same!

You can check the log here.

@typescript-bot
Copy link
Collaborator

@RyanCavanaugh Here are the results of running the user tests with tsc comparing main and refs/pull/59607/merge:

Everything looks good!

@typescript-bot
Copy link
Collaborator

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

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-Unions - node (v18.15.0, x64)
Errors 30 30 ~ ~ ~ p=1.000 n=6
Symbols 62,153 62,153 ~ ~ ~ p=1.000 n=6
Types 50,242 50,242 ~ ~ ~ p=1.000 n=6
Memory used 193,532k (± 0.96%) 193,533k (± 0.93%) ~ 192,266k 195,901k p=0.689 n=6
Parse Time 1.58s (± 0.53%) 1.58s (± 0.65%) ~ 1.56s 1.59s p=0.788 n=6
Bind Time 0.86s (± 0.87%) 0.86s (± 1.14%) ~ 0.85s 0.87s p=1.000 n=6
Check Time 11.39s (± 0.37%) 11.37s (± 0.12%) ~ 11.35s 11.39s p=0.169 n=6
Emit Time 3.26s (± 0.36%) 3.25s (± 0.45%) ~ 3.23s 3.27s p=0.142 n=6
Total Time 17.08s (± 0.31%) 17.06s (± 0.15%) ~ 17.02s 17.08s p=0.102 n=6
angular-1 - node (v18.15.0, x64)
Errors 7 7 ~ ~ ~ p=1.000 n=6
Symbols 945,757 945,757 ~ ~ ~ p=1.000 n=6
Types 410,045 410,045 ~ ~ ~ p=1.000 n=6
Memory used 1,222,536k (± 0.00%) 1,222,555k (± 0.00%) ~ 1,222,517k 1,222,615k p=0.378 n=6
Parse Time 6.64s (± 0.44%) 6.65s (± 0.36%) ~ 6.62s 6.68s p=0.746 n=6
Bind Time 1.87s (± 0.28%) 1.87s (± 0.29%) ~ 1.86s 1.87s p=0.640 n=6
Check Time 31.18s (± 0.31%) 31.14s (± 0.09%) ~ 31.10s 31.18s p=0.573 n=6
Emit Time 14.98s (± 0.47%) 14.95s (± 0.47%) ~ 14.86s 15.07s p=0.686 n=6
Total Time 54.67s (± 0.23%) 54.61s (± 0.11%) ~ 54.55s 54.72s p=0.336 n=6
mui-docs - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,491,204 2,491,204 ~ ~ ~ p=1.000 n=6
Types 1,013,428 1,013,428 ~ ~ ~ p=1.000 n=6
Memory used 2,498,634k (± 0.00%) 2,498,621k (± 0.00%) ~ 2,498,559k 2,498,778k p=0.936 n=6
Parse Time 9.25s (± 0.26%) 9.22s (± 0.19%) ~ 9.20s 9.24s p=0.167 n=6
Bind Time 2.19s (± 0.34%) 2.18s (± 0.25%) -0.01s (- 0.61%) 2.17s 2.18s p=0.015 n=6
Check Time 75.83s (± 0.21%) 75.73s (± 0.45%) ~ 75.33s 76.28s p=0.572 n=6
Emit Time 0.28s (± 2.26%) 0.28s (± 2.26%) ~ 0.27s 0.29s p=1.000 n=6
Total Time 87.55s (± 0.19%) 87.41s (± 0.40%) ~ 87.00s 87.98s p=0.226 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,230,395 1,230,395 ~ ~ ~ p=1.000 n=6
Types 264,083 264,083 ~ ~ ~ p=1.000 n=6
Memory used 2,351,975k (± 0.03%) 2,351,334k (± 0.01%) ~ 2,351,071k 2,351,677k p=0.128 n=6
Parse Time 4.98s (± 0.63%) 5.00s (± 1.08%) ~ 4.93s 5.09s p=0.936 n=6
Bind Time 1.88s (± 1.29%) 1.87s (± 1.30%) ~ 1.84s 1.91s p=0.419 n=6
Check Time 34.61s (± 0.41%) 34.61s (± 0.30%) ~ 34.43s 34.74s p=0.936 n=6
Emit Time 3.31s (± 1.22%) 3.35s (± 0.75%) ~ 3.31s 3.38s p=0.107 n=6
Total Time 44.80s (± 0.32%) 44.84s (± 0.21%) ~ 44.69s 44.93s p=0.810 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,230,395 1,230,395 ~ ~ ~ p=1.000 n=6
Types 264,083 264,083 ~ ~ ~ p=1.000 n=6
Memory used 2,425,541k (± 0.03%) 2,426,015k (± 0.01%) ~ 2,425,806k 2,426,309k p=0.093 n=6
Parse Time 6.25s (± 0.97%) 6.20s (± 0.75%) ~ 6.13s 6.26s p=0.298 n=6
Bind Time 2.02s (± 1.12%) 2.02s (± 0.92%) ~ 2.00s 2.04s p=0.571 n=6
Check Time 41.32s (± 0.35%) 41.21s (± 0.25%) ~ 41.06s 41.33s p=0.173 n=6
Emit Time 4.09s (± 4.00%) 4.04s (± 0.92%) ~ 3.99s 4.09s p=0.810 n=6
Total Time 53.69s (± 0.41%) 53.47s (± 0.17%) ~ 53.38s 53.63s p=0.066 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 256,891 256,891 ~ ~ ~ p=1.000 n=6
Types 105,580 105,580 ~ ~ ~ p=1.000 n=6
Memory used 429,091k (± 0.01%) 429,231k (± 0.06%) ~ 429,074k 429,786k p=0.230 n=6
Parse Time 2.80s (± 0.27%) 2.80s (± 0.43%) ~ 2.79s 2.82s p=0.503 n=6
Bind Time 1.09s (± 1.35%) 1.10s (± 1.24%) ~ 1.07s 1.11s p=0.242 n=6
Check Time 15.28s (± 0.12%) 15.32s (± 0.29%) ~ 15.26s 15.37s p=0.198 n=6
Emit Time 1.38s (± 0.99%) 1.41s (± 0.83%) +0.02s (+ 1.68%) 1.39s 1.42s p=0.022 n=6
Total Time 20.55s (± 0.14%) 20.62s (± 0.22%) +0.07s (+ 0.36%) 20.58s 20.68s p=0.006 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 35 35 ~ ~ ~ p=1.000 n=6
Symbols 225,018 225,018 ~ ~ ~ p=1.000 n=6
Types 94,245 94,245 ~ ~ ~ p=1.000 n=6
Memory used 370,230k (± 0.03%) 370,224k (± 0.03%) ~ 370,076k 370,351k p=0.936 n=6
Parse Time 3.44s (± 0.84%) 3.45s (± 0.89%) ~ 3.42s 3.49s p=0.808 n=6
Bind Time 1.92s (± 0.77%) 1.93s (± 0.63%) ~ 1.91s 1.94s p=0.451 n=6
Check Time 19.45s (± 0.31%) 19.34s (± 0.31%) -0.10s (- 0.54%) 19.25s 19.43s p=0.016 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 24.81s (± 0.34%) 24.71s (± 0.27%) -0.10s (- 0.39%) 24.65s 24.84s p=0.037 n=6
vscode - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 3,000,453 3,000,453 ~ ~ ~ p=1.000 n=6
Types 1,033,584 1,033,584 ~ ~ ~ p=1.000 n=6
Memory used 3,125,392k (± 0.00%) 3,125,460k (± 0.00%) ~ 3,125,359k 3,125,567k p=0.173 n=6
Parse Time 17.03s (± 0.16%) 17.05s (± 0.50%) ~ 16.98s 17.21s p=0.808 n=6
Bind Time 5.26s (± 2.03%) 5.26s (± 2.07%) ~ 5.21s 5.48s p=0.492 n=6
Check Time 96.59s (± 0.21%) 96.75s (± 0.20%) ~ 96.47s 96.97s p=0.230 n=6
Emit Time 24.91s (± 0.40%) 25.00s (± 0.57%) ~ 24.79s 25.17s p=0.377 n=6
Total Time 143.79s (± 0.14%) 144.05s (± 0.18%) ~ 143.63s 144.42s p=0.066 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 274,381 274,381 ~ ~ ~ p=1.000 n=6
Types 111,850 111,850 ~ ~ ~ p=1.000 n=6
Memory used 420,774k (± 0.02%) 420,711k (± 0.03%) ~ 420,570k 420,860k p=0.378 n=6
Parse Time 3.93s (± 0.77%) 3.93s (± 0.32%) ~ 3.91s 3.94s p=0.868 n=6
Bind Time 1.72s (± 0.64%) 1.71s (± 0.96%) ~ 1.69s 1.73s p=0.188 n=6
Check Time 17.13s (± 0.49%) 17.04s (± 0.16%) -0.09s (- 0.54%) 17.00s 17.08s p=0.045 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.78s (± 0.37%) 22.68s (± 0.20%) -0.10s (- 0.45%) 22.61s 22.74s p=0.045 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 540,779 540,779 ~ ~ ~ p=1.000 n=6
Types 177,884 177,884 ~ ~ ~ p=1.000 n=6
Memory used 483,269k (± 0.01%) 483,244k (± 0.01%) ~ 483,207k 483,287k p=0.109 n=6
Parse Time 3.39s (± 0.61%) 3.39s (± 0.29%) ~ 3.38s 3.40s p=0.935 n=6
Bind Time 1.25s (± 0.41%) 1.25s (± 0.60%) ~ 1.24s 1.26s p=0.784 n=6
Check Time 18.06s (± 0.17%) 18.06s (± 0.27%) ~ 17.99s 18.13s p=0.810 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.70s (± 0.15%) 22.70s (± 0.20%) ~ 22.63s 22.75s p=0.681 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Compiler-Unions - node (v18.15.0, x64)
  • angular-1 - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-build-src-public-api - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • ts-pre-modules - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate-main - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

@typescript-bot
Copy link
Collaborator

@RyanCavanaugh Here are the results of running the top 400 repos with tsc comparing main and refs/pull/59607/merge:

Everything looks good!

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
Status: Not started
Development

Successfully merging this pull request may close these issues.

Instantiation expression inside nested classes produces unexpected circular reference error
4 participants