Skip to content

[experiment] Skip incompatible discriminants when inferring - #64695

Open
Mateusz Burzyński (Andarist) wants to merge 12 commits into
microsoft:mainfrom
Andarist:fix-go/contextual-inference-discriminants
Open

Mateusz Burzyński (Andarist) wants to merge 12 commits into
microsoft:mainfrom
Andarist:fix-go/contextual-inference-discriminants

Conversation

@Andarist

Copy link
Copy Markdown
Contributor

fixes #64690

I was kinda always wondering if a logic like this could be used to cut down on inference work when dealing with discriminated unions and the referenced PR pushed me to try it out.

I'd still like to do more work on this and recheck things. That's why I'm opening this as a draft, I'd be curious what extended user tests etc would show for this

Copilot AI balanced review requested due to automatic review settings October 8, 2026 17:21
@typescript-automation typescript-automation Bot added the For Uncommitted Bug PR for untriaged, rejected, closed or missing bug label Oct 8, 2026
@jakebailey

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) test it

@typescript-automation

typescript-automation Bot commented Oct 8, 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

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.

🔵 Needs a closer look

The draft changes broad compiler inference semantics despite strong regression coverage and warrants human evaluation against extended user tests.

0 open findings

What changed in this PR

Adds discriminant-aware filtering to union-source inference, addressing #64690 while expanding compiler regression coverage.

Changes:

  • Skips source constituents with incompatible fixed discriminants.
  • Tests aliases, nesting, tag types, ordering, and optional-property semantics.
  • Adds diagnostics, type, and symbol baselines for both optional-property modes.
File Description
tsc/​internal/​checker/​inference.go Implements discriminant-aware inference filtering.
tsc/​testdata/​tests/​cases/​compiler/​inferenceDiscriminatedUnionSource.ts Adds compiler regression cases.
tsc/​testdata/​baselines/​reference/​compiler/​inferenceDiscriminatedUnionSource(exactoptionalpropertytypes=true).types Records inferred types.
tsc/​testdata/​baselines/​reference/​compiler/​inferenceDiscriminatedUnionSource(exactoptionalpropertytypes=true).symbols Records symbols.
tsc/​testdata/​baselines/​reference/​compiler/​inferenceDiscriminatedUnionSource(exactoptionalpropertytypes=true).errors.txt Records diagnostics.
tsc/​testdata/​baselines/​reference/​compiler/​inferenceDiscriminatedUnionSource(exactoptionalpropertytypes=false).types Records inferred types.
tsc/​testdata/​baselines/​reference/​compiler/​inferenceDiscriminatedUnionSource(exactoptionalpropertytypes=false).symbols Records symbols.
tsc/​testdata/​baselines/​reference/​compiler/​inferenceDiscriminatedUnionSource(exactoptionalpropertytypes=false).errors.txt Records diagnostics.

🧠 Review effort: Balanced


💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

@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!

@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=12
Symbols 115,276 115,344 +68 (+ 0.06%) ~ ~ p=0.000 n=12
Types 79,613 79,825 +212 (+ 0.27%) ~ ~ p=0.000 n=12
Memory Used 139,467k (± 0.05%) 139,524k (± 0.07%) ~ 139,283k 139,868k p=0.291 n=12
Memory Allocs 2,190,609 (± 0.00%) 2,191,450 (± 0.01%) +842 (+ 0.04%) 2,191,208 2,191,918 p=0.000 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.041s (± 4.59%) 0.042s (± 3.81%) ~ 0.037s 0.046s p=0.466 n=12
Bind Time 0.013s (±11.42%) 0.013s (±15.40%) ~ 0.010s 0.018s p=0.651 n=12
Check Time 0.496s (± 0.81%) 0.499s (± 0.88%) ~ 0.490s 0.512s p=0.324 n=12
Emit Time 0.271s (± 1.78%) 0.271s (± 1.74%) ~ 0.263s 0.291s p=0.743 n=12
Total Time 0.827s (± 0.53%) 0.831s (± 0.89%) ~ 0.815s 0.856s p=0.522 n=12
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=12
Symbols 845,646 (± 0.07%) 846,217 (± 0.08%) ~ 844,344 847,855 p=0.266 n=12
Types 248,123 (± 0.00%) 251,330 (± 0.00%) +3,206 (+ 1.29%) 251,326 251,340 p=0.000 n=12
Memory Used 788,084k (± 0.03%) 789,200k (± 0.02%) +1,116k (+ 0.14%) 788,766k 789,559k p=0.000 n=12
Memory Allocs 12,920,468 (± 0.02%) 12,931,329 (± 0.03%) +10,861 (+ 0.08%) 12,924,217 12,946,521 p=0.000 n=12
Config Time 0.016s (± 1.97%) 0.016s (± 1.75%) ~ 0.016s 0.017s p=0.667 n=12
Parse Time 0.263s (± 1.85%) 0.253s (± 3.42%) ~ 0.225s 0.271s p=0.061 n=12
Bind Time 0.059s (± 2.22%) 0.069s (±17.04%) 🔻+0.011s (+18.07%) 0.059s 0.119s p=0.013 n=12
Check Time 0s 0s ~ ~ ~ p=1.000 n=12
Emit Time 1.584s (± 0.76%) 1.597s (± 1.43%) ~ 1.553s 1.669s p=0.523 n=12
Total Time 1.935s (± 0.72%) 1.950s (± 1.46%) ~ 1.895s 2.026s p=0.580 n=12
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=12
Symbols 4,359,614 4,359,688 +74 (+ 0.00%) ~ ~ p=0.000 n=12
Types 1,376,379 1,382,217 +5,838 (+ 0.42%) ~ ~ p=0.000 n=12
Memory Used 2,954,247k (± 0.06%) 2,955,020k (± 0.05%) ~ 2,951,708k 2,960,703k p=0.514 n=12
Memory Allocs 32,839,861 (± 0.07%) 32,841,660 (± 0.04%) ~ 32,819,481 32,866,395 p=0.977 n=12
Config Time 0.016s (± 1.97%) 0.017s (± 1.45%) ~ 0.016s 0.017s p=0.089 n=12
Parse Time 0.502s (± 1.89%) 0.492s (± 2.84%) ~ 0.452s 0.516s p=0.385 n=12
Bind Time 0.002s (±31.13%) 0.002s ~ ~ ~ p=1.000 n=12
Check Time 8.681s (± 0.51%) 8.637s (± 0.68%) ~ 8.528s 8.788s p=0.272 n=12
Emit Time 0.487s (±14.75%) 0.528s (±14.10%) ~ 0.419s 0.682s p=0.172 n=12
Total Time 10.449s (± 0.31%) 10.450s (± 0.52%) ~ 10.269s 10.566s p=0.767 n=12
strada-build-src - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,390,229 1,394,216 +3,987 (+ 0.29%) ~ ~ p=0.000 n=12
Types 441,498 450,921 +9,423 (+ 2.13%) ~ ~ p=0.000 n=12
Memory Used 1,685,848k (± 0.99%) 1,679,834k (± 0.85%) ~ 1,661,307k 1,723,079k p=0.590 n=12
Memory Allocs 92,117,106 (± 0.15%) 92,360,812 (± 0.17%) +243,706 (+ 0.26%) 92,046,435 92,717,754 p=0.020 n=12
Config Time 0.004s (±10.74%) 0.003s (±18.62%) 🟩-0.001s (-19.15%) 0.002s 0.005s p=0.048 n=12
Parse Time 0.199s (± 4.36%) 0.193s (± 3.28%) ~ 0.179s 0.214s p=0.173 n=12
Bind Time 0.000s (±217.90%) 0.000s ~ ~ ~ p=1.000 n=12
Check Time 1.813s (± 0.66%) 1.820s (± 0.54%) ~ 1.801s 1.849s p=0.291 n=12
Emit Time 0.291s (± 6.21%) 0.303s (± 2.82%) ~ 0.280s 0.327s p=0.417 n=12
Total Time 23.517s (± 0.73%) 23.633s (± 0.69%) ~ 23.198s 23.996s p=0.347 n=12
strada-compiler - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 334,953 336,259 +1,306 (+ 0.39%) ~ ~ p=0.000 n=12
Types 197,616 201,520 +3,904 (+ 1.98%) ~ ~ p=0.000 n=12
Memory Used 313,258k (± 0.02%) 314,862k (± 0.03%) +1,604k (+ 0.51%) 314,659k 315,126k p=0.000 n=12
Memory Allocs 4,623,651 (± 0.01%) 4,637,069 (± 0.01%) +13,418 (+ 0.29%) 4,634,924 4,637,871 p=0.000 n=12
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=12
Parse Time 0.114s (± 4.63%) 0.114s (± 5.00%) ~ 0.100s 0.130s p=0.966 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 1.050s (± 0.52%) 1.055s (± 0.36%) ~ 1.045s 1.066s p=0.246 n=12
Emit Time 0.140s (±11.74%) 0.126s (±12.55%) ~ 0.100s 0.168s p=0.325 n=12
Total Time 1.357s (± 1.26%) 1.352s (± 0.95%) ~ 1.323s 1.383s p=0.560 n=12
ts-pre-modules - native
Errors 87 87 ~ ~ ~ p=1.000 n=12
Symbols 303,834 305,049 +1,215 (+ 0.40%) ~ ~ p=0.000 n=12
Types 181,663 185,425 +3,762 (+ 2.07%) ~ ~ p=0.000 n=12
Memory Used 273,936k (± 0.02%) 275,311k (± 0.02%) +1,374k (+ 0.50%) 275,201k 275,543k p=0.000 n=12
Memory Allocs 1,615,929 (± 0.01%) 1,629,712 (± 0.02%) +13,783 (+ 0.85%) 1,629,137 1,630,454 p=0.000 n=12
Config Time 0.000s 0.000s (±146.91%) ~ 0.000s 0.001s p=0.478 n=12
Parse Time 0.100s (± 3.02%) 0.101s (± 3.96%) ~ 0.091s 0.114s p=0.659 n=12
Bind Time 0.037s (±13.63%) 0.036s (±10.94%) ~ 0.028s 0.047s p=0.987 n=12
Check Time 0.828s (± 0.56%) 0.830s (± 0.64%) ~ 0.821s 0.846s p=0.876 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 0.980s (± 0.80%) 0.983s (± 1.05%) ~ 0.963s 1.009s p=0.639 n=12
vscode - native
Errors 380 380 ~ ~ ~ p=1.000 n=12
Symbols 11,123,441 11,130,334 +6,893 (+ 0.06%) ~ ~ p=0.000 n=12
Types 3,686,393 3,728,322 +41,929 (+ 1.14%) ~ ~ p=0.000 n=12
Memory Used 7,127,150k (± 0.01%) 7,141,723k (± 0.02%) +14,573k (+ 0.20%) 7,138,568k 7,144,118k p=0.000 n=12
Memory Allocs 54,647,398 (± 0.01%) 54,766,078 (± 0.01%) +118,680 (+ 0.22%) 54,756,768 54,789,920 p=0.000 n=12
Config Time 0.074s (± 0.53%) 0.074s (± 0.49%) ~ 0.073s 0.075s p=0.870 n=12
Parse Time 1.810s (± 5.75%) 1.806s (± 3.36%) ~ 1.666s 2.004s p=0.523 n=12
Bind Time 0.662s (±18.88%) 0.588s (±15.39%) ~ 0.447s 0.876s p=0.541 n=12
Check Time 14.180s (± 1.50%) 14.367s (± 1.55%) ~ 13.918s 14.775s p=0.062 n=12
Emit Time 5.327s (± 9.71%) 4.941s (±11.75%) ~ 4.096s 6.160s p=0.319 n=12
Total Time 22.140s (± 1.53%) 21.863s (± 1.88%) ~ 21.244s 22.766s p=0.319 n=12
webpack - native
Errors 589 589 ~ ~ ~ p=1.000 n=12
Symbols 1,302,905 1,303,729 +824 (+ 0.06%) ~ ~ p=0.000 n=12
Types 618,533 621,278 +2,745 (+ 0.44%) ~ ~ p=0.000 n=12
Memory Used 1,010,981k (± 0.02%) 1,011,922k (± 0.01%) +941k (+ 0.09%) 1,011,664k 1,012,089k p=0.000 n=12
Memory Allocs 6,595,437 (± 0.02%) 6,606,104 (± 0.05%) +10,668 (+ 0.16%) 6,602,158 6,621,750 p=0.000 n=12
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=12
Parse Time 0.290s (± 3.50%) 0.297s (± 2.46%) ~ 0.271s 0.315s p=0.247 n=12
Bind Time 0.082s (±16.47%) 0.071s (± 9.16%) ~ 0.062s 0.099s p=0.504 n=12
Check Time 2.023s (± 0.61%) 2.032s (± 0.79%) ~ 1.976s 2.055s p=0.091 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 2.439s (± 0.67%) 2.445s (± 0.81%) ~ 2.382s 2.499s p=0.809 n=12
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,055,452 1,060,768 +5,316 (+ 0.50%) ~ ~ p=0.000 n=12
Types 386,738 389,848 +3,110 (+ 0.80%) ~ ~ p=0.000 n=12
Memory Used 613,361k (± 0.03%) 615,681k (± 0.03%) +2,320k (+ 0.38%) 615,295k 616,271k p=0.000 n=12
Memory Allocs 4,862,964 (± 0.04%) 4,907,231 (± 0.11%) +44,267 (+ 0.91%) 4,896,581 4,926,204 p=0.000 n=12
Config Time 0.003s 0.003s ~ ~ ~ p=1.000 n=12
Parse Time 0.141s (± 3.53%) 0.143s (± 2.59%) ~ 0.136s 0.154s p=0.485 n=12
Bind Time 0.047s (±18.37%) 0.040s (±10.57%) ~ 0.032s 0.051s p=0.353 n=12
Check Time 1.138s (± 0.48%) 1.157s (± 0.67%) +0.019s (+ 1.68%) 1.143s 1.184s p=0.000 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 1.339s (± 0.86%) 1.355s (± 0.89%) ~ 1.335s 1.397s p=0.109 n=12
System info unknown
Hosts
  • native
