Skip to content

Allow accessing named declared members during a type's resolution - #65059

Open
Anders Hejlsberg (ahejlsberg) wants to merge 6 commits into
mainfrom
fix-64605
Open

Anders Hejlsberg (ahejlsberg) wants to merge 6 commits into
mainfrom
fix-64605

Conversation

@ahejlsberg

Copy link
Copy Markdown
Member

This is similar to #64688, but works with the lazy member resolution introduced in #64915 and also ensures that inherited declared members can be accessed during a type's resolution. Closes #64688.

Fixes #64605.

Copilot AI balanced review requested due to automatic review settings October 30, 2026 15:53
@github-project-automation github-project-automation Bot moved this to Not started in PR Backlog Oct 30, 2026
@typescript-automation typescript-automation Bot added For Milestone Bug PRs that fix a bug with a specific milestone labels Oct 30, 2026
@ahejlsberg

Copy link
Copy Markdown
Member Author

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

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

Recursive inherited-property lookups can lose cached symbols after stack reallocation and trigger circular resolution before reaching later base declarations.

2 open issues
What changed in this PR

This PR lets the native TypeScript checker access declared and inherited named members while a type’s member layout is still resolving. It adapts the approach from #64688 to lazy member resolution, addressing the Zod circularity regression in #64605.

Changes:

  • Tracks resolving object types and carries early-resolved properties into their completed lazy layouts.
  • Adds regression coverage for recursive property access and inherited declared members.
  • Updates diagnostic baselines to remove circularity and excessive-instantiation errors.
File Description
tsc/​testdata/​tests/​cases/​compiler/​circularDeclaredPropertyAccess.ts Adds Zod and inherited-member regression cases.
tsc/​testdata/​baselines/​reference/​compiler/​sharedMemberLayoutThisIntersectionBase.errors.txt Removes excessive-instantiation diagnostics.
tsc/​testdata/​baselines/​reference/​compiler/​mutuallyRecursiveInference.errors.txt Removes a circular-instantiation diagnostic.
tsc/​testdata/​baselines/​reference/​compiler/​circularDeclaredPropertyAccess.types Records inferred types for the new cases.
tsc/​testdata/​baselines/​reference/​compiler/​circularDeclaredPropertyAccess.symbols Records symbols for the new cases.
tsc/​internal/​checker/​checker.go Enables property lookup during member resolution and preserves resolved symbols.

Review effort: Balanced

resolved = c.instantiateSymbol(symbol, r.mapper)
} else {
for _, baseType := range r.baseTypes {
if resolved = c.getPropertyOfTypeEx(baseType, name, true, false); resolved != nil {

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is intended. When D extends M<D>, Y we need to fully resolve M<D> in order to know whether it declares a q or whether q is inherited from Y. If that resolution causes a circularity, that circularity will eventually be caught elsewhere.

}
}
}
if resolved != nil {

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yeah, unlikely, but possible. Will fix.

@typescript-automation

Copy link
Copy Markdown
Contributor

Hey Anders Hejlsberg (@ahejlsberg), 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

Anders Hejlsberg (@ahejlsberg) 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

Anders Hejlsberg (@ahejlsberg)
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 79,607 ~ ~ ~ p=1.000 n=20
Memory Used 104,107k (± 0.03%) 104,061k (± 0.03%) -46k (- 0.04%) 103,940k 104,166k p=0.028 n=20
Memory Allocs 1,262,326 (± 0.01%) 1,262,431 (± 0.01%) ~ 1,261,844 1,262,993 p=0.114 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.023s (± 2.24%) 0.023s (± 2.75%) ~ 0.020s 0.025s p=0.831 n=20
Bind Time 0.008s (± 4.50%) 0.008s (± 4.37%) ~ 0.007s 0.010s p=0.677 n=20
Check Time 0.215s (± 0.93%) 0.217s (± 1.19%) ~ 0.209s 0.229s p=0.284 n=20
Emit Time 0.138s (± 1.48%) 0.139s (± 1.71%) ~ 0.132s 0.152s p=0.846 n=20
Total Time 0.388s (± 0.87%) 0.391s (± 0.90%) ~ 0.381s 0.408s p=0.174 n=20
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=20
Symbols 586,579 (± 0.02%) 586,552 (± 0.01%) ~ 586,121 586,782 p=0.683 n=20
Types 241,687 (± 0.00%) 241,687 (± 0.00%) ~ 241,683 241,697 p=0.584 n=20
Memory Used 517,760k (± 0.01%) 517,787k (± 0.02%) ~ 517,204k 518,148k p=0.355 n=20
Memory Allocs 7,794,110 (± 0.18%) 7,796,118 (± 0.16%) ~ 7,779,053 7,869,932 p=0.820 n=20
Config Time 0.009s (± 1.15%) 0.009s (± 1.15%) ~ 0.009s 0.010s p=1.000 n=20
Parse Time 0.126s (± 3.12%) 0.127s (± 2.10%) ~ 0.119s 0.141s p=0.400 n=20
Bind Time 0.045s (±10.11%) 0.042s (± 7.50%) ~ 0.037s 0.062s p=0.187 n=20
Check Time 0s 0s ~ ~ ~ p=1.000 n=20
Emit Time 0.857s (± 1.32%) 0.849s (± 0.89%) ~ 0.820s 0.874s p=0.425 n=20
Total Time 1.050s (± 1.58%) 1.039s (± 1.02%) ~ 1.010s 1.077s p=0.542 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 939,467 ~ ~ ~ p=1.000 n=20
Memory Used 495,092k (± 0.01%) 495,086k (± 0.01%) ~ 494,912k 495,308k p=0.774 n=20
Memory Allocs 12,062,855 (± 0.02%) 12,062,335 (± 0.01%) ~ 12,058,239 12,068,777 p=0.962 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.042s (± 3.27%) 0.044s (± 9.58%) ~ 0.036s 0.080s p=0.548 n=20
Bind Time 0.014s (± 9.64%) 0.017s (±48.24%) ~ 0.011s 0.090s p=0.895 n=20
Check Time 0.878s (± 0.94%) 0.896s (± 3.14%) ~ 0.855s 1.146s p=0.125 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.963s (± 0.78%) 0.987s (± 4.04%) ~ 0.946s 1.347s p=0.080 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,573 ~ ~ ~ p=1.000 n=20
Memory Used 27,840k (± 0.02%) 27,839k (± 0.02%) ~ 27,821k 27,859k p=0.825 n=20
Memory Allocs 248,121 (± 0.05%) 248,249 (± 0.04%) ~ 247,918 248,738 p=0.151 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.012s (± 3.33%) 0.012s (± 3.07%) ~ 0.009s 0.012s p=1.000 n=20
Bind Time 0.004s (±11.02%) 0.003s (± 9.34%) ~ 0.003s 0.005s p=0.880 n=20
Check Time 0.008s (± 4.96%) 0.008s (± 5.86%) ~ 0.007s 0.010s p=0.473 n=20
Emit Time 0.009s (± 4.88%) 0.008s (± 6.59%) ~ 0.007s 0.011s p=0.723 n=20
Total Time 0.032s (± 1.31%) 0.032s (± 1.56%) ~ 0.029s 0.034s p=0.247 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 894,113 ~ ~ ~ p=1.000 n=20
Memory Used 939,206k (± 0.02%) 939,138k (± 0.02%) ~ 938,433k 940,126k p=0.645 n=20
Memory Allocs 12,633,814 (± 0.01%) 12,634,289 (± 0.02%) ~ 12,625,627 12,650,482 p=0.718 n=20
Config Time 0.002s 0.002s ~ ~ ~ p=1.000 n=20
Parse Time 0.149s (± 1.88%) 0.150s (± 1.93%) ~ 0.140s 0.163s p=0.498 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.925s (± 1.02%) 0.932s (± 0.86%) ~ 0.900s 0.961s p=0.203 n=20
Emit Time 0.518s (± 1.44%) 0.514s (± 3.00%) ~ 0.464s 0.577s p=0.379 n=20
Total Time 1.690s (± 0.74%) 1.694s (± 0.69%) ~ 1.658s 1.752s p=0.473 n=20
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=20
Symbols 3,784,019 3,784,019 ~ ~ ~ p=1.000 n=20
Types 1,355,974 1,355,974 ~ ~ ~ p=1.000 n=20
Memory Used 1,767,230k (± 0.06%) 1,768,333k (± 0.06%) ~ 1,762,768k 1,773,323k p=0.102 n=20
Memory Allocs 25,709,935 (± 0.11%) 25,728,714 (± 0.13%) ~ 25,652,455 25,904,180 p=0.277 n=20
Config Time 0.008s 0.008s ~ ~ ~ p=1.000 n=20
Parse Time 0.290s (± 2.76%) 0.285s (± 1.45%) ~ 0.270s 0.306s p=0.261 n=20
Bind Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Check Time 2.935s (± 0.60%) 2.965s (± 0.72%) +0.029s (+ 1.00%) 2.898s 3.110s p=0.034 n=20
Emit Time 0.240s (± 0.98%) 0.239s (± 2.07%) ~ 0.231s 0.276s p=0.086 n=20
Total Time 3.951s (± 0.45%) 3.990s (± 0.80%) ~ 3.911s 4.166s p=0.062 n=20
sentry - native
Errors 2 2 ~ ~ ~ p=1.000 n=20
Symbols 4,793,245 4,793,245 ~ ~ ~ p=1.000 n=20
Types 2,607,045 2,607,045 ~ ~ ~ p=1.000 n=20
Memory Used 2,846,599k (± 0.03%) 2,847,039k (± 0.04%) ~ 2,844,208k 2,852,172k p=0.547 n=20
Memory Allocs 75,023,224 (± 0.21%) 75,005,476 (± 0.16%) ~ 74,718,227 75,572,005 p=0.738 n=20
Config Time 0.027s (± 1.61%) 0.026s (± 0.87%) ~ 0.026s 0.027s p=0.216 n=20
Parse Time 0.496s (± 5.52%) 0.479s (± 3.32%) ~ 0.438s 0.557s p=0.473 n=20
Bind Time 0.175s (±11.69%) 0.190s (±10.90%) ~ 0.148s 0.260s p=0.242 n=20
Check Time 7.013s (± 0.53%) 7.031s (± 0.85%) ~ 6.814s 7.351s p=0.733 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 7.762s (± 0.46%) 7.783s (± 0.87%) ~ 7.574s 8.232s p=0.995 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,158,168 ~ ~ ~ p=1.000 n=20
Memory Used 966,848k (± 0.02%) 966,966k (± 0.01%) ~ 966,535k 967,491k p=0.473 n=20
Memory Allocs 13,511,699 (± 0.25%) 13,498,876 (± 0.23%) ~ 13,440,259 13,741,357 p=0.231 n=20
Config Time 0.008s (± 3.11%) 0.008s (± 2.51%) ~ 0.008s 0.009s p=1.000 n=20
Parse Time 0.163s (± 3.35%) 0.164s (± 4.17%) ~ 0.148s 0.213s p=0.815 n=20
Bind Time 0.048s (± 9.48%) 0.050s (±16.14%) ~ 0.040s 0.112s p=0.952 n=20
Check Time 1.506s (± 2.14%) 1.506s (± 1.82%) ~ 1.401s 1.643s p=0.499 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.744s (± 2.10%) 1.747s (± 1.84%) ~ 1.623s 1.895s p=0.372 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 438,963 ~ ~ ~ p=1.000 n=20
Memory Used 1,175,492k (± 0.40%) 1,172,635k (± 0.29%) ~ 1,162,688k 1,191,743k p=0.277 n=20
Memory Allocs 47,653,691 (± 0.10%) 47,630,013 (± 0.10%) ~ 47,437,038 47,757,688 p=0.398 n=20
Config Time 0.002s (±21.99%) 0.002s (±24.84%) ~ 0.001s 0.004s p=0.519 n=20
Parse Time 0.157s (± 5.67%) 0.160s (± 2.42%) +0.003s (+ 1.85%) 0.144s 0.176s p=0.048 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.923s (± 1.52%) 0.921s (± 1.02%) ~ 0.878s 0.949s p=0.805 n=20
Emit Time 0.165s (± 2.85%) 0.165s (± 2.69%) ~ 0.151s 0.193s p=0.713 n=20
Total Time 10.851s (± 1.61%) 10.834s (± 1.15%) ~ 10.163s 11.266s p=0.878 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 196,116 ~ ~ ~ p=1.000 n=20
Memory Used 224,129k (± 0.02%) 224,124k (± 0.02%) ~ 223,938k 224,366k p=0.763 n=20
Memory Allocs 2,389,340 (± 0.02%) 2,389,390 (± 0.02%) ~ 2,387,733 2,391,040 p=0.968 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.049s (± 3.01%) 0.049s (± 3.72%) ~ 0.044s 0.055s p=0.376 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.380s (± 0.65%) 0.385s (± 0.99%) +0.005s (+ 1.39%) 0.372s 0.404s p=0.032 n=20
Emit Time 0.048s (± 5.24%) 0.050s (± 5.35%) ~ 0.042s 0.058s p=0.321 n=20
Total Time 0.506s (± 0.72%) 0.513s (± 0.79%) +0.007s (+ 1.32%) 0.498s 0.532s p=0.007 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 3,040,644 ~ ~ ~ p=1.000 n=20
Memory Used 2,425,440k (± 0.02%) 2,425,459k (± 0.03%) ~ 2,423,749k 2,428,134k p=0.512 n=20
Memory Allocs 37,201,180 (± 0.14%) 37,174,680 (± 0.08%) ~ 37,094,565 37,362,933 p=0.583 n=20
Config Time 0.003s 0.003s ~ ~ ~ p=1.000 n=20
Parse Time 0.257s (± 1.68%) 0.251s (± 2.32%) ~ 0.223s 0.268s p=0.245 n=20
Bind Time 0.081s (± 4.66%) 0.094s (±12.62%) ~ 0.074s 0.143s p=0.446 n=20
Check Time 6.771s (± 0.94%) 6.788s (± 1.15%) ~ 6.654s 7.434s p=0.794 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 7.122s (± 0.92%) 7.146s (± 1.08%) ~ 7.013s 7.784s p=0.625 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 397,689 ~ ~ ~ p=1.000 n=20
Memory Used 326,066k (± 0.01%) 326,068k (± 0.02%) ~ 325,775k 326,251k p=0.718 n=20
Memory Allocs 4,333,598 (± 0.17%) 4,335,145 (± 0.21%) ~ 4,321,395 4,400,445 p=0.947 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.040s (± 3.72%) 0.039s (± 3.91%) ~ 0.034s 0.045s p=0.888 n=20
Bind Time 0.013s (± 9.22%) 0.014s (±12.65%) ~ 0.011s 0.021s p=0.735 n=20
Check Time 0.499s (± 0.58%) 0.504s (± 0.68%) ~ 0.495s 0.524s p=0.109 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.571s (± 0.65%) 0.576s (± 0.70%) ~ 0.563s 0.597s p=0.174 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 181,195 ~ ~ ~ p=1.000 n=20
Memory Used 193,191k (± 0.01%) 193,216k (± 0.02%) ~ 193,098k 193,371k p=0.324 n=20
Memory Allocs 1,310,302 (± 0.01%) 1,310,568 (± 0.01%) +265 (+ 0.02%) 1,310,025 1,311,387 p=0.010 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.043s (± 3.16%) 0.044s (± 2.60%) ~ 0.040s 0.050s p=0.437 n=20
Bind Time 0.021s (± 5.70%) 0.020s (± 4.96%) ~ 0.016s 0.024s p=0.339 n=20
Check Time 0.288s (± 0.85%) 0.295s (± 0.98%) +0.007s (+ 2.36%) 0.284s 0.303s p=0.000 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.358s (± 0.65%) 0.365s (± 0.65%) +0.007s (+ 1.94%) 0.357s 0.373s p=0.000 n=20
vscode - native
Errors 11 11 ~ ~ ~ p=1.000 n=20
Symbols 7,538,620 7,538,620 ~ ~ ~ p=1.000 n=20
Types 4,426,130 4,426,130 ~ ~ ~ p=1.000 n=20
Memory Used 5,221,483k (± 0.01%) 5,222,238k (± 0.02%) ~ 5,218,769k 5,227,694k p=0.149 n=20
Memory Allocs 57,160,636 (± 0.02%) 57,156,601 (± 0.02%) ~ 57,135,338 57,199,600 p=0.862 n=20
Config Time 0.037s (± 0.76%) 0.037s (± 0.73%) ~ 0.036s 0.038s p=0.665 n=20
Parse Time 0.909s (± 2.35%) 0.909s (± 2.16%) ~ 0.830s 0.975s p=0.597 n=20
Bind Time 0.315s (± 7.56%) 0.322s (± 7.45%) ~ 0.290s 0.487s p=0.995 n=20
Check Time 7.570s (± 0.77%) 7.564s (± 0.79%) ~ 7.375s 7.836s p=0.826 n=20
Emit Time 2.817s (± 5.45%) 2.918s (± 5.98%) ~ 2.623s 3.630s p=0.204 n=20
Total Time 11.708s (± 1.12%) 11.811s (± 1.23%) ~ 11.519s 12.500s p=0.172 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 650,047 ~ ~ ~ p=1.000 n=20
Memory Used 697,592k (± 0.02%) 697,665k (± 0.02%) ~ 697,099k 698,152k p=0.327 n=20
Memory Allocs 6,505,539 (± 0.04%) 6,504,689 (± 0.04%) ~ 6,498,283 6,521,003 p=0.529 n=20
Config Time 0.004s 0.004s ~ ~ ~ p=1.000 n=20
Parse Time 0.148s (± 5.54%) 0.145s (± 2.97%) ~ 0.129s 0.163s p=0.683 n=20
Bind Time 0.051s (±12.32%) 0.049s (±12.38%) ~ 0.038s 0.077s p=0.541 n=20
Check Time 1.014s (± 0.78%) 1.034s (± 0.80%) +0.020s (+ 1.93%) 1.001s 1.074s p=0.002 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.241s (± 1.14%) 1.259s (± 1.01%) +0.018s (+ 1.42%) 1.206s 1.311s p=0.032 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 387,984 ~ ~ ~ p=1.000 n=20
Memory Used 349,520k (± 0.02%) 349,465k (± 0.02%) ~ 349,178k 349,777k p=0.183 n=20
Memory Allocs 3,969,049 (± 0.10%) 3,967,887 (± 0.06%) ~ 3,955,869 3,977,672 p=0.841 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.069s (± 2.72%) 0.069s (± 2.34%) ~ 0.061s 0.074s p=0.888 n=20
Bind Time 0.025s (±11.37%) 0.025s (±10.33%) ~ 0.019s 0.037s p=0.898 n=20
Check Time 0.444s (± 1.74%) 0.446s (± 1.88%) ~ 0.409s 0.485s p=0.588 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.545s (± 1.78%) 0.546s (± 1.70%) ~ 0.499s 0.585s p=0.499 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

Anders Hejlsberg (@ahejlsberg) 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

Interestingly, though perhaps not surprisingly, my branch that is making the checker order-independent / idempotent does actually also fix this problem, it seems.

I'll have to finally open that PR and expose everyone to the horrorshow.

@ahejlsberg

Copy link
Copy Markdown
Member Author

Interestingly, though perhaps not surprisingly, my branch that is making the checker order-independent / idempotent does actually also fix this problem, it seems.

I'm curious to see how.

@jakebailey

Jake Bailey (jakebailey) commented Oct 30, 2026 •

Copy link
Copy Markdown
Member

Basically, during resolution, it installs a temporarily layout of just the declared members. It doesn't search the base types during resolution, though.

Interestingly, for sharedMemberLayoutThisIntersectionBase, my big branch does not error on the A & B case since m does exist? No, my behavior matches.

I'm currently rebasing it and will send it just so people can play with it.

@jakebailey

Copy link
Copy Markdown
Member

I sent #65064 just to at least have something out there to point at.

@github-project-automation github-project-automation Bot moved this from Not started to Needs merge in PR Backlog Oct 30, 2026
@jakebailey

Copy link
Copy Markdown
Member

I was wrong before; I think my branch's behavior matches. But I think that this PR is technically order dependent? Hard to come up with an example though, but I can see isStringIndexSignatureOnlyType returning false for something in progress even if it would answer true later?

@ahejlsberg

Copy link
Copy Markdown
Member Author

I was wrong before; I think my branch's behavior matches.

Matches what?

@jakebailey

Copy link
Copy Markdown
Member

This PR's, since I had already "fixed" this unknowingly.

@ahejlsberg

Copy link
Copy Markdown
Member Author

Hmm, yeah, #65064 has some pretty complex and scary looking code guarded by a new ObjectFlagsMembersResolving flag. Plus it first installs one member layout with no base classes and then later replaces it with the full layout. No sure how it gets away with that without inconsistencies.

@ahejlsberg

Copy link
Copy Markdown
Member Author

But I think that this PR is technically order dependent?

Possibly. But I just added a change that excludes class/interface types from isStringIndexSignatureOnlyType. That function was added years ago in #30769 to simplify things like { [key: string]: XXX }[K] into just XXX, but wasn't really concerned with classes or interfaces on the object side of the indexed access.

@ahejlsberg

Copy link
Copy Markdown
Member Author

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 Anders Hejlsberg (@ahejlsberg), 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

Anders Hejlsberg (@ahejlsberg) 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

Anders Hejlsberg (@ahejlsberg)
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 79,607 ~ ~ ~ p=1.000 n=20
Memory Used 107,497k (± 0.03%) 107,471k (± 0.03%) ~ 107,355k 107,569k p=0.273 n=20
Memory Allocs 1,262,214 (± 0.01%) 1,262,166 (± 0.01%) ~ 1,261,814 1,262,668 p=0.341 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.023s (± 2.46%) 0.024s (± 2.92%) ~ 0.020s 0.027s p=0.280 n=20
Bind Time 0.008s (± 5.95%) 0.008s (± 4.81%) ~ 0.007s 0.010s p=0.781 n=20
Check Time 0.214s (± 0.85%) 0.217s (± 0.70%) +0.003s (+ 1.50%) 0.211s 0.223s p=0.005 n=20
Emit Time 0.136s (± 0.82%) 0.136s (± 0.93%) ~ 0.132s 0.143s p=0.574 n=20
Total Time 0.384s (± 0.56%) 0.388s (± 0.46%) +0.004s (+ 0.91%) 0.382s 0.395s p=0.011 n=20
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=20
Symbols 586,553 586,553 ~ ~ ~ p=1.000 n=20
Types 241,682 241,682 ~ ~ ~ p=1.000 n=20
Memory Used 519,769k (± 0.02%) 519,712k (± 0.02%) ~ 519,427k 520,176k p=0.449 n=20
Memory Allocs 7,794,126 (± 0.10%) 7,788,999 (± 0.10%) ~ 7,779,236 7,836,009 p=0.165 n=20
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=20
Parse Time 0.119s (± 2.03%) 0.124s (± 2.85%) 🔻+0.005s (+ 4.27%) 0.114s 0.144s p=0.033 n=20
Bind Time 0.047s (±10.13%) 0.041s (± 9.07%) 🟩-0.006s (-12.61%) 0.035s 0.061s p=0.014 n=20
Check Time 0s 0s ~ ~ ~ p=1.000 n=20
Emit Time 0.632s (± 0.76%) 0.628s (± 0.73%) ~ 0.616s 0.656s p=0.115 n=20
Total Time 0.819s (± 0.40%) 0.814s (± 0.87%) ~ 0.791s 0.855s p=0.139 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 939,447 -20 (- 0.00%) ~ ~ p=0.000 n=20
Memory Used 495,313k (± 0.01%) 495,013k (± 0.01%) -300k (- 0.06%) 494,847k 495,293k p=0.000 n=20
Memory Allocs 12,062,105 (± 0.02%) 12,059,515 (± 0.01%) -2,591 (- 0.02%) 12,056,786 12,064,828 p=0.023 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.042s (± 3.52%) 0.042s (± 3.61%) ~ 0.037s 0.049s p=0.941 n=20
Bind Time 0.013s (± 8.99%) 0.013s (± 9.13%) ~ 0.011s 0.019s p=0.974 n=20
Check Time 0.871s (± 0.51%) 0.876s (± 0.64%) ~ 0.859s 0.903s p=0.203 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.953s (± 0.41%) 0.959s (± 0.54%) ~ 0.942s 0.980s p=0.095 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,573 ~ ~ ~ p=1.000 n=20
Memory Used 27,891k (± 0.03%) 27,887k (± 0.03%) ~ 27,852k 27,912k p=0.323 n=20
Memory Allocs 248,229 (± 0.06%) 248,311 (± 0.06%) ~ 247,880 249,077 p=0.457 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.012s (± 3.33%) 0.011s (± 3.06%) ~ 0.009s 0.012s p=0.352 n=20
Bind Time 0.003s (±11.19%) 0.003s (±12.11%) ~ 0.002s 0.005s p=0.434 n=20
Check Time 0.008s (± 5.14%) 0.008s (± 6.79%) ~ 0.006s 0.009s p=0.839 n=20
Emit Time 0.007s (± 7.27%) 0.008s (± 7.89%) ~ 0.006s 0.010s p=0.207 n=20
Total Time 0.030s (± 2.00%) 0.031s (± 2.53%) ~ 0.026s 0.034s p=0.502 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 892,870 -1,243 (- 0.14%) ~ ~ p=0.000 n=20
Memory Used 949,974k (± 0.02%) 948,549k (± 0.03%) -1,425k (- 0.15%) 947,711k 949,617k p=0.000 n=20
Memory Allocs 12,640,617 (± 0.05%) 12,636,894 (± 0.07%) ~ 12,620,609 12,692,302 p=0.060 n=20
Config Time 0.002s (± 9.93%) 0.002s ~ ~ ~ p=1.000 n=20
Parse Time 0.154s (± 6.89%) 0.147s (± 1.47%) ~ 0.139s 0.159s p=0.393 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.918s (± 8.97%) 0.899s (± 1.21%) -0.019s (- 2.07%) 0.866s 0.953s p=0.010 n=20
Emit Time 0.495s (± 1.46%) 0.499s (± 3.70%) ~ 0.465s 0.652s p=0.587 n=20
Total Time 1.667s (± 5.27%) 1.641s (± 1.46%) ~ 1.590s 1.817s p=0.143 n=20
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=20
Symbols 3,784,019 3,784,019 ~ ~ ~ p=1.000 n=20
Types 1,355,974 1,355,974 ~ ~ ~ p=1.000 n=20
Memory Used 1,767,679k (± 0.08%) 1,769,280k (± 0.05%) ~ 1,764,032k 1,771,978k p=0.121 n=20
Memory Allocs 25,742,822 (± 0.17%) 25,740,744 (± 0.10%) ~ 25,656,150 25,860,371 p=0.512 n=20
Config Time 0.008s (± 1.77%) 0.008s (± 1.77%) ~ 0.008s 0.009s p=1.000 n=20
Parse Time 0.282s (± 1.78%) 0.285s (± 2.92%) ~ 0.245s 0.336s p=0.713 n=20
Bind Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Check Time 2.967s (± 0.88%) 3.000s (± 1.50%) ~ 2.911s 3.345s p=0.337 n=20
Emit Time 0.242s (± 1.29%) 0.243s (± 1.12%) ~ 0.234s 0.256s p=0.541 n=20
Total Time 3.986s (± 0.72%) 4.033s (± 1.18%) ~ 3.922s 4.370s p=0.176 n=20
sentry - native
Errors 2 2 ~ ~ ~ p=1.000 n=20
Symbols 4,793,245 4,793,245 ~ ~ ~ p=1.000 n=20
Types 2,606,905 2,606,848 -57 (- 0.00%) ~ ~ p=0.000 n=20
Memory Used 2,846,171k (± 0.04%) 2,844,533k (± 0.03%) -1,637k (- 0.06%) 2,841,865k 2,849,689k p=0.021 n=20
Memory Allocs 74,932,361 (± 0.17%) 75,170,249 (± 0.37%) ~ 74,560,866 76,587,654 p=0.165 n=20
Config Time 0.025s (± 1.35%) 0.025s (± 1.28%) ~ 0.024s 0.026s p=0.944 n=20
Parse Time 0.471s (± 5.78%) 0.487s (± 4.87%) ~ 0.425s 0.618s p=0.104 n=20
Bind Time 0.162s (± 9.42%) 0.160s (±10.92%) ~ 0.126s 0.242s p=0.440 n=20
Check Time 6.633s (± 0.94%) 6.655s (± 0.66%) ~ 6.528s 6.939s p=0.365 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 7.351s (± 0.86%) 7.383s (± 0.66%) ~ 7.176s 7.646s p=0.110 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,158,094 -74 (- 0.01%) ~ ~ p=0.000 n=20
Memory Used 966,994k (± 0.01%) 966,627k (± 0.02%) -367k (- 0.04%) 965,794k 967,167k p=0.000 n=20
Memory Allocs 13,500,189 (± 0.13%) 13,489,353 (± 0.10%) ~ 13,441,150 13,570,333 p=0.414 n=20
Config Time 0.008s 0.008s ~ ~ ~ p=1.000 n=20
Parse Time 0.163s (± 3.87%) 0.164s (± 1.77%) ~ 0.154s 0.180s p=0.143 n=20
Bind Time 0.041s (± 7.21%) 0.042s (± 8.10%) ~ 0.035s 0.065s p=0.941 n=20
Check Time 1.435s (± 1.02%) 1.446s (± 0.83%) ~ 1.408s 1.500s p=0.208 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.665s (± 1.05%) 1.678s (± 0.64%) ~ 1.654s 1.729s p=0.122 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,959 438,959 ~ ~ ~ p=1.000 n=20
Memory Used 1,171,248k (± 0.34%) 1,171,773k (± 0.38%) ~ 1,156,264k 1,188,785k p=0.862 n=20
Memory Allocs 47,570,938 (± 0.09%) 47,564,133 (± 0.09%) ~ 47,398,135 47,779,828 p=0.583 n=20
Config Time 0.002s (±14.66%) 0.002s (±13.76%) ~ 0.001s 0.003s p=0.165 n=20
Parse Time 0.139s (± 1.82%) 0.138s (± 2.09%) ~ 0.127s 0.153s p=0.683 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.810s (± 0.52%) 0.810s (± 0.59%) ~ 0.796s 0.833s p=0.703 n=20
Emit Time 0.141s (± 2.07%) 0.140s (± 1.57%) ~ 0.135s 0.155s p=0.470 n=20
Total Time 9.414s (± 0.75%) 9.407s (± 0.73%) ~ 9.129s 9.737s p=0.820 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 196,116 ~ ~ ~ p=1.000 n=20
Memory Used 223,530k (± 0.01%) 223,537k (± 0.02%) ~ 223,265k 223,770k p=0.606 n=20
Memory Allocs 2,389,515 (± 0.01%) 2,389,490 (± 0.02%) ~ 2,387,547 2,390,873 p=0.925 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.049s (± 2.93%) 0.049s (± 3.91%) ~ 0.042s 0.057s p=0.867 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.373s (± 1.30%) 0.373s (± 0.72%) ~ 0.363s 0.385s p=0.596 n=20
Emit Time 0.046s (± 5.04%) 0.047s (± 5.29%) ~ 0.042s 0.061s p=0.604 n=20
Total Time 0.494s (± 1.04%) 0.495s (± 0.97%) ~ 0.480s 0.523s p=0.763 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 3,040,530 -114 (- 0.00%) ~ ~ p=0.000 n=20
Memory Used 2,417,290k (± 0.02%) 2,415,633k (± 0.02%) -1,657k (- 0.07%) 2,414,501k 2,419,333k p=0.000 n=20
Memory Allocs 37,188,430 (± 0.07%) 37,171,564 (± 0.08%) ~ 37,104,496 37,347,175 p=0.192 n=20
Config Time 0.003s 0.003s ~ ~ ~ p=1.000 n=20
Parse Time 0.260s (± 2.95%) 0.257s (± 2.49%) ~ 0.234s 0.290s p=0.569 n=20
Bind Time 0.104s (±10.70%) 0.093s (± 8.19%) ~ 0.078s 0.138s p=0.122 n=20
Check Time 6.252s (± 1.27%) 6.332s (± 1.23%) ~ 5.874s 6.600s p=0.098 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 6.632s (± 1.25%) 6.697s (± 1.24%) ~ 6.224s 6.984s p=0.245 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 397,447 -242 (- 0.06%) ~ ~ p=0.000 n=20
Memory Used 326,501k (± 0.02%) 326,338k (± 0.01%) -163k (- 0.05%) 326,180k 326,517k p=0.000 n=20
Memory Allocs 4,329,324 (± 0.12%) 4,332,647 (± 0.14%) ~ 4,319,363 4,358,048 p=0.640 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.040s (± 3.20%) 0.039s (± 3.40%) ~ 0.035s 0.045s p=0.680 n=20
Bind Time 0.013s (±13.13%) 0.013s (±11.12%) ~ 0.010s 0.019s p=0.502 n=20
Check Time 0.494s (± 0.52%) 0.501s (± 0.41%) +0.007s (+ 1.42%) 0.492s 0.509s p=0.000 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.564s (± 0.63%) 0.572s (± 0.58%) +0.008s (+ 1.36%) 0.559s 0.582s p=0.001 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 181,195 ~ ~ ~ p=1.000 n=20
Memory Used 192,971k (± 0.02%) 192,958k (± 0.02%) ~ 192,807k 193,127k p=0.588 n=20
Memory Allocs 1,310,131 (± 0.02%) 1,310,358 (± 0.03%) ~ 1,309,007 1,311,615 p=0.331 n=20
Config Time 0.000s (±208.60%) 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.044s (± 3.40%) 0.045s (± 3.60%) ~ 0.038s 0.051s p=0.909 n=20
Bind Time 0.020s (± 5.63%) 0.021s (± 4.99%) ~ 0.017s 0.024s p=0.292 n=20
Check Time 0.304s (± 1.43%) 0.311s (± 1.83%) ~ 0.294s 0.350s p=0.109 n=20
Emit Time 0.000s (±208.60%) 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.376s (± 1.39%) 0.383s (± 1.44%) +0.007s (+ 1.90%) 0.369s 0.422s p=0.043 n=20
vscode - native
Errors 11 11 ~ ~ ~ p=1.000 n=20
Symbols 7,553,577 7,553,577 ~ ~ ~ p=1.000 n=20
Types 4,415,359 4,415,297 -62 (- 0.00%) ~ ~ p=0.000 n=20
Memory Used 5,226,573k (± 0.02%) 5,223,066k (± 0.01%) -3,507k (- 0.07%) 5,220,487k 5,225,155k p=0.000 n=20
Memory Allocs 57,131,365 (± 0.06%) 57,108,922 (± 0.02%) -22,443 (- 0.04%) 57,082,738 57,171,551 p=0.035 n=20
Config Time 0.034s (± 1.63%) 0.034s (± 2.61%) ~ 0.033s 0.041s p=0.528 n=20
Parse Time 0.902s (± 2.12%) 0.891s (± 2.93%) ~ 0.794s 1.069s p=0.194 n=20
Bind Time 0.315s (± 5.75%) 0.328s (± 8.50%) ~ 0.288s 0.508s p=0.784 n=20
Check Time 7.117s (± 2.10%) 7.137s (± 2.47%) ~ 6.809s 8.423s p=0.820 n=20
Emit Time 1.992s (± 5.04%) 2.158s (± 7.23%) ~ 1.874s 2.864s p=0.147 n=20
Total Time 10.419s (± 1.94%) 10.609s (± 2.15%) ~ 10.126s 11.998s p=0.066 n=20
webpack - native
Errors 612 612 ~ ~ ~ p=1.000 n=20
Symbols 925,190 925,190 ~ ~ ~ p=1.000 n=20
Types 643,199 643,183 -16 (- 0.00%) ~ ~ p=0.000 n=20
Memory Used 697,712k (± 0.01%) 697,586k (± 0.01%) ~ 697,264k 697,927k p=0.068 n=20
Memory Allocs 6,474,059 (± 0.06%) 6,473,348 (± 0.05%) ~ 6,465,065 6,491,536 p=0.698 n=20
Config Time 0.004s 0.004s ~ ~ ~ p=1.000 n=20
Parse Time 0.145s (± 3.56%) 0.139s (± 2.28%) ~ 0.124s 0.152s p=0.056 n=20
Bind Time 0.043s (± 5.06%) 0.045s (± 9.03%) ~ 0.038s 0.067s p=0.887 n=20
Check Time 0.994s (± 0.68%) 0.998s (± 0.61%) ~ 0.977s 1.022s p=0.234 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.210s (± 0.74%) 1.210s (± 0.69%) ~ 1.179s 1.247s p=0.683 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 387,708 -276 (- 0.07%) ~ ~ p=0.000 n=20
Memory Used 350,103k (± 0.03%) 349,835k (± 0.02%) -268k (- 0.08%) 349,569k 350,199k p=0.000 n=20
Memory Allocs 3,969,038 (± 0.09%) 3,966,236 (± 0.07%) ~ 3,959,505 3,983,840 p=0.369 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.060s (± 2.92%) 0.060s (± 2.84%) ~ 0.054s 0.067s p=0.682 n=20
Bind Time 0.020s (±11.21%) 0.023s (±13.69%) ~ 0.017s 0.035s p=0.313 n=20
Check Time 0.397s (± 1.10%) 0.399s (± 1.14%) ~ 0.385s 0.423s p=0.464 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.485s (± 1.12%) 0.488s (± 1.19%) ~ 0.470s 0.516s p=0.379 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

Anders Hejlsberg (@ahejlsberg) Here are the results of running the top 400 repos with tsc comparing baseline and pr:

Everything looks good!

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

Author: Team For Milestone Bug PRs that fix a bug with a specific milestone

Projects

Status: Needs merge

Development

Successfully merging this pull request may close these issues.

TS5115 in published Zod 4.5–4.6 types after #64372

5 participants