Skip to content

[experiment] Avoid resolving property types that cannot be unit types when looking for key properties - #65056

Draft
Mateusz Burzyński (Andarist) wants to merge 2 commits into
microsoft:mainfrom
Andarist:experiment/unit-property-fast-check
Draft

Mateusz Burzyński (Andarist) wants to merge 2 commits into
microsoft:mainfrom
Andarist:experiment/unit-property-fast-check

Conversation

@Andarist

Copy link
Copy Markdown
Contributor

No description provided.

@typescript-automation typescript-automation Bot added the For Uncommitted Bug PR for untriaged, rejected, closed or missing bug label Oct 30, 2026
@jakebailey

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) test it

@typescript-automation

Copy link
Copy Markdown
Contributor

Hey Jake Bailey (@jakebailey), this PR was updated less than two minutes before this command. Please wait until it has been unchanged for two minutes and try again.

@jakebailey

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) test it

@typescript-automation

typescript-automation Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

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-automation

Copy link
Copy Markdown
Contributor

Hey Jake Bailey (@jakebailey), the results of running the DT tests are ready.

Everything looks the same!

You can check the log here.

@typescript-automation

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey) Here are the results of running the user tests with tsc comparing baseline and pr:

Everything looks good!

@jakebailey Jake Bailey (jakebailey) added the Domain: Performance Reports of unusually slow behavior label Oct 30, 2026
@typescript-automation

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey)
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 - native
Errors 41 41 ~ ~ ~ p=1.000 n=20
Symbols 88,466 88,466 ~ ~ ~ p=1.000 n=20
Types 79,607 77,569 -2,038 (- 2.56%) ~ ~ p=0.000 n=20
Memory Used 104,071k (± 0.02%) 103,650k (± 0.03%) -420k (- 0.40%) 103,559k 103,744k p=0.000 n=20
Memory Allocs 1,262,379 (± 0.01%) 1,257,565 (± 0.01%) -4,814 (- 0.38%) 1,256,980 1,258,149 p=0.000 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.023s (± 3.59%) 0.023s (± 3.63%) ~ 0.019s 0.025s p=0.886 n=20
Bind Time 0.009s (± 5.40%) 0.009s (± 6.89%) ~ 0.007s 0.011s p=0.887 n=20
Check Time 0.209s (± 0.66%) 0.211s (± 0.72%) ~ 0.206s 0.219s p=0.087 n=20
Emit Time 0.136s (± 0.80%) 0.137s (± 0.69%) ~ 0.134s 0.141s p=0.629 n=20
Total Time 0.379s (± 0.34%) 0.382s (± 0.48%) ~ 0.376s 0.391s p=0.054 n=20
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=20
Symbols 586,489 (± 0.02%) 586,498 (± 0.02%) ~ 586,063 586,825 p=0.794 n=20
Types 241,688 (± 0.00%) 234,199 (± 0.00%) 🟩-7,489 (- 3.10%) 234,196 234,212 p=0.000 n=20
Memory Used 517,715k (± 0.01%) 516,212k (± 0.02%) -1,503k (- 0.29%) 515,880k 516,814k p=0.000 n=20
Memory Allocs 7,793,407 (± 0.10%) 7,776,389 (± 0.13%) -17,017 (- 0.22%) 7,762,915 7,848,317 p=0.000 n=20
Config Time 0.008s (± 2.73%) 0.008s (± 2.10%) ~ 0.008s 0.009s p=0.273 n=20
Parse Time 0.132s (± 7.18%) 0.122s (± 2.69%) ~ 0.112s 0.144s p=0.135 n=20
Bind Time 0.043s (± 7.30%) 0.047s (±11.90%) ~ 0.038s 0.075s p=0.516 n=20
Check Time 0s 0s ~ ~ ~ p=1.000 n=20
Emit Time 0.845s (± 0.94%) 0.854s (± 1.00%) ~ 0.827s 0.884s p=0.103 n=20
Total Time 1.040s (± 1.32%) 1.043s (± 1.24%) ~ 1.010s 1.090s p=0.525 n=20
arktype - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 685,920 685,920 ~ ~ ~ p=1.000 n=20
Types 939,467 934,240 -5,227 (- 0.56%) ~ ~ p=0.000 n=20
Memory Used 494,721k (± 0.01%) 493,596k (± 0.01%) -1,125k (- 0.23%) 493,364k 493,804k p=0.000 n=20
Memory Allocs 12,062,902 (± 0.01%) 12,051,296 (± 0.02%) -11,606 (- 0.10%) 12,047,042 12,063,113 p=0.000 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.041s (± 3.89%) 0.040s (± 2.43%) ~ 0.036s 0.044s p=0.660 n=20
Bind Time 0.014s (± 9.73%) 0.013s (± 9.31%) ~ 0.011s 0.019s p=0.347 n=20
Check Time 0.958s (± 0.65%) 0.962s (± 0.67%) ~ 0.934s 0.981s p=0.372 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.043s (± 0.53%) 1.045s (± 0.52%) ~ 1.021s 1.064s p=0.606 n=20
class-transformer - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 45,376 45,376 ~ ~ ~ p=1.000 n=20
Types 7,573 7,366 -207 (- 2.73%) ~ ~ p=0.000 n=20
Memory Used 27,838k (± 0.02%) 27,787k (± 0.02%) -51k (- 0.18%) 27,765k 27,809k p=0.000 n=20
Memory Allocs 248,214 (± 0.06%) 247,551 (± 0.06%) -663 (- 0.27%) 247,145 248,596 p=0.000 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.012s (± 3.68%) 0.012s (± 3.68%) ~ 0.010s 0.013s p=0.936 n=20
Bind Time 0.004s (±13.92%) 0.004s (±13.12%) ~ 0.003s 0.006s p=0.779 n=20
Check Time 0.008s (± 6.07%) 0.008s (± 4.91%) ~ 0.007s 0.009s p=0.721 n=20
Emit Time 0.009s (± 5.61%) 0.009s (± 5.15%) ~ 0.007s 0.010s p=0.251 n=20
Total Time 0.033s (± 2.53%) 0.033s (± 2.03%) ~ 0.030s 0.035s p=0.783 n=20
effect - native
Errors 12 12 ~ ~ ~ p=1.000 n=20
Symbols 1,235,115 1,235,115 ~ ~ ~ p=1.000 n=20
Types 894,113 878,390 -15,723 (- 1.76%) ~ ~ p=0.000 n=20
Memory Used 939,035k (± 0.02%) 935,616k (± 0.02%) -3,419k (- 0.36%) 935,067k 936,416k p=0.000 n=20
Memory Allocs 12,633,333 (± 0.02%) 12,602,298 (± 0.02%) -31,035 (- 0.25%) 12,595,989 12,612,937 p=0.000 n=20
Config Time 0.002s 0.002s ~ ~ ~ p=1.000 n=20
Parse Time 0.148s (± 1.82%) 0.150s (± 1.65%) ~ 0.143s 0.161s p=0.273 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.952s (± 1.74%) 0.939s (± 0.88%) ~ 0.907s 0.980s p=0.203 n=20
Emit Time 0.501s (± 2.39%) 0.508s (± 2.12%) ~ 0.468s 0.537s p=0.433 n=20
Total Time 1.697s (± 0.88%) 1.692s (± 0.57%) ~ 1.644s 1.722s p=0.857 n=20
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=20
Symbols 3,784,019 3,784,584 +565 (+ 0.01%) ~ ~ p=0.000 n=20
Types 1,355,974 1,281,353 🟩-74,621 (- 5.50%) ~ ~ p=0.000 n=20
Memory Used 1,768,368k (± 0.07%) 1,750,271k (± 0.06%) -18,097k (- 1.02%) 1,745,505k 1,753,719k p=0.000 n=20
Memory Allocs 25,773,701 (± 0.16%) 25,563,297 (± 0.16%) -210,404 (- 0.82%) 25,461,390 25,823,561 p=0.000 n=20
Config Time 0.008s 0.008s (± 1.77%) ~ 0.008s 0.009s p=0.487 n=20
Parse Time 0.299s (± 2.20%) 0.293s (± 2.11%) ~ 0.269s 0.317s p=0.239 n=20
Bind Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Check Time 3.047s (± 0.89%) 3.016s (± 0.91%) ~ 2.939s 3.141s p=0.098 n=20
Emit Time 0.246s (± 2.27%) 0.242s (± 1.22%) ~ 0.234s 0.256s p=0.198 n=20
Total Time 4.092s (± 0.83%) 4.053s (± 0.79%) ~ 3.974s 4.206s p=0.064 n=20
sentry - native
Errors 2 2 ~ ~ ~ p=1.000 n=20
Symbols 4,793,245 4,793,247 +2 (+ 0.00%) ~ ~ p=0.000 n=20
Types 2,607,045 2,504,214 🟩-102,831 (- 3.94%) ~ ~ p=0.000 n=20
Memory Used 2,846,136k (± 0.03%) 2,823,175k (± 0.02%) -22,961k (- 0.81%) 2,819,467k 2,825,419k p=0.000 n=20
Memory Allocs 75,183,057 (± 0.31%) 74,775,458 (± 0.24%) -407,599 (- 0.54%) 74,372,796 75,815,387 p=0.000 n=20
Config Time 0.026s (± 1.42%) 0.025s (± 0.92%) ~ 0.025s 0.026s p=0.162 n=20
Parse Time 0.474s (± 5.13%) 0.486s (± 4.65%) ~ 0.428s 0.616s p=0.256 n=20
Bind Time 0.192s (±12.21%) 0.173s (±10.98%) ~ 0.131s 0.238s p=0.193 n=20
Check Time 6.672s (± 0.83%) 6.658s (± 0.57%) ~ 6.556s 6.922s p=0.836 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 7.414s (± 0.75%) 7.395s (± 0.55%) ~ 7.287s 7.649s p=0.847 n=20
social-app - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 1,883,074 1,883,074 ~ ~ ~ p=1.000 n=20
Types 1,158,168 1,133,459 -24,709 (- 2.13%) ~ ~ p=0.000 n=20
Memory Used 966,315k (± 0.02%) 960,841k (± 0.02%) -5,474k (- 0.57%) 960,116k 961,320k p=0.000 n=20
Memory Allocs 13,500,137 (± 0.19%) 13,456,450 (± 0.28%) -43,687 (- 0.32%) 13,382,649 13,674,140 p=0.006 n=20
Config Time 0.008s 0.008s (± 1.89%) ~ 0.007s 0.009s p=1.000 n=20
Parse Time 0.161s (± 3.05%) 0.157s (± 2.06%) ~ 0.147s 0.174s p=0.303 n=20
Bind Time 0.044s (± 9.23%) 0.049s (±10.11%) ~ 0.038s 0.072s p=0.059 n=20
Check Time 1.484s (± 0.94%) 1.475s (± 1.10%) ~ 1.432s 1.550s p=0.234 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.714s (± 0.95%) 1.708s (± 0.99%) ~ 1.665s 1.792s p=0.337 n=20
strada-build-src - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 1,184,972 1,184,972 ~ ~ ~ p=1.000 n=20
Types 438,963 420,367 🟩-18,596 (- 4.24%) ~ ~ p=0.000 n=20
Memory Used 1,167,478k (± 0.30%) 1,164,661k (± 0.41%) ~ 1,149,254k 1,189,864k p=0.114 n=20
Memory Allocs 47,594,740 (± 0.10%) 47,226,404 (± 0.12%) -368,336 (- 0.77%) 47,055,025 47,393,686 p=0.000 n=20
Config Time 0.002s (±19.09%) 0.002s (±12.90%) ~ 0.001s 0.002s p=1.000 n=20
Parse Time 0.147s (± 2.41%) 0.146s (± 2.30%) ~ 0.131s 0.157s p=0.605 n=20
Bind Time 0.000s 0.000s (±208.60%) ~ 0.000s 0.002s p=1.000 n=20
Check Time 0.842s (± 0.82%) 0.838s (± 0.72%) ~ 0.807s 0.863s p=0.507 n=20
Emit Time 0.148s (± 2.02%) 0.150s (± 2.96%) ~ 0.139s 0.175s p=0.984 n=20
Total Time 9.823s (± 0.80%) 9.788s (± 0.67%) ~ 9.466s 10.024s p=0.640 n=20
strada-compiler - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 263,511 263,511 ~ ~ ~ p=1.000 n=20
Types 196,116 188,476 🟩-7,640 (- 3.90%) ~ ~ p=0.000 n=20
Memory Used 224,108k (± 0.02%) 222,258k (± 0.02%) -1,851k (- 0.83%) 221,944k 222,389k p=0.000 n=20
Memory Allocs 2,389,514 (± 0.01%) 2,371,413 (± 0.01%) -18,101 (- 0.76%) 2,369,701 2,372,609 p=0.000 n=20
Config Time 0.000s 0.000s (±208.60%) ~ 0.000s 0.002s p=1.000 n=20
Parse Time 0.049s (± 3.39%) 0.053s (±12.74%) ~ 0.045s 0.112s p=0.662 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.389s (± 1.36%) 0.388s (± 1.25%) ~ 0.370s 0.407s p=0.931 n=20
Emit Time 0.049s (± 4.11%) 0.046s (± 4.95%) 🟩-0.003s (- 6.19%) 0.041s 0.056s p=0.019 n=20
Total Time 0.517s (± 1.10%) 0.515s (± 1.87%) ~ 0.492s 0.589s p=0.317 n=20
t3code-server - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 4,350,661 4,350,661 ~ ~ ~ p=1.000 n=20
Types 3,040,644 2,958,636 -82,008 (- 2.70%) ~ ~ p=0.000 n=20
Memory Used 2,424,794k (± 0.02%) 2,406,867k (± 0.02%) -17,927k (- 0.74%) 2,405,370k 2,409,730k p=0.000 n=20
Memory Allocs 37,180,695 (± 0.08%) 36,997,184 (± 0.09%) -183,511 (- 0.49%) 36,920,616 37,214,194 p=0.000 n=20
Config Time 0.003s 0.003s (±13.04%) ~ 0.003s 0.007s p=1.000 n=20
Parse Time 0.247s (± 2.06%) 0.258s (± 4.77%) ~ 0.240s 0.363s p=0.057 n=20
Bind Time 0.098s (±12.62%) 0.081s (± 7.87%) ~ 0.074s 0.133s p=0.099 n=20
Check Time 7.170s (± 0.41%) 7.163s (± 0.61%) ~ 7.049s 7.459s p=0.569 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 7.529s (± 0.38%) 7.516s (± 0.69%) ~ 7.384s 7.915s p=0.351 n=20
tanstack-router - native
Errors 1 1 ~ ~ ~ p=1.000 n=20
Symbols 571,756 571,756 ~ ~ ~ p=1.000 n=20
Types 397,689 395,397 -2,292 (- 0.58%) ~ ~ p=0.000 n=20
Memory Used 326,076k (± 0.01%) 325,549k (± 0.02%) -527k (- 0.16%) 325,282k 325,775k p=0.000 n=20
Memory Allocs 4,338,667 (± 0.17%) 4,329,721 (± 0.17%) -8,946 (- 0.21%) 4,314,496 4,358,698 p=0.012 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.039s (± 3.34%) 0.040s (± 3.77%) ~ 0.034s 0.044s p=0.549 n=20
Bind Time 0.014s (±14.01%) 0.014s (±10.05%) ~ 0.011s 0.020s p=0.369 n=20
Check Time 0.591s (± 0.78%) 0.595s (± 3.21%) ~ 0.567s 0.765s p=0.351 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.664s (± 0.89%) 0.668s (± 2.97%) ~ 0.643s 0.845s p=0.533 n=20
ts-pre-modules - native
Errors 87 87 ~ ~ ~ p=1.000 n=20
Symbols 231,616 231,616 ~ ~ ~ p=1.000 n=20
Types 181,195 173,731 🟩-7,464 (- 4.12%) ~ ~ p=0.000 n=20
Memory Used 193,179k (± 0.01%) 191,352k (± 0.01%) -1,827k (- 0.95%) 191,196k 191,469k p=0.000 n=20
Memory Allocs 1,310,748 (± 0.02%) 1,292,859 (± 0.02%) -17,888 (- 1.36%) 1,292,183 1,294,033 p=0.000 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.044s (± 2.32%) 0.042s (± 3.04%) ~ 0.038s 0.048s p=0.070 n=20
Bind Time 0.021s (± 5.45%) 0.021s (± 5.79%) ~ 0.017s 0.027s p=0.802 n=20
Check Time 0.293s (± 1.26%) 0.292s (± 0.96%) ~ 0.281s 0.299s p=0.523 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.364s (± 0.99%) 0.361s (± 0.77%) ~ 0.351s 0.371s p=0.322 n=20
vscode - native
Errors 11 11 ~ ~ ~ p=1.000 n=20
Symbols 7,527,221 7,527,221 ~ ~ ~ p=1.000 n=20
Types 4,423,289 4,210,551 🟩-212,738 (- 4.81%) ~ ~ p=0.000 n=20
Memory Used 5,219,862k (± 0.02%) 5,173,202k (± 0.01%) -46,660k (- 0.89%) 5,170,547k 5,177,853k p=0.000 n=20
Memory Allocs 57,151,077 (± 0.02%) 56,675,452 (± 0.02%) -475,626 (- 0.83%) 56,650,387 56,742,299 p=0.000 n=20
Config Time 0.034s (± 0.95%) 0.035s (± 1.80%) ~ 0.032s 0.038s p=0.125 n=20
Parse Time 0.994s (± 2.32%) 0.989s (± 2.64%) ~ 0.882s 1.060s p=0.867 n=20
Bind Time 0.335s (± 6.43%) 0.360s (± 9.32%) ~ 0.297s 0.577s p=0.113 n=20
Check Time 8.144s (± 0.74%) 8.142s (± 1.39%) ~ 7.669s 8.639s p=0.889 n=20
Emit Time 2.942s (± 4.71%) 2.948s (± 5.09%) ~ 2.687s 3.607s p=0.673 n=20
Total Time 12.509s (± 1.10%) 12.536s (± 1.22%) ~ 11.830s 13.124s p=0.673 n=20
webpack - native
Errors 612 612 ~ ~ ~ p=1.000 n=20
Symbols 925,725 925,725 ~ ~ ~ p=1.000 n=20
Types 650,047 622,943 🟩-27,104 (- 4.17%) ~ ~ p=0.000 n=20
Memory Used 697,612k (± 0.01%) 691,102k (± 0.01%) -6,510k (- 0.93%) 690,760k 691,548k p=0.000 n=20
Memory Allocs 6,508,012 (± 0.06%) 6,443,707 (± 0.05%) -64,305 (- 0.99%) 6,433,920 6,456,184 p=0.000 n=20
Config Time 0.004s 0.004s ~ ~ ~ p=1.000 n=20
Parse Time 0.134s (± 2.22%) 0.135s (± 4.49%) ~ 0.111s 0.161s p=0.909 n=20
Bind Time 0.045s (± 9.16%) 0.049s (±12.10%) ~ 0.038s 0.071s p=0.400 n=20
Check Time 1.018s (± 0.51%) 1.008s (± 0.58%) -0.010s (- 0.96%) 0.990s 1.029s p=0.016 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.225s (± 0.73%) 1.219s (± 0.64%) ~ 1.188s 1.256s p=0.365 n=20
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 640,490 640,490 ~ ~ ~ p=1.000 n=20
Types 387,984 384,933 -3,051 (- 0.79%) ~ ~ p=0.000 n=20
Memory Used 349,478k (± 0.03%) 348,805k (± 0.02%) -672k (- 0.19%) 348,656k 349,226k p=0.000 n=20
Memory Allocs 3,969,218 (± 0.07%) 3,961,515 (± 0.06%) -7,703 (- 0.19%) 3,954,173 3,977,377 p=0.000 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.061s (± 2.94%) 0.060s (± 2.15%) ~ 0.056s 0.065s p=0.995 n=20
Bind Time 0.021s (±10.39%) 0.021s (±11.34%) ~ 0.017s 0.033s p=0.775 n=20
Check Time 0.414s (± 0.82%) 0.412s (± 0.91%) ~ 0.400s 0.435s p=0.329 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.501s (± 0.79%) 0.500s (± 1.03%) ~ 0.484s 0.526s p=0.920 n=20
System info unknown
Hosts
  • native