Scenarios
  • Compiler-Unions - native
  • angular-1 - native
  • mui-docs - native
  • strada-build-src - native
  • strada-compiler - native
  • ts-pre-modules - native
  • vscode - native
  • webpack - native
  • xstate-main - native
Benchmark Name Iterations
Current pr 12
Baseline baseline 12

Developer Information:

Download Benchmarks

@weswigham

Wesley Wigham (weswigham) commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

Man, when we tried this in the JS codebase, the type comparison on every possible inference target ended up blowing up any savings we got from skipping deeper inferences on less appropriate members. But the perf suite shows it as good now, so I'm a fan. Maybe the optional prop fastpath and objecty type carve-outs are saving enough low-value comparisons it's at least perf neutral again? I'd be happier if we used discriminateTypeByDiscriminableItems (and maybe optimized it a bit to match), though, so "the method of discrimination" always matches. areTypesComparable is interesting, considering we normally discriminate using assignability - thought I guess we're kinda inverting the normal check here - "skip incompatible" instead of "select only compatible". In theory those are compliments, though.

@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!

@Andarist
Mateusz Burzyński (Andarist) force-pushed the fix-go/contextual-inference-discriminants branch from 65b5a44 to 7560713 Compare October 11, 2026 09:43
@Andarist

Copy link
Copy Markdown
Contributor Author

I still have some extra changes that I'd like to push here (maybe ;p) but I'd like to first see how this version performs in the perf tests and in the wild. Could I ask for a full test rerun here? cc Jake Bailey (@jakebailey)

@jakebailey

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) test it

@typescript-automation

typescript-automation Bot commented Oct 12, 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!

@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=12
Symbols 115,276 115,496 +220 (+ 0.19%) ~ ~ p=0.000 n=12
Types 79,613 79,979 +366 (+ 0.46%) ~ ~ p=0.000 n=12
Memory Used 133,210k (± 0.06%) 135,038k (± 0.05%) +1,828k (+ 1.37%) 134,856k 135,216k p=0.000 n=12
Memory Allocs 2,190,272 (± 0.01%) 2,200,940 (± 0.01%) +10,668 (+ 0.49%) 2,200,670 2,201,291 p=0.000 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.042s (± 5.00%) 0.041s (± 4.56%) ~ 0.036s 0.045s p=0.466 n=12
Bind Time 0.013s (±12.93%) 0.012s (±13.78%) ~ 0.010s 0.019s p=0.280 n=12
Check Time 0.498s (± 0.72%) 0.495s (± 0.96%) ~ 0.485s 0.513s p=0.234 n=12
Emit Time 0.272s (± 2.69%) 0.264s (± 2.47%) ~ 0.249s 0.287s p=0.080 n=12
Total Time 0.831s (± 0.79%) 0.818s (± 0.85%) -0.013s (- 1.54%) 0.793s 0.834s p=0.008 n=12
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=12
Symbols 846,205 (± 0.05%) 847,780 (± 0.04%) +1,575 (+ 0.19%) 846,859 848,754 p=0.000 n=12
Types 248,125 (± 0.00%) 266,277 (± 0.00%) 🔻+18,152 (+ 7.32%) 266,274 266,287 p=0.000 n=12
Memory Used 746,148k (± 0.02%) 751,901k (± 0.02%) +5,753k (+ 0.77%) 751,676k 752,268k p=0.000 n=12
Memory Allocs 12,916,811 (± 0.05%) 12,985,767 (± 0.04%) +68,956 (+ 0.53%) 12,979,162 13,006,885 p=0.000 n=12
Config Time 0.017s 0.017s ~ ~ ~ p=1.000 n=12
Parse Time 0.258s (± 2.46%) 0.255s (± 3.13%) ~ 0.229s 0.274s p=0.504 n=12
Bind Time 0.061s (± 8.52%) 0.067s (±20.47%) ~ 0.055s 0.119s p=0.916 n=12
Check Time 0s 0s ~ ~ ~ p=1.000 n=12
Emit Time 1.560s (± 0.97%) 1.572s (± 0.95%) ~ 1.548s 1.625s p=0.400 n=12
Total Time 1.908s (± 0.96%) 1.923s (± 1.27%) ~ 1.891s 2.013s p=0.600 n=12
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=12
Symbols 4,359,614 4,363,913 +4,299 (+ 0.10%) ~ ~ p=0.000 n=12
Types 1,376,379 1,385,580 +9,201 (+ 0.67%) ~ ~ p=0.000 n=12
Memory Used 2,781,354k (± 0.06%) 2,788,959k (± 0.05%) +7,605k (+ 0.27%) 2,785,220k 2,791,665k p=0.000 n=12
Memory Allocs 32,799,591 (± 0.06%) 32,859,819 (± 0.07%) +60,228 (+ 0.18%) 32,794,937 32,907,659 p=0.001 n=12
Config Time 0.017s (± 1.07%) 0.017s (± 1.06%) ~ 0.017s 0.018s p=0.522 n=12
Parse Time 0.499s (± 1.84%) 0.484s (± 4.39%) ~ 0.420s 0.524s p=0.433 n=12
Bind Time 0.002s 0.002s ~ ~ ~ p=1.000 n=12
Check Time 8.675s (± 0.46%) 8.652s (± 0.47%) ~ 8.534s 8.733s p=0.386 n=12
Emit Time 0.437s (± 3.14%) 0.440s (± 4.28%) ~ 0.420s 0.519s p=0.433 n=12
Total Time 10.401s (± 0.47%) 10.360s (± 0.41%) ~ 10.214s 10.423s p=0.070 n=12
strada-build-src - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,390,229 1,394,504 +4,275 (+ 0.31%) ~ ~ p=0.000 n=12
Types 441,498 463,392 🔻+21,894 (+ 4.96%) ~ ~ p=0.000 n=12
Memory Used 1,619,944k (± 0.59%) 1,626,161k (± 0.64%) ~ 1,610,961k 1,660,431k p=0.160 n=12
Memory Allocs 92,057,154 (± 0.11%) 92,900,717 (± 0.16%) +843,563 (+ 0.92%) 92,531,493 93,245,962 p=0.000 n=12
Config Time 0.003s (±16.76%) 0.003s (±14.60%) ~ 0.002s 0.004s p=0.767 n=12
Parse Time 0.192s (± 3.92%) 0.192s (± 4.22%) ~ 0.173s 0.219s p=1.000 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 1.812s (± 0.64%) 1.799s (± 0.53%) ~ 1.777s 1.827s p=0.089 n=12
Emit Time 0.306s (± 5.63%) 0.302s (± 5.26%) ~ 0.261s 0.342s p=0.831 n=12
Total Time 23.468s (± 0.67%) 23.373s (± 0.96%) ~ 22.849s 23.896s p=0.443 n=12
strada-compiler - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 334,953 336,483 +1,530 (+ 0.46%) ~ ~ p=0.000 n=12
Types 197,616 205,554 🔻+7,938 (+ 4.02%) ~ ~ p=0.000 n=12
Memory Used 296,080k (± 0.01%) 298,674k (± 0.02%) +2,594k (+ 0.88%) 298,475k 298,850k p=0.000 n=12
Memory Allocs 4,621,446 (± 0.01%) 4,662,673 (± 0.01%) +41,227 (+ 0.89%) 4,662,061 4,663,441 p=0.000 n=12
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=12
Parse Time 0.118s (± 4.83%) 0.113s (± 3.75%) ~ 0.103s 0.125s p=0.172 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 1.038s (± 0.58%) 1.037s (± 0.69%) ~ 1.026s 1.062s p=0.638 n=12
Emit Time 0.149s (± 4.29%) 0.155s (± 3.85%) ~ 0.135s 0.170s p=0.183 n=12
Total Time 1.361s (± 0.68%) 1.361s (± 0.49%) ~ 1.339s 1.379s p=0.723 n=12
ts-pre-modules - native
Errors 87 87 ~ ~ ~ p=1.000 n=12
Symbols 303,834 305,154 +1,320 (+ 0.43%) ~ ~ p=0.000 n=12
Types 181,663 188,573 +6,910 (+ 3.80%) ~ ~ p=0.000 n=12
Memory Used 256,649k (± 0.01%) 258,978k (± 0.01%) +2,329k (+ 0.91%) 258,894k 259,052k p=0.000 n=12
Memory Allocs 1,614,045 (± 0.01%) 1,642,061 (± 0.01%) +28,016 (+ 1.74%) 1,641,453 1,642,633 p=0.000 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.095s (± 4.04%) 0.095s (± 3.97%) ~ 0.087s 0.104s p=0.988 n=12
Bind Time 0.040s (±11.75%) 0.039s (±10.29%) ~ 0.032s 0.051s p=0.702 n=12
Check Time 0.814s (± 0.57%) 0.814s (± 0.78%) ~ 0.799s 0.832s p=0.876 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 0.963s (± 0.77%) 0.961s (± 0.55%) ~ 0.946s 0.970s p=0.832 n=12
vscode - native
Errors 395 395 ~ ~ ~ p=1.000 n=12
Symbols 11,335,260 11,347,337 +12,077 (+ 0.11%) ~ ~ p=0.000 n=12
Types 3,740,503 3,829,865 +89,362 (+ 2.39%) ~ ~ p=0.000 n=12
Memory Used 6,458,564k (± 0.01%) 6,491,649k (± 0.01%) +33,085k (+ 0.51%) 6,489,890k 6,493,812k p=0.000 n=12
Memory Allocs 55,417,594 (± 0.01%) 55,941,662 (± 0.01%) +524,069 (+ 0.95%) 55,930,855 55,965,440 p=0.000 n=12
Config Time 0.075s (± 0.48%) 0.075s (± 0.33%) ~ 0.074s 0.075s p=0.230 n=12
Parse Time 1.850s (± 2.77%) 1.823s (± 4.03%) ~ 1.680s 2.025s p=0.355 n=12
Bind Time 0.534s (±14.88%) 0.632s (±18.48%) ~ 0.448s 0.953s p=0.324 n=12
Check Time 14.115s (± 0.93%) 15.143s (± 0.81%) 🔻+1.027s (+ 7.28%) 14.824s 15.364s p=0.000 n=12
Emit Time 4.926s (± 8.21%) 5.057s (±10.85%) ~ 4.200s 6.109s p=0.887 n=12
Total Time 21.586s (± 1.51%) 22.817s (± 2.17%) 🔻+1.231s (+ 5.70%) 21.989s 23.867s p=0.001 n=12
webpack - native
Errors 585 585 ~ ~ ~ p=1.000 n=12
Symbols 1,317,332 1,318,570 +1,238 (+ 0.09%) ~ ~ p=0.000 n=12
Types 619,546 629,069 +9,523 (+ 1.54%) ~ ~ p=0.000 n=12
Memory Used 945,374k (± 0.01%) 948,636k (± 0.02%) +3,262k (+ 0.35%) 948,103k 949,027k p=0.000 n=12
Memory Allocs 6,672,435 (± 0.02%) 6,706,031 (± 0.04%) +33,596 (+ 0.50%) 6,702,370 6,719,611 p=0.000 n=12
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=12
Parse Time 0.304s (± 4.10%) 0.300s (± 3.63%) ~ 0.279s 0.335s p=0.541 n=12
Bind Time 0.081s (±20.94%) 0.092s (±18.07%) ~ 0.064s 0.137s p=0.354 n=12
Check Time 2.400s (± 0.59%) 2.397s (± 0.44%) ~ 2.370s 2.431s p=0.486 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 2.827s (± 0.41%) 2.835s (± 0.31%) ~ 2.817s 2.871s p=0.370 n=12
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,061,928 1,067,952 +6,024 (+ 0.57%) ~ ~ p=0.000 n=12
Types 389,645 403,065 +13,420 (+ 3.44%) ~ ~ p=0.000 n=12
Memory Used 547,503k (± 0.02%) 553,141k (± 0.01%) +5,638k (+ 1.03%) 552,966k 553,421k p=0.000 n=12
Memory Allocs 4,882,413 (± 0.07%) 4,973,128 (± 0.06%) +90,715 (+ 1.86%) 4,964,432 4,979,310 p=0.000 n=12
Config Time 0.003s 0.003s ~ ~ ~ p=1.000 n=12
Parse Time 0.140s (± 3.05%) 0.140s (± 1.37%) ~ 0.135s 0.147s p=0.921 n=12
Bind Time 0.051s (±15.31%) 0.044s (±14.80%) ~ 0.033s 0.066s p=0.116 n=12
Check Time 1.125s (± 0.39%) 1.142s (± 0.64%) +0.017s (+ 1.55%) 1.132s 1.162s p=0.000 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 1.329s (± 0.62%) 1.339s (± 0.59%) ~ 1.319s 1.360s p=0.057 n=12
System info unknown
Hosts
  • native
Scenarios
  • Compiler-Unions - native
  • angular-1 - native
  • mui-docs - native
  • strada-build-src - native
  • strada-compiler - native
  • ts-pre-modules - native
  • vscode - native
  • webpack - native
  • xstate-main - native
Benchmark Name Iterations
Current pr 12
Baseline baseline 12

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!

@Andarist Mateusz Burzyński (Andarist) changed the title [experiment] Skip incompatible discriminants when inferring from union sources [experiment] Skip incompatible discriminants when inferring Oct 13, 2026
@typescript-automation typescript-automation Bot added For Milestone Bug PRs that fix a bug with a specific milestone and removed For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Oct 13, 2026
@weswigham

Copy link
Copy Markdown
Member

Looks like it's neutral to +8% check time, project dependent. It's not terrible now, compared to the JS codebase (where it cost way way more to do this) - maybe some caching of the discriminable item results could improve the perf back to neutral? Or maybe adding back in the optional prop fast path you had in before? I'm guessing that's where most of the additional cost lies in the new fully-discriminating version, but I don't know for sure.

Could also use some most test cases that show off where is actually makes us produce better inference results, though? A cursory check of the tests don't show me anything that I think improve? I'd assume cases like those from #43853 get improved, though.

@Andarist

Copy link
Copy Markdown
Contributor Author

Or maybe adding back in the optional prop fast path you had in before?

Yeah, I have it locally for a week already - just gotta find a moment to breathe and push it out and ask for a fresh rerun.

Could also use some most test cases that show off where is actually makes us produce better inference results, though?

I think I already have some here or on that local branch - anyway... I'll get to this some time later this week and push everything I have for this.

I'd assume cases like those from #43853 get improved, though.

Oh, nice! I wasn't aware of this PR - I'll take a closer look at this one too (and its tests)

@jakebailey

Copy link
Copy Markdown
Member

I'd hope we can make the perf better still? I really hope to not make us slower if we can avoid it

@jakebailey

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) test it

@typescript-automation

typescript-automation Bot commented Oct 22, 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!

@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=12
Symbols 115,276 115,496 +220 (+ 0.19%) ~ ~ p=0.000 n=12
Types 79,613 79,979 +366 (+ 0.46%) ~ ~ p=0.000 n=12
Memory Used 113,513k (± 0.08%) 114,966k (± 0.07%) +1,453k (+ 1.28%) 114,773k 115,177k p=0.000 n=12
Memory Allocs 2,212,319 (± 0.01%) 2,222,105 (± 0.01%) +9,786 (+ 0.44%) 2,221,701 2,222,551 p=0.000 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.039s (± 3.37%) 0.040s (± 3.66%) 🔻+0.002s (+ 4.75%) 0.037s 0.043s p=0.046 n=12
Bind Time 0.014s (±12.11%) 0.013s (±10.28%) ~ 0.011s 0.017s p=0.594 n=12
Check Time 0.462s (± 0.74%) 0.467s (± 0.82%) +0.006s (+ 1.21%) 0.460s 0.478s p=0.042 n=12
Emit Time 0.267s (± 2.40%) 0.271s (± 1.84%) ~ 0.261s 0.285s p=0.354 n=12
Total Time 0.788s (± 0.81%) 0.799s (± 0.82%) ~ 0.786s 0.822s p=0.053 n=12
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=12
Symbols 846,819 (± 0.07%) 849,226 (± 0.07%) +2,407 (+ 0.28%) 847,556 850,439 p=0.000 n=12
Types 247,032 (± 0.00%) 266,386 (± 0.00%) 🔻+19,354 (+ 7.83%) 266,382 266,390 p=0.000 n=12
Memory Used 596,094k (± 0.02%) 600,933k (± 0.03%) +4,839k (+ 0.81%) 600,506k 601,215k p=0.000 n=12
Memory Allocs 13,129,352 (± 0.06%) 13,186,552 (± 0.03%) +57,200 (+ 0.44%) 13,179,676 13,198,378 p=0.000 n=12
Config Time 0.017s (± 1.86%) 0.017s (± 1.45%) ~ 0.016s 0.017s p=0.640 n=12
Parse Time 0.220s (± 4.58%) 0.222s (± 2.65%) ~ 0.207s 0.243s p=0.224 n=12
Bind Time 0.086s (±13.42%) 0.090s (±12.54%) ~ 0.060s 0.109s p=0.504 n=12
Check Time 0s 0s ~ ~ ~ p=1.000 n=12
Emit Time 1.533s (± 1.59%) 1.564s (± 1.35%) +0.030s (+ 1.99%) 1.507s 1.625s p=0.029 n=12
Total Time 1.874s (± 1.57%) 1.913s (± 1.08%) +0.039s (+ 2.06%) 1.863s 1.974s p=0.027 n=12
arktype - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,757,463 1,763,860 +6,397 (+ 0.36%) ~ ~ p=0.000 n=12
Types 943,966 955,077 +11,111 (+ 1.18%) ~ ~ p=0.000 n=12
Memory Used 703,603k (± 0.01%) 707,828k (± 0.01%) +4,225k (+ 0.60%) 707,627k 707,939k p=0.000 n=12
Memory Allocs 13,292,125 (± 0.02%) 13,370,204 (± 0.01%) +78,079 (+ 0.59%) 13,368,345 13,375,410 p=0.000 n=12
Config Time 0.002s 0.002s ~ ~ ~ p=1.000 n=12
Parse Time 0.071s (± 4.00%) 0.070s (± 4.10%) ~ 0.064s 0.079s p=0.559 n=12
Bind Time 0.023s (±15.60%) 0.020s (± 7.23%) ~ 0.018s 0.026s p=0.435 n=12
Check Time 2.049s (± 0.55%) 2.102s (± 0.42%) +0.053s (+ 2.57%) 2.078s 2.125s p=0.000 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 2.191s (± 0.38%) 2.236s (± 0.34%) +0.045s (+ 2.07%) 2.215s 2.260s p=0.000 n=12
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=12
Symbols 4,331,983 4,336,283 +4,300 (+ 0.10%) ~ ~ p=0.000 n=12
Types 1,370,520 1,379,749 +9,229 (+ 0.67%) ~ ~ p=0.000 n=12
Memory Used 2,626,968k (± 0.06%) 2,631,657k (± 0.05%) +4,690k (+ 0.18%) 2,627,982k 2,634,713k p=0.000 n=12
Memory Allocs 27,716,388 (± 0.07%) 27,740,170 (± 0.06%) ~ 27,694,050 27,769,554 p=0.078 n=12
Config Time 0.017s (± 1.07%) 0.017s (± 1.86%) ~ 0.016s 0.017s p=0.317 n=12
Parse Time 0.478s (± 4.10%) 0.465s (± 2.41%) ~ 0.439s 0.494s p=0.311 n=12
Bind Time 0.002s 0.002s ~ ~ ~ p=1.000 n=12
Check Time 7.153s (± 0.45%) 7.168s (± 0.36%) ~ 7.135s 7.274s p=0.192 n=12
Emit Time 0.507s (±13.46%) 0.586s (± 9.41%) ~ 0.415s 0.660s p=0.075 n=12
Total Time 8.884s (± 0.89%) 8.982s (± 0.55%) ~ 8.750s 9.053s p=0.071 n=12
sentry - native
Errors 2 2 ~ ~ ~ p=1.000 n=12
Symbols 7,459,653 7,467,866 +8,213 (+ 0.11%) ~ ~ p=0.000 n=12
Types 2,647,172 2,735,465 +88,293 (+ 3.34%) ~ ~ p=0.000 n=12
Memory Used 3,803,922k (± 0.03%) 3,822,493k (± 0.02%) +18,571k (+ 0.49%) 3,820,246k 3,825,999k p=0.000 n=12
Memory Allocs 77,213,017 (± 0.07%) 77,418,744 (± 0.06%) +205,728 (+ 0.27%) 77,324,824 77,578,707 p=0.000 n=12
Config Time 0.061s (± 0.40%) 0.060s (± 0.54%) ~ 0.060s 0.061s p=0.089 n=12
Parse Time 1.018s (± 1.99%) 1.010s (± 1.98%) ~ 0.955s 1.068s p=0.469 n=12
Bind Time 0.308s (±12.22%) 0.309s (±10.20%) ~ 0.260s 0.434s p=0.660 n=12
Check Time 14.791s (± 0.73%) 14.878s (± 0.49%) ~ 14.733s 15.088s p=0.076 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 16.253s (± 0.68%) 16.337s (± 0.48%) ~ 16.168s 16.551s p=0.128 n=12
social-app - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 2,568,629 2,590,683 +22,054 (+ 0.86%) ~ ~ p=0.000 n=12
Types 1,163,035 1,192,699 +29,664 (+ 2.55%) ~ ~ p=0.000 n=12
Memory Used 1,212,867k (± 0.02%) 1,228,457k (± 0.02%) +15,590k (+ 1.29%) 1,227,728k 1,229,293k p=0.000 n=12
Memory Allocs 13,970,870 (± 0.12%) 14,135,045 (± 0.17%) +164,175 (+ 1.18%) 14,085,559 14,218,567 p=0.000 n=12
Config Time 0.017s (± 1.65%) 0.017s (± 1.06%) ~ 0.017s 0.018s p=0.590 n=12
Parse Time 0.351s (± 2.19%) 0.354s (± 2.29%) ~ 0.336s 0.374s p=0.618 n=12
Bind Time 0.085s (±12.54%) 0.075s (± 2.98%) ~ 0.067s 0.078s p=0.172 n=12
Check Time 3.578s (± 0.36%) 3.602s (± 0.29%) +0.024s (+ 0.68%) 3.579s 3.630s p=0.015 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 4.056s (± 0.57%) 4.069s (± 0.34%) ~ 4.038s 4.113s p=0.259 n=12
strada-build-src - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,388,680 1,392,969 +4,289 (+ 0.31%) ~ ~ p=0.000 n=12
Types 441,862 463,230 🔻+21,368 (+ 4.84%) ~ ~ p=0.000 n=12
Memory Used 1,311,852k (± 0.51%) 1,322,366k (± 0.93%) ~ 1,303,867k 1,372,043k p=0.198 n=12
Memory Allocs 78,072,568 (± 0.08%) 78,641,051 (± 0.11%) +568,484 (+ 0.73%) 78,384,943 78,775,275 p=0.000 n=12
Config Time 0.005s (± 9.18%) 0.004s (±11.29%) ~ 0.003s 0.005s p=0.795 n=12
Parse Time 0.305s (± 2.04%) 0.314s (± 1.48%) +0.009s (+ 2.81%) 0.297s 0.322s p=0.019 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 2.010s (± 0.58%) 2.020s (± 0.38%) ~ 2.003s 2.040s p=0.110 n=12
Emit Time 0.347s (± 4.94%) 0.358s (± 4.19%) ~ 0.338s 0.421s p=0.434 n=12
Total Time 23.746s (± 0.51%) 24.053s (± 0.42%) +0.307s (+ 1.29%) 23.918s 24.383s p=0.001 n=12
strada-compiler - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 334,953 336,483 +1,530 (+ 0.46%) ~ ~ p=0.000 n=12
Types 197,616 205,554 🔻+7,938 (+ 4.02%) ~ ~ p=0.000 n=12
Memory Used 247,428k (± 0.04%) 249,338k (± 0.02%) +1,910k (+ 0.77%) 249,229k 249,533k p=0.000 n=12
Memory Allocs 4,326,018 (± 0.02%) 4,360,368 (± 0.01%) +34,350 (+ 0.79%) 4,359,312 4,360,864 p=0.000 n=12
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=12
Parse Time 0.112s (± 5.20%) 0.108s (± 3.84%) ~ 0.097s 0.118s p=0.504 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 0.958s (± 0.46%) 0.963s (± 0.44%) ~ 0.953s 0.975s p=0.075 n=12
Emit Time 0.150s (± 4.67%) 0.156s (± 4.56%) ~ 0.140s 0.178s p=0.271 n=12
Total Time 1.273s (± 0.86%) 1.284s (± 0.60%) ~ 1.258s 1.301s p=0.124 n=12
t3code-server - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 11,588,087 11,613,949 +25,862 (+ 0.22%) ~ ~ p=0.000 n=12
Types 3,062,556 3,128,026 +65,470 (+ 2.14%) ~ ~ p=0.000 n=12
Memory Used 3,945,576k (± 0.01%) 3,968,398k (± 0.02%) +22,821k (+ 0.58%) 3,966,843k 3,970,592k p=0.000 n=12
Memory Allocs 41,558,626 (± 0.08%) 41,918,138 (± 0.04%) +359,512 (+ 0.87%) 41,885,772 41,968,329 p=0.000 n=12
Config Time 0.006s 0.006s ~ ~ ~ p=1.000 n=12
Parse Time 0.573s (± 2.67%) 0.581s (± 2.52%) ~ 0.534s 0.628s p=0.417 n=12
Bind Time 0.197s (±16.30%) 0.166s (±10.43%) ~ 0.150s 0.240s p=0.283 n=12
Check Time 18.578s (± 0.27%) 18.566s (± 0.48%) ~ 18.416s 18.790s p=0.266 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 19.370s (± 0.28%) 19.336s (± 0.45%) ~ 19.166s 19.554s p=0.183 n=12
ts-pre-modules - native
Errors 87 87 ~ ~ ~ p=1.000 n=12
Symbols 303,834 305,154 +1,320 (+ 0.43%) ~ ~ p=0.000 n=12
Types 181,663 188,573 +6,910 (+ 3.80%) ~ ~ p=0.000 n=12
Memory Used 215,197k (± 0.02%) 216,969k (± 0.02%) +1,773k (+ 0.82%) 216,878k 217,057k p=0.000 n=12
Memory Allocs 1,400,536 (± 0.01%) 1,423,507 (± 0.01%) +22,971 (+ 1.64%) 1,423,042 1,423,980 p=0.000 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.097s (± 4.42%) 0.103s (± 4.79%) ~ 0.089s 0.113s p=0.091 n=12
Bind Time 0.042s (± 9.19%) 0.042s (± 6.66%) ~ 0.031s 0.047s p=0.853 n=12
Check Time 0.745s (± 1.05%) 0.740s (± 0.64%) ~ 0.733s 0.756s p=0.183 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 0.899s (± 0.99%) 0.899s (± 0.49%) ~ 0.885s 0.911s p=0.854 n=12
vscode - native
Errors 10 10 ~ ~ ~ p=1.000 n=12
Symbols 13,087,251 13,100,868 +13,617 (+ 0.10%) ~ ~ p=0.000 n=12
Types 4,258,642 4,364,294 +105,652 (+ 2.48%) ~ ~ p=0.000 n=12
Memory Used 6,100,422k (± 0.02%) 6,127,992k (± 0.01%) +27,570k (+ 0.45%) 6,126,193k 6,131,869k p=0.000 n=12
Memory Allocs 62,048,779 (± 0.01%) 62,659,924 (± 0.01%) +611,145 (+ 0.98%) 62,652,600 62,681,606 p=0.000 n=12
Config Time 0.064s (± 0.28%) 0.064s ~ ~ ~ p=1.000 n=12
Parse Time 1.545s (± 2.77%) 1.516s (± 2.30%) ~ 1.445s 1.601s p=0.355 n=12
Bind Time 0.567s (±16.36%) 0.614s (±13.46%) ~ 0.439s 0.803s p=0.355 n=12
Check Time 14.660s (± 1.20%) 16.021s (± 1.07%) 🔻+1.361s (+ 9.28%) 15.702s 16.323s p=0.000 n=12
Emit Time 4.781s (± 5.62%) 4.602s (± 6.88%) ~ 3.987s 5.177s p=0.434 n=12
Total Time 21.687s (± 1.15%) 22.889s (± 0.93%) 🔻+1.202s (+ 5.54%) 22.421s 23.414s p=0.000 n=12
webpack - native
Errors 599 599 ~ ~ ~ p=1.000 n=12
Symbols 1,347,473 1,349,278 +1,805 (+ 0.13%) ~ ~ p=0.000 n=12
Types 651,043 661,995 +10,952 (+ 1.68%) ~ ~ p=0.000 n=12
Memory Used 858,385k (± 0.02%) 861,221k (± 0.02%) +2,836k (+ 0.33%) 860,767k 861,684k p=0.000 n=12
Memory Allocs 6,774,849 (± 0.02%) 6,809,140 (± 0.02%) +34,291 (+ 0.51%) 6,805,642 6,813,580 p=0.000 n=12
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=12
Parse Time 0.318s (± 2.26%) 0.314s (± 3.78%) ~ 0.272s 0.346s p=0.766 n=12
Bind Time 0.079s (± 7.84%) 0.080s (± 9.65%) ~ 0.069s 0.105s p=0.809 n=12
Check Time 2.975s (± 0.41%) 2.992s (± 0.39%) +0.017s (+ 0.58%) 2.943s 3.021s p=0.025 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 3.418s (± 0.34%) 3.434s (± 0.44%) ~ 3.371s 3.460s p=0.057 n=12
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,060,810 1,066,353 +5,543 (+ 0.52%) ~ ~ p=0.000 n=12
Types 389,671 403,318 +13,647 (+ 3.50%) ~ ~ p=0.000 n=12
Memory Used 471,756k (± 0.03%) 476,156k (± 0.02%) +4,400k (+ 0.93%) 475,932k 476,384k p=0.000 n=12
Memory Allocs 4,214,897 (± 0.06%) 4,294,355 (± 0.10%) +79,458 (+ 1.89%) 4,283,449 4,308,944 p=0.000 n=12
Config Time 0.003s 0.003s ~ ~ ~ p=1.000 n=12
Parse Time 0.135s (± 2.93%) 0.135s (± 3.15%) ~ 0.123s 0.142s p=0.966 n=12
Bind Time 0.046s (±13.58%) 0.045s (±17.44%) ~ 0.033s 0.065s p=1.000 n=12
Check Time 1.087s (± 0.81%) 1.101s (± 0.84%) +0.015s (+ 1.35%) 1.077s 1.124s p=0.030 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 1.280s (± 0.72%) 1.291s (± 0.70%) ~ 1.260s 1.308s p=0.091 n=12
System info unknown
Hosts
  • native
Scenarios
  • Compiler-Unions - native
  • angular-1 - native
  • arktype - native
  • mui-docs - native
  • sentry - native
  • social-app - native
  • strada-build-src - native
  • strada-compiler - native
  • t3code-server - native
  • ts-pre-modules - native
  • vscode - native
  • webpack - native
  • xstate-main - native
Benchmark Name Iterations
Current pr 12
Baseline baseline 12

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!

@jakebailey

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) test it

@typescript-automation

typescript-automation Bot commented Oct 22, 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!

@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=12
Symbols 115,276 115,496 +220 (+ 0.19%) ~ ~ p=0.000 n=12
Types 79,613 79,979 +366 (+ 0.46%) ~ ~ p=0.000 n=12
Memory Used 113,501k (± 0.08%) 114,961k (± 0.07%) +1,460k (+ 1.29%) 114,783k 115,246k p=0.000 n=12
Memory Allocs 2,212,163 (± 0.00%) 2,222,012 (± 0.01%) +9,849 (+ 0.45%) 2,221,785 2,222,459 p=0.000 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.039s (± 4.01%) 0.039s (± 5.09%) ~ 0.035s 0.044s p=0.741 n=12
Bind Time 0.014s (±10.84%) 0.014s (±12.09%) ~ 0.011s 0.018s p=0.592 n=12
Check Time 0.462s (± 0.65%) 0.468s (± 0.78%) +0.006s (+ 1.28%) 0.458s 0.479s p=0.014 n=12
Emit Time 0.266s (± 2.13%) 0.269s (± 1.86%) ~ 0.257s 0.286s p=0.599 n=12
Total Time 0.788s (± 0.89%) 0.796s (± 0.80%) ~ 0.780s 0.818s p=0.116 n=12
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=12
Symbols 847,198 (± 0.11%) 849,088 (± 0.07%) +1,890 (+ 0.22%) 847,924 851,228 p=0.003 n=12
Types 247,032 (± 0.00%) 266,387 (± 0.00%) 🔻+19,355 (+ 7.83%) 266,384 266,395 p=0.000 n=12
Memory Used 596,265k (± 0.02%) 600,850k (± 0.03%) +4,585k (+ 0.77%) 600,369k 601,264k p=0.000 n=12
Memory Allocs 13,131,219 (± 0.05%) 13,185,688 (± 0.04%) +54,468 (+ 0.41%) 13,180,656 13,202,774 p=0.000 n=12
Config Time 0.017s (± 1.45%) 0.017s (± 1.70%) ~ 0.016s 0.017s p=1.000 n=12
Parse Time 0.215s (± 1.21%) 0.220s (± 1.63%) ~ 0.210s 0.227s p=0.062 n=12
Bind Time 0.091s (± 7.98%) 0.086s (±13.81%) ~ 0.059s 0.108s p=0.766 n=12
Check Time 0s 0s ~ ~ ~ p=1.000 n=12
Emit Time 1.526s (± 1.04%) 1.551s (± 1.16%) +0.025s (+ 1.66%) 1.508s 1.616s p=0.028 n=12
Total Time 1.870s (± 1.22%) 1.891s (± 1.15%) ~ 1.830s 1.943s p=0.139 n=12
arktype - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,757,463 1,763,860 +6,397 (+ 0.36%) ~ ~ p=0.000 n=12
Types 943,966 955,077 +11,111 (+ 1.18%) ~ ~ p=0.000 n=12
Memory Used 703,580k (± 0.01%) 707,830k (± 0.01%) +4,251k (+ 0.60%) 707,619k 707,944k p=0.000 n=12
Memory Allocs 13,288,186 (± 0.02%) 13,370,454 (± 0.01%) +82,267 (+ 0.62%) 13,367,763 13,378,172 p=0.000 n=12
Config Time 0.002s 0.002s ~ ~ ~ p=1.000 n=12
Parse Time 0.069s (± 4.52%) 0.071s (± 4.09%) ~ 0.064s 0.079s p=0.257 n=12
Bind Time 0.020s (±12.84%) 0.021s (±12.05%) ~ 0.018s 0.033s p=0.190 n=12
Check Time 2.052s (± 0.40%) 2.100s (± 0.39%) +0.048s (+ 2.36%) 2.070s 2.118s p=0.000 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 2.186s (± 0.42%) 2.239s (± 0.25%) +0.052s (+ 2.40%) 2.226s 2.257s p=0.000 n=12
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=12
Symbols 4,331,983 4,336,283 +4,300 (+ 0.10%) ~ ~ p=0.000 n=12
Types 1,370,520 1,379,749 +9,229 (+ 0.67%) ~ ~ p=0.000 n=12
Memory Used 2,626,358k (± 0.05%) 2,631,279k (± 0.06%) +4,921k (+ 0.19%) 2,626,136k 2,635,782k p=0.000 n=12
Memory Allocs 27,690,500 (± 0.06%) 27,735,524 (± 0.06%) +45,024 (+ 0.16%) 27,688,434 27,766,849 p=0.005 n=12
Config Time 0.017s (± 1.07%) 0.017s (± 1.70%) ~ 0.016s 0.017s p=0.590 n=12
Parse Time 0.470s (± 2.48%) 0.478s (± 2.29%) ~ 0.442s 0.509s p=0.354 n=12
Bind Time 0.002s (±24.21%) 0.002s ~ ~ ~ p=1.000 n=12
Check Time 7.151s (± 0.26%) 7.186s (± 0.53%) +0.036s (+ 0.50%) 7.141s 7.371s p=0.017 n=12
Emit Time 0.555s (±10.86%) 0.530s (±13.16%) ~ 0.415s 0.661s p=0.723 n=12
Total Time 8.945s (± 0.60%) 8.947s (± 0.93%) ~ 8.722s 9.065s p=0.291 n=12
sentry - native
Errors 2 2 ~ ~ ~ p=1.000 n=12
Symbols 7,459,653 7,467,866 +8,213 (+ 0.11%) ~ ~ p=0.000 n=12
Types 2,647,172 2,735,465 +88,293 (+ 3.34%) ~ ~ p=0.000 n=12
Memory Used 3,803,303k (± 0.03%) 3,823,236k (± 0.04%) +19,933k (+ 0.52%) 3,820,562k 3,828,241k p=0.000 n=12
Memory Allocs 77,155,803 (± 0.09%) 77,408,957 (± 0.09%) +253,154 (+ 0.33%) 77,265,276 77,604,251 p=0.000 n=12
Config Time 0.060s (± 0.51%) 0.061s (± 0.53%) ~ 0.060s 0.061s p=0.414 n=12
Parse Time 1.011s (± 2.89%) 1.020s (± 2.29%) ~ 0.956s 1.087s p=0.370 n=12
Bind Time 0.336s (±13.81%) 0.314s (±13.09%) ~ 0.262s 0.442s p=0.702 n=12
Check Time 14.736s (± 0.33%) 14.861s (± 0.75%) +0.125s (+ 0.85%) 14.698s 15.188s p=0.017 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 16.217s (± 0.32%) 16.333s (± 0.62%) +0.116s (+ 0.72%) 16.154s 16.641s p=0.032 n=12
social-app - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 2,568,629 2,590,683 +22,054 (+ 0.86%) ~ ~ p=0.000 n=12
Types 1,163,035 1,192,699 +29,664 (+ 2.55%) ~ ~ p=0.000 n=12
Memory Used 1,212,860k (± 0.02%) 1,228,626k (± 0.02%) +15,766k (+ 1.30%) 1,228,272k 1,229,503k p=0.000 n=12
Memory Allocs 13,972,384 (± 0.14%) 14,133,510 (± 0.25%) +161,126 (+ 1.15%) 14,084,961 14,258,551 p=0.000 n=12
Config Time 0.017s (± 1.65%) 0.017s (± 1.06%) ~ 0.017s 0.018s p=0.590 n=12
Parse Time 0.356s (± 2.06%) 0.355s (± 2.92%) ~ 0.327s 0.379s p=0.832 n=12
Bind Time 0.074s (± 2.48%) 0.081s (±14.01%) ~ 0.071s 0.127s p=0.737 n=12
Check Time 3.593s (± 0.39%) 3.605s (± 0.33%) ~ 3.574s 3.643s p=0.401 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 4.061s (± 0.42%) 4.081s (± 0.45%) ~ 4.034s 4.140s p=0.098 n=12
strada-build-src - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,388,680 1,392,969 +4,289 (+ 0.31%) ~ ~ p=0.000 n=12
Types 441,862 463,230 🔻+21,368 (+ 4.84%) ~ ~ p=0.000 n=12
Memory Used 1,313,243k (± 0.41%) 1,325,521k (± 0.65%) +12,278k (+ 0.93%) 1,304,127k 1,351,801k p=0.028 n=12
Memory Allocs 78,037,069 (± 0.13%) 78,753,997 (± 0.05%) +716,928 (+ 0.92%) 78,645,454 78,877,068 p=0.000 n=12
Config Time 0.004s (±13.41%) 0.004s (±11.30%) ~ 0.003s 0.005s p=0.230 n=12
Parse Time 0.307s (± 2.74%) 0.307s (± 2.24%) ~ 0.292s 0.326s p=0.810 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 2.002s (± 0.54%) 2.007s (± 0.47%) ~ 1.980s 2.030s p=0.580 n=12
Emit Time 0.343s (± 3.10%) 0.356s (± 3.13%) ~ 0.335s 0.391s p=0.147 n=12
Total Time 23.642s (± 0.67%) 23.796s (± 0.51%) ~ 23.524s 24.218s p=0.198 n=12
strada-compiler - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 334,953 336,483 +1,530 (+ 0.46%) ~ ~ p=0.000 n=12
Types 197,616 205,554 🔻+7,938 (+ 4.02%) ~ ~ p=0.000 n=12
Memory Used 247,433k (± 0.03%) 249,376k (± 0.02%) +1,943k (+ 0.79%) 249,268k 249,483k p=0.000 n=12
Memory Allocs 4,325,735 (± 0.01%) 4,360,322 (± 0.01%) +34,587 (+ 0.80%) 4,359,362 4,361,496 p=0.000 n=12
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=12
Parse Time 0.110s (± 4.40%) 0.115s (± 6.41%) ~ 0.099s 0.130s p=0.310 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 0.957s (± 0.59%) 0.960s (± 0.63%) ~ 0.948s 0.977s p=0.401 n=12
Emit Time 0.151s (± 7.31%) 0.160s (± 5.40%) ~ 0.131s 0.181s p=0.259 n=12
Total Time 1.273s (± 1.13%) 1.291s (± 0.66%) +0.018s (+ 1.45%) 1.273s 1.311s p=0.018 n=12
t3code-server - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 11,588,087 11,613,949 +25,862 (+ 0.22%) ~ ~ p=0.000 n=12
Types 3,062,556 3,128,028 +65,472 (+ 2.14%) ~ ~ p=0.000 n=12
Memory Used 3,945,988k (± 0.02%) 3,968,627k (± 0.01%) +22,639k (+ 0.57%) 3,967,572k 3,970,292k p=0.000 n=12
Memory Allocs 41,551,665 (± 0.04%) 41,938,576 (± 0.05%) +386,911 (+ 0.93%) 41,875,127 41,977,317 p=0.000 n=12
Config Time 0.006s 0.006s (± 2.98%) ~ 0.006s 0.007s p=1.000 n=12
Parse Time 0.581s (± 1.82%) 0.585s (± 2.89%) ~ 0.545s 0.635s p=0.600 n=12
Bind Time 0.162s (± 7.95%) 0.201s (±15.18%) 🔻+0.039s (+24.07%) 0.154s 0.277s p=0.007 n=12
Check Time 18.615s (± 0.49%) 18.918s (± 0.86%) +0.303s (+ 1.63%) 18.546s 19.545s p=0.001 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 19.378s (± 0.50%) 19.729s (± 0.77%) +0.351s (+ 1.81%) 19.389s 20.326s p=0.000 n=12
ts-pre-modules - native
Errors 87 87 ~ ~ ~ p=1.000 n=12
Symbols 303,834 305,154 +1,320 (+ 0.43%) ~ ~ p=0.000 n=12
Types 181,663 188,573 +6,910 (+ 3.80%) ~ ~ p=0.000 n=12
Memory Used 215,190k (± 0.02%) 216,992k (± 0.02%) +1,802k (+ 0.84%) 216,897k 217,075k p=0.000 n=12
Memory Allocs 1,400,771 (± 0.01%) 1,423,654 (± 0.01%) +22,883 (+ 1.63%) 1,423,227 1,424,026 p=0.000 n=12
Config Time 0.000s 0.000s (±217.90%) ~ 0.000s 0.001s p=1.000 n=12
Parse Time 0.096s (± 4.58%) 0.093s (± 3.33%) ~ 0.085s 0.101s p=0.468 n=12
Bind Time 0.039s (± 9.12%) 0.042s (± 7.99%) ~ 0.032s 0.049s p=0.245 n=12
Check Time 0.741s (± 0.81%) 0.742s (± 1.05%) ~ 0.730s 0.767s p=0.966 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 0.891s (± 0.66%) 0.892s (± 0.61%) ~ 0.875s 0.903s p=0.619 n=12
vscode - native
Errors 10 10 ~ ~ ~ p=1.000 n=12
Symbols 13,166,018 13,179,174 +13,156 (+ 0.10%) ~ ~ p=0.000 n=12
Types 4,291,594 4,398,140 +106,546 (+ 2.48%) ~ ~ p=0.000 n=12
Memory Used 6,130,662k (± 0.02%) 6,159,893k (± 0.02%) +29,231k (+ 0.48%) 6,157,769k 6,163,557k p=0.000 n=12
Memory Allocs 62,358,959 (± 0.02%) 62,973,591 (± 0.02%) +614,632 (+ 0.99%) 62,960,645 63,019,542 p=0.000 n=12
Config Time 0.077s (± 0.42%) 0.078s (± 0.23%) +0.001s (+ 0.75%) 0.078s 0.079s p=0.009 n=12
Parse Time 1.946s (± 1.91%) 1.910s (± 2.40%) ~ 1.815s 2.063s p=0.198 n=12
Bind Time 0.621s (± 9.14%) 0.690s (±12.09%) ~ 0.544s 0.962s p=0.193 n=12
Check Time 16.757s (± 0.51%) 18.236s (± 0.83%) 🔻+1.479s (+ 8.82%) 17.896s 18.458s p=0.000 n=12
Emit Time 5.358s (± 5.95%) 5.495s (± 5.80%) ~ 4.815s 6.256s p=0.579 n=12
Total Time 24.839s (± 1.20%) 26.490s (± 1.01%) 🔻+1.651s (+ 6.65%) 25.797s 27.004s p=0.000 n=12
webpack - native
Errors 600 600 ~ ~ ~ p=1.000 n=12
Symbols 1,347,151 1,348,702 +1,551 (+ 0.12%) ~ ~ p=0.000 n=12
Types 648,706 659,440 +10,734 (+ 1.65%) ~ ~ p=0.000 n=12
Memory Used 855,102k (± 0.02%) 857,486k (± 0.02%) +2,384k (+ 0.28%) 857,018k 857,710k p=0.000 n=12
Memory Allocs 6,760,114 (± 0.01%) 6,791,984 (± 0.01%) +31,870 (+ 0.47%) 6,789,031 6,794,576 p=0.000 n=12
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=12
Parse Time 0.310s (± 1.83%) 0.312s (± 2.30%) ~ 0.285s 0.329s p=0.434 n=12
Bind Time 0.076s (± 5.36%) 0.082s (±13.09%) ~ 0.071s 0.127s p=0.256 n=12
Check Time 3.026s (± 0.20%) 3.093s (± 0.73%) +0.067s (+ 2.21%) 3.035s 3.153s p=0.000 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 3.459s (± 0.28%) 3.533s (± 0.43%) +0.075s (+ 2.16%) 3.509s 3.586s p=0.000 n=12
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,060,810 1,066,353 +5,543 (+ 0.52%) ~ ~ p=0.000 n=12
Types 389,671 403,318 +13,647 (+ 3.50%) ~ ~ p=0.000 n=12
Memory Used 471,720k (± 0.02%) 476,141k (± 0.02%) +4,420k (+ 0.94%) 475,963k 476,405k p=0.000 n=12
Memory Allocs 4,214,758 (± 0.11%) 4,289,049 (± 0.08%) +74,291 (+ 1.76%) 4,280,924 4,296,561 p=0.000 n=12
Config Time 0.002s 0.002s ~ ~ ~ p=1.000 n=12
Parse Time 0.107s (± 3.33%) 0.102s (± 4.01%) 🟩-0.006s (- 5.12%) 0.096s 0.115s p=0.016 n=12
Bind Time 0.036s (±16.14%) 0.041s (±13.81%) ~ 0.027s 0.052s p=0.278 n=12
Check Time 0.903s (± 0.92%) 0.913s (± 0.74%) +0.010s (+ 1.14%) 0.898s 0.930s p=0.040 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 1.055s (± 1.03%) 1.064s (± 0.55%) ~ 1.044s 1.077s p=0.193 n=12
System info unknown
Hosts
  • native
Scenarios
  • Compiler-Unions - native
  • angular-1 - native
  • arktype - native
  • mui-docs - native
  • sentry - native
  • social-app - native
  • strada-build-src - native
  • strada-compiler - native
  • t3code-server - native
  • ts-pre-modules - native
  • vscode - native
  • webpack - native
  • xstate-main - native
Benchmark Name Iterations
Current pr 12
Baseline baseline 12

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!

@Andarist

Copy link
Copy Markdown
Contributor Author

Jake Bailey (@jakebailey) could u rerun perf tests here?

@jakebailey

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) perf test this faster

@typescript-automation

typescript-automation Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

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

Command Status Results
perf test this faster ✅ Started 👀 Results

@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=12
Symbols 115,276 115,496 +220 (+ 0.19%) ~ ~ p=0.000 n=12
Types 79,613 79,977 +364 (+ 0.46%) ~ ~ p=0.000 n=12
Memory Used 113,425k (± 0.04%) 114,969k (± 0.08%) +1,544k (+ 1.36%) 114,794k 115,191k p=0.000 n=12
Memory Allocs 2,212,216 (± 0.01%) 2,222,195 (± 0.00%) +9,979 (+ 0.45%) 2,221,963 2,222,464 p=0.000 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.040s (± 5.30%) 0.040s (± 5.81%) ~ 0.036s 0.046s p=0.639 n=12
Bind Time 0.013s (±11.03%) 0.015s (± 7.61%) ~ 0.011s 0.017s p=0.223 n=12
Check Time 0.466s (± 0.82%) 0.466s (± 1.14%) ~ 0.458s 0.481s p=0.701 n=12
Emit Time 0.266s (± 2.20%) 0.265s (± 1.91%) ~ 0.251s 0.276s p=1.000 n=12
Total Time 0.792s (± 0.86%) 0.792s (± 0.65%) ~ 0.781s 0.807s p=0.854 n=12
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=12
Symbols 847,014 (± 0.06%) 849,698 (± 0.07%) +2,684 (+ 0.32%) 848,806 851,173 p=0.000 n=12
Types 247,032 (± 0.00%) 266,386 (± 0.00%) 🔻+19,355 (+ 7.83%) 266,382 266,397 p=0.000 n=12
Memory Used 596,229k (± 0.02%) 601,071k (± 0.01%) +4,842k (+ 0.81%) 600,911k 601,218k p=0.000 n=12
Memory Allocs 13,138,519 (± 0.09%) 13,187,314 (± 0.02%) +48,796 (+ 0.37%) 13,183,741 13,198,288 p=0.000 n=12
Config Time 0.017s (± 1.45%) 0.017s (± 1.70%) ~ 0.016s 0.017s p=1.000 n=12
Parse Time 0.224s (± 2.66%) 0.221s (± 2.42%) ~ 0.211s 0.236s p=0.468 n=12
Bind Time 0.082s (±13.35%) 0.086s (±12.84%) ~ 0.060s 0.110s p=0.600 n=12
Check Time 0s 0s ~ ~ ~ p=1.000 n=12
Emit Time 1.559s (± 1.15%) 1.590s (± 1.16%) +0.030s (+ 1.96%) 1.550s 1.627s p=0.040 n=12
Total Time 1.903s (± 1.15%) 1.936s (± 0.76%) +0.032s (+ 1.69%) 1.899s 1.967s p=0.011 n=12
arktype - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,757,463 1,763,860 +6,397 (+ 0.36%) ~ ~ p=0.000 n=12
Types 943,966 955,077 +11,111 (+ 1.18%) ~ ~ p=0.000 n=12
Memory Used 703,592k (± 0.01%) 707,889k (± 0.01%) +4,297k (+ 0.61%) 707,657k 708,186k p=0.000 n=12
Memory Allocs 13,290,577 (± 0.01%) 13,371,421 (± 0.01%) +80,844 (+ 0.61%) 13,368,942 13,378,177 p=0.000 n=12
Config Time 0.002s 0.002s ~ ~ ~ p=1.000 n=12
Parse Time 0.068s (± 3.49%) 0.070s (± 3.89%) ~ 0.062s 0.077s p=0.201 n=12
Bind Time 0.023s (±12.67%) 0.023s (±15.61%) ~ 0.018s 0.035s p=0.612 n=12
Check Time 2.049s (± 0.41%) 2.098s (± 0.44%) +0.050s (+ 2.42%) 2.080s 2.125s p=0.000 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 2.185s (± 0.33%) 2.235s (± 0.36%) +0.050s (+ 2.31%) 2.217s 2.262s p=0.000 n=12
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=12
Symbols 4,331,983 4,336,283 +4,300 (+ 0.10%) ~ ~ p=0.000 n=12
Types 1,370,520 1,379,749 +9,229 (+ 0.67%) ~ ~ p=0.000 n=12
Memory Used 2,625,884k (± 0.06%) 2,631,716k (± 0.04%) +5,832k (+ 0.22%) 2,627,207k 2,634,397k p=0.000 n=12
Memory Allocs 27,704,089 (± 0.08%) 27,740,730 (± 0.05%) +36,641 (+ 0.13%) 27,697,468 27,787,671 p=0.004 n=12
Config Time 0.017s (± 1.45%) 0.017s (± 1.45%) ~ 0.016s 0.017s p=1.000 n=12
Parse Time 0.475s (± 2.14%) 0.476s (± 2.70%) ~ 0.425s 0.501s p=0.681 n=12
Bind Time 0.002s 0.002s ~ ~ ~ p=1.000 n=12
Check Time 7.174s (± 0.64%) 7.206s (± 0.50%) ~ 7.147s 7.310s p=0.284 n=12
Emit Time 0.539s (±11.72%) 0.519s (±11.58%) ~ 0.413s 0.653s p=0.681 n=12
Total Time 8.957s (± 0.68%) 8.971s (± 0.57%) ~ 8.763s 9.060s p=0.723 n=12
sentry - native
Errors 2 2 ~ ~ ~ p=1.000 n=12
Symbols 7,459,653 7,467,866 +8,213 (+ 0.11%) ~ ~ p=0.000 n=12
Types 2,647,172 2,735,392 +88,220 (+ 3.33%) ~ ~ p=0.000 n=12
Memory Used 3,803,313k (± 0.02%) 3,824,517k (± 0.07%) +21,204k (+ 0.56%) 3,820,966k 3,834,728k p=0.000 n=12
Memory Allocs 77,241,578 (± 0.22%) 77,564,463 (± 0.09%) +322,886 (+ 0.42%) 77,339,288 77,718,013 p=0.003 n=12
Config Time 0.061s (± 0.53%) 0.061s (± 0.53%) ~ 0.060s 0.061s p=1.000 n=12
Parse Time 1.042s (± 4.16%) 1.016s (± 2.41%) ~ 0.962s 1.077s p=0.580 n=12
Bind Time 0.305s (±10.85%) 0.324s (±15.06%) ~ 0.263s 0.467s p=0.451 n=12
Check Time 14.750s (± 0.42%) 14.760s (± 0.41%) ~ 14.631s 14.960s p=0.831 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 16.234s (± 0.44%) 16.231s (± 0.39%) ~ 16.089s 16.424s p=0.921 n=12
social-app - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 2,568,629 2,590,683 +22,054 (+ 0.86%) ~ ~ p=0.000 n=12
Types 1,163,035 1,192,693 +29,658 (+ 2.55%) ~ ~ p=0.000 n=12
Memory Used 1,212,671k (± 0.02%) 1,228,447k (± 0.01%) +15,777k (+ 1.30%) 1,228,100k 1,228,764k p=0.000 n=12
Memory Allocs 13,985,566 (± 0.17%) 14,151,756 (± 0.14%) +166,189 (+ 1.19%) 14,111,481 14,202,702 p=0.000 n=12
Config Time 0.017s (± 1.65%) 0.017s (± 1.86%) ~ 0.017s 0.018s p=0.667 n=12
Parse Time 0.359s (± 1.28%) 0.353s (± 1.63%) ~ 0.338s 0.368s p=0.147 n=12
Bind Time 0.077s (± 6.65%) 0.078s (± 6.15%) ~ 0.072s 0.101s p=0.169 n=12
Check Time 3.618s (± 0.26%) 3.620s (± 0.36%) ~ 3.585s 3.651s p=0.854 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 4.094s (± 0.26%) 4.090s (± 0.39%) ~ 4.047s 4.121s p=0.745 n=12
strada-build-src - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,388,680 1,392,969 +4,289 (+ 0.31%) ~ ~ p=0.000 n=12
Types 441,862 463,230 🔻+21,368 (+ 4.84%) ~ ~ p=0.000 n=12
Memory Used 1,310,165k (± 0.64%) 1,322,426k (± 0.58%) +12,261k (+ 0.94%) 1,309,654k 1,343,569k p=0.024 n=12
Memory Allocs 78,126,651 (± 0.05%) 78,670,667 (± 0.11%) +544,017 (+ 0.70%) 78,396,559 78,807,619 p=0.000 n=12
Config Time 0.004s (±11.16%) 0.004s (±15.62%) ~ 0.002s 0.006s p=0.978 n=12
Parse Time 0.311s (± 2.59%) 0.305s (± 2.24%) ~ 0.283s 0.326s p=0.247 n=12
Bind Time 0.000s (±217.90%) 0.000s (±217.90%) ~ 0.000s 0.003s p=1.000 n=12
Check Time 2.004s (± 0.49%) 2.020s (± 0.35%) +0.016s (+ 0.80%) 2.003s 2.044s p=0.011 n=12
Emit Time 0.356s (± 4.82%) 0.356s (± 4.00%) ~ 0.330s 0.408s p=0.831 n=12
Total Time 23.763s (± 0.60%) 23.990s (± 0.45%) +0.227s (+ 0.96%) 23.805s 24.262s p=0.015 n=12
strada-compiler - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 334,953 336,483 +1,530 (+ 0.46%) ~ ~ p=0.000 n=12
Types 197,616 205,554 🔻+7,938 (+ 4.02%) ~ ~ p=0.000 n=12
Memory Used 247,440k (± 0.02%) 249,361k (± 0.02%) +1,921k (+ 0.78%) 249,254k 249,469k p=0.000 n=12
Memory Allocs 4,326,015 (± 0.01%) 4,360,870 (± 0.01%) +34,855 (+ 0.81%) 4,360,071 4,361,624 p=0.000 n=12
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=12
Parse Time 0.111s (± 4.68%) 0.114s (± 4.06%) ~ 0.103s 0.126s p=0.432 n=12
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Check Time 0.959s (± 0.55%) 0.962s (± 0.66%) ~ 0.952s 0.982s p=0.681 n=12
Emit Time 0.146s (± 5.72%) 0.158s (± 4.79%) 🔻+0.012s (+ 8.24%) 0.138s 0.173s p=0.037 n=12
Total Time 1.268s (± 0.69%) 1.289s (± 0.81%) +0.021s (+ 1.65%) 1.258s 1.307s p=0.002 n=12
t3code-server - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 11,588,087 11,613,949 +25,862 (+ 0.22%) ~ ~ p=0.000 n=12
Types 3,062,556 3,128,013 +65,457 (+ 2.14%) ~ ~ p=0.000 n=12
Memory Used 3,945,902k (± 0.01%) 3,968,101k (± 0.01%) +22,198k (+ 0.56%) 3,967,358k 3,969,228k p=0.000 n=12
Memory Allocs 41,529,419 (± 0.04%) 41,956,849 (± 0.04%) +427,430 (+ 1.03%) 41,909,352 41,995,796 p=0.000 n=12
Config Time 0.006s 0.006s (± 4.55%) ~ 0.006s 0.007s p=0.217 n=12
Parse Time 0.560s (± 2.57%) 0.576s (± 3.28%) ~ 0.533s 0.618s p=0.213 n=12
Bind Time 0.187s (±14.43%) 0.188s (±14.81%) ~ 0.152s 0.273s p=0.766 n=12
Check Time 18.608s (± 0.42%) 18.882s (± 1.26%) +0.274s (+ 1.47%) 18.491s 19.892s p=0.023 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 19.377s (± 0.37%) 19.669s (± 1.27%) +0.291s (+ 1.50%) 19.232s 20.721s p=0.020 n=12
ts-pre-modules - native
Errors 87 87 ~ ~ ~ p=1.000 n=12
Symbols 303,834 305,154 +1,320 (+ 0.43%) ~ ~ p=0.000 n=12
Types 181,663 188,573 +6,910 (+ 3.80%) ~ ~ p=0.000 n=12
Memory Used 215,185k (± 0.02%) 216,936k (± 0.02%) +1,751k (+ 0.81%) 216,836k 217,053k p=0.000 n=12
Memory Allocs 1,400,653 (± 0.01%) 1,424,033 (± 0.01%) +23,381 (+ 1.67%) 1,423,626 1,424,739 p=0.000 n=12
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Parse Time 0.096s (± 3.54%) 0.094s (± 4.99%) ~ 0.083s 0.106s p=0.486 n=12
Bind Time 0.045s (± 8.08%) 0.042s (± 9.20%) ~ 0.034s 0.049s p=0.353 n=12
Check Time 0.734s (± 0.63%) 0.747s (± 0.83%) +0.014s (+ 1.84%) 0.734s 0.759s p=0.006 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 0.888s (± 0.55%) 0.897s (± 0.81%) ~ 0.882s 0.913s p=0.070 n=12
vscode - native
Errors 10 10 ~ ~ ~ p=1.000 n=12
Symbols 13,384,621 13,398,156 +13,535 (+ 0.10%) ~ ~ p=0.000 n=12
Types 4,344,502 4,453,901 +109,399 (+ 2.52%) ~ ~ p=0.000 n=12
Memory Used 6,217,465k (± 0.01%) 6,243,484k (± 0.02%) +26,019k (+ 0.42%) 6,240,756k 6,247,422k p=0.000 n=12
Memory Allocs 63,240,388 (± 0.00%) 63,992,424 (± 0.02%) +752,036 (+ 1.19%) 63,979,093 64,046,630 p=0.000 n=12
Config Time 0.078s (± 0.36%) 0.078s (± 0.41%) ~ 0.078s 0.079s p=0.667 n=12
Parse Time 1.914s (± 2.53%) 1.940s (± 2.27%) ~ 1.844s 2.086s p=0.319 n=12
Bind Time 0.773s (±11.91%) 0.701s (±13.52%) ~ 0.553s 0.967s p=0.311 n=12
Check Time 18.006s (± 1.06%) 19.967s (± 0.89%) 🔻+1.960s (+10.89%) 19.574s 20.215s p=0.000 n=12
Emit Time 5.900s (± 6.23%) 5.840s (± 4.98%) ~ 4.975s 6.563s p=0.590 n=12
Total Time 26.761s (± 1.16%) 28.612s (± 0.81%) 🔻+1.850s (+ 6.91%) 27.768s 29.049s p=0.000 n=12
webpack - native
Errors 602 602 ~ ~ ~ p=1.000 n=12
Symbols 1,351,469 1,352,976 +1,507 (+ 0.11%) ~ ~ p=0.000 n=12
Types 656,677 667,431 +10,754 (+ 1.64%) ~ ~ p=0.000 n=12
Memory Used 860,800k (± 0.02%) 863,697k (± 0.02%) +2,897k (+ 0.34%) 863,344k 863,920k p=0.000 n=12
Memory Allocs 6,829,772 (± 0.01%) 6,866,199 (± 0.02%) +36,427 (+ 0.53%) 6,863,981 6,872,104 p=0.000 n=12
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=12
Parse Time 0.322s (± 2.26%) 0.329s (± 2.72%) ~ 0.297s 0.341s p=0.146 n=12
Bind Time 0.079s (± 4.18%) 0.077s (± 2.72%) ~ 0.072s 0.084s p=0.808 n=12
Check Time 3.144s (± 0.66%) 3.185s (± 0.22%) +0.041s (+ 1.31%) 3.169s 3.208s p=0.001 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 3.594s (± 0.55%) 3.638s (± 0.40%) +0.045s (+ 1.25%) 3.584s 3.666s p=0.001 n=12
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=12
Symbols 1,060,810 1,066,353 +5,543 (+ 0.52%) ~ ~ p=0.000 n=12
Types 389,671 403,318 +13,647 (+ 3.50%) ~ ~ p=0.000 n=12
Memory Used 471,811k (± 0.03%) 476,201k (± 0.03%) +4,391k (+ 0.93%) 475,948k 476,611k p=0.000 n=12
Memory Allocs 4,216,164 (± 0.08%) 4,303,458 (± 0.10%) +87,295 (+ 2.07%) 4,291,959 4,315,456 p=0.000 n=12
Config Time 0.002s 0.002s ~ ~ ~ p=1.000 n=12
Parse Time 0.106s (± 3.11%) 0.108s (± 4.74%) ~ 0.095s 0.123s p=1.000 n=12
Bind Time 0.034s (±17.74%) 0.037s (±19.92%) ~ 0.026s 0.055s p=0.384 n=12
Check Time 0.909s (± 1.36%) 0.920s (± 0.99%) ~ 0.904s 0.946s p=0.155 n=12
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=12
Total Time 1.057s (± 1.13%) 1.072s (± 0.89%) ~ 1.044s 1.098s p=0.097 n=12
System info unknown
Hosts
  • native
Scenarios
  • Compiler-Unions - native
  • angular-1 - native
  • arktype - native
  • mui-docs - native
  • sentry - native
  • social-app - native
  • strada-build-src - native
  • strada-compiler - native
  • t3code-server - native
  • ts-pre-modules - native
  • vscode - native
  • webpack - native
  • xstate-main - native
Benchmark Name Iterations
Current pr 12
Baseline baseline 12

Developer Information:

Download Benchmarks

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

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.

TS2322: const type parameter infers readonly [], rejected through a union return type (7.1.0-dev regression from typescript-go#4591)

5 participants