Scenarios
  • Compiler-Unions - native
  • angular-1 - native
  • arktype - native
  • class-transformer - native
  • effect - native
  • mui-docs - native
  • sentry - native
  • social-app - native
  • strada-build-src - native
  • strada-compiler - native
  • t3code-server - native
  • tanstack-router - native
  • ts-pre-modules - native
  • vscode - native
  • webpack - native
  • xstate-main - native
Benchmark Name Iterations
Current pr 20
Baseline baseline 20

Developer Information:

Download Benchmarks

@typescript-automation

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey) Here are the results of running the top 400 repos with tsc comparing baseline and pr:

Everything looks good!

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

The guard prematurely rejects unresolved generic variadic tuples that can normalize to never, potentially preventing key-property map creation and bypassing the discriminant shortcut in removeSubtypes.

1 open issue
What changed in this PR

This experiment aims to reduce unnecessary property-type resolution when the native TypeScript checker searches for unit-typed discriminant properties.

Changes:

  • Adds a shared predicate that skips methods and certain instantiated or mapped properties.
  • Uses the predicate in key-property discovery and union subtype reduction.
File Description
tsc/​internal/​checker/​relater.go Defines the predicate and applies it to key-property candidate selection.
tsc/​internal/​checker/​checker.go Reuses the predicate when selecting discriminants for subtype reduction.

Review effort: Balanced

Comment thread tsc/internal/checker/relater.go Outdated
Comment on lines +1186 to +1188
// An object type other than a mapped type never instantiates to a unit type, so neither does a union containing one
if core.Some(uninstantiated.Distributed(), func(t *Type) bool {
return t.flags&TypeFlagsObject != 0 && t.objectFlags&ObjectFlagsMapped == 0

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Domain: Performance Reports of unusually slow behavior For Uncommitted Bug PR for untriaged, rejected, closed or missing bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants