Skip to content

Reject visitor removal of required children - #65288

Open
Jake Bailey (jakebailey) wants to merge 5 commits into
microsoft:mainfrom
jakebailey:visitor-nil-hole
Open

Jake Bailey (jakebailey) wants to merge 5 commits into
microsoft:mainfrom
jakebailey:visitor-nil-hole

Conversation

@jakebailey

Copy link
Copy Markdown
Member

A visitor returning nil for a required child can leave an invalid tree that only crashes when a later consumer dereferences it. JSDoc import types expose this during type erasure even though emit never prints the affected nodes.

Required children must stay present when visited, while absent children from parser error recovery and optional-child/list elision remain valid.

A visitor returning nil for a required child can leave an invalid tree
that only crashes when a later consumer dereferences it. JSDoc import
types expose this during type erasure even though emit never prints the
affected nodes.

Required children must stay present when visited, while absent children
from parser error recovery and optional-child/list elision remain valid.
The token case exercises the same path as an ordinary node, and the
number annotation does not reproduce the import-type erasure bug.
Copilot AI balanced review requested due to automatic review settings November 3, 2026 19:34
@github-project-automation github-project-automation Bot moved this to Not started in PR Backlog Nov 3, 2026
@typescript-automation typescript-automation Bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Nov 3, 2026
@jakebailey

Copy link
Copy Markdown
Member Author

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

@typescript-automation

typescript-automation Bot commented Nov 3, 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

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

Valid JavaScript with JSDoc-annotated properties or assignments can panic during emit because the type eraser removes required children from type wrappers instead of erasing the wrappers themselves.

1 open issue
1 file not reviewed
  • tsc/internal/ast/ast_generated.go: Generated file
What changed in this PR

This PR strengthens the native compiler’s AST visitor contract by rejecting removal of existing required children, while allowing absent recovery nodes and optional-child/list elision.

Changes:

  • Add required-child checks to handwritten and generated visitors.
  • Adjust type erasure, declaration traversal, and token navigation to preserve the new invariant.
  • Add tests for required-child removal, permitted elision, and JSDoc import-type erasure.
File Description
tsc/​internal/​transformers/​tstransforms/​typeeraser.go Elide import types and clear export-assignment annotations.
tsc/​internal/​transformers/​tstransforms/​typeeraser_test.go Test JSDoc import-type erasure on export assignments.
tsc/​internal/​transformers/​declarations/​transform.go Preserve nodes when stopping traversal across this contexts.
tsc/​internal/​astnav/​tokens.go Preserve reparsed nodes skipped during token lookup.
tsc/​internal/​ast/​visitor.go Define and document the required-child guard.
tsc/​internal/​ast/​deepclone_test.go Test required-child rejection and permitted elision.
tsc/​internal/​ast/​ast.go Guard required children in handwritten visitors.
tsc/​internal/​ast/​ast_generated.go Apply guards throughout generated visitors.
tools/​scripts/​tsc/​generate-go-ast.ts Generate required-child checks from member metadata.

Review effort: Balanced

@typescript-automation

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey)
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-Unions - native
Errors 41 41 ~ ~ ~ p=1.000 n=20
Symbols 88,466 88,466 ~ ~ ~ p=1.000 n=20
Types 79,607 79,607 ~ ~ ~ p=1.000 n=20
Memory Used 106,428k (± 0.03%) 106,399k (± 0.02%) ~ 106,338k 106,501k p=0.080 n=20
Memory Allocs 1,261,850 (± 0.01%) 1,261,994 (± 0.01%) ~ 1,261,528 1,262,556 p=0.052 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.023s (± 1.86%) 0.023s (± 1.65%) ~ 0.021s 0.024s p=0.514 n=20
Bind Time 0.008s (± 5.52%) 0.008s (± 3.78%) ~ 0.007s 0.009s p=0.150 n=20
Check Time 0.202s (± 0.69%) 0.205s (± 0.80%) +0.002s (+ 1.09%) 0.198s 0.210s p=0.037 n=20
Emit Time 0.130s (± 0.58%) 0.131s (± 0.65%) ~ 0.128s 0.135s p=0.311 n=20
Total Time 0.367s (± 0.44%) 0.370s (± 0.49%) ~ 0.362s 0.378s p=0.063 n=20
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=20
Symbols 586,317 586,317 ~ ~ ~ p=1.000 n=20
Types 241,457 241,457 ~ ~ ~ p=1.000 n=20
Memory Used 510,842k (± 0.02%) 510,809k (± 0.02%) ~ 510,371k 511,296k p=0.693 n=20
Memory Allocs 7,790,744 (± 0.10%) 7,795,148 (± 0.13%) ~ 7,777,863 7,844,555 p=0.989 n=20
Config Time 0.008s (± 4.12%) 0.008s (± 5.21%) ~ 0.008s 0.012s p=1.000 n=20
Parse Time 0.124s (± 3.20%) 0.125s (± 2.79%) ~ 0.112s 0.142s p=0.490 n=20
Bind Time 0.042s (± 9.48%) 0.042s (±10.47%) ~ 0.034s 0.062s p=0.316 n=20
Check Time 0s 0s ~ ~ ~ p=1.000 n=20
Emit Time 0.619s (± 0.82%) 0.620s (± 1.15%) ~ 0.608s 0.669s p=0.683 n=20
Total Time 0.805s (± 0.80%) 0.807s (± 1.02%) ~ 0.783s 0.839s p=0.909 n=20
arktype - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 686,116 686,116 ~ ~ ~ p=1.000 n=20
Types 939,797 939,797 ~ ~ ~ p=1.000 n=20
Memory Used 475,970k (± 0.01%) 476,021k (± 0.01%) +51k (+ 0.01%) 475,756k 476,160k p=0.031 n=20
Memory Allocs 12,056,936 (± 0.01%) 12,059,316 (± 0.02%) ~ 12,054,938 12,070,382 p=0.114 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.041s (± 3.20%) 0.041s (± 2.90%) ~ 0.037s 0.047s p=0.762 n=20
Bind Time 0.013s (± 8.85%) 0.012s (± 9.11%) 🟩-0.001s (- 7.84%) 0.010s 0.018s p=0.047 n=20
Check Time 0.835s (± 0.73%) 0.844s (± 1.54%) ~ 0.803s 0.913s p=0.465 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.917s (± 0.65%) 0.925s (± 1.31%) ~ 0.895s 0.991s p=0.551 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,751k (± 0.02%) 27,753k (± 0.03%) ~ 27,720k 27,784k p=0.644 n=20
Memory Allocs 248,204 (± 0.06%) 248,444 (± 0.05%) +240 (+ 0.10%) 248,005 249,104 p=0.012 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.012s (± 3.84%) 0.012s (± 4.24%) ~ 0.009s 0.013s p=0.494 n=20
Bind Time 0.003s (± 9.64%) 0.004s (±11.02%) ~ 0.002s 0.005s p=0.097 n=20
Check Time 0.008s (± 5.35%) 0.007s (± 6.27%) ~ 0.006s 0.009s p=0.065 n=20
Emit Time 0.007s (± 7.50%) 0.008s (± 6.99%) ~ 0.006s 0.010s p=0.141 n=20
Total Time 0.031s (± 2.72%) 0.031s (± 2.86%) ~ 0.026s 0.034s p=0.791 n=20
effect - native
Errors 12 12 ~ ~ ~ p=1.000 n=20
Symbols 1,235,134 1,235,134 ~ ~ ~ p=1.000 n=20
Types 893,436 893,436 ~ ~ ~ p=1.000 n=20
Memory Used 941,495k (± 0.02%) 941,495k (± 0.02%) ~ 941,066k 942,482k p=0.738 n=20
Memory Allocs 12,623,962 (± 0.04%) 12,628,198 (± 0.05%) ~ 12,614,410 12,662,032 p=0.245 n=20
Config Time 0.002s 0.002s ~ ~ ~ p=1.000 n=20
Parse Time 0.146s (± 1.45%) 0.144s (± 1.87%) ~ 0.133s 0.157s p=0.279 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.852s (± 0.70%) 0.856s (± 1.16%) ~ 0.832s 0.916s p=0.878 n=20
Emit Time 0.480s (± 1.78%) 0.480s (± 1.65%) ~ 0.437s 0.509s p=0.784 n=20
Total Time 1.567s (± 0.44%) 1.575s (± 0.67%) ~ 1.549s 1.652s p=0.223 n=20
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=20
Symbols 3,782,394 3,782,394 ~ ~ ~ p=1.000 n=20
Types 1,355,778 1,355,778 ~ ~ ~ p=1.000 n=20
Memory Used 1,679,315k (± 0.08%) 1,679,737k (± 0.08%) ~ 1,674,388k 1,685,890k p=0.659 n=20
Memory Allocs 25,710,372 (± 0.14%) 25,740,594 (± 0.13%) ~ 25,628,281 25,905,985 p=0.081 n=20
Config Time 0.008s (± 2.79%) 0.009s (± 2.78%) ~ 0.008s 0.009s p=0.527 n=20
Parse Time 0.294s (± 2.18%) 0.289s (± 1.63%) ~ 0.276s 0.314s p=0.184 n=20
Bind Time 0.001s (±18.96%) 0.001s ~ ~ ~ p=1.000 n=20
Check Time 2.939s (± 0.62%) 2.949s (± 0.61%) ~ 2.881s 3.009s p=0.394 n=20
Emit Time 0.251s (± 1.77%) 0.252s (± 2.65%) ~ 0.241s 0.309s p=0.712 n=20
Total Time 3.992s (± 0.51%) 3.998s (± 0.56%) ~ 3.911s 4.095s p=0.753 n=20
sentry - native
Errors 2 2 ~ ~ ~ p=1.000 n=20
Symbols 4,793,266 4,793,266 ~ ~ ~ p=1.000 n=20
Types 2,607,066 2,607,066 ~ ~ ~ p=1.000 n=20
Memory Used 2,799,500k (± 0.03%) 2,798,633k (± 0.04%) ~ 2,795,292k 2,803,576k p=0.114 n=20
Memory Allocs 75,164,348 (± 0.33%) 75,204,236 (± 0.23%) ~ 74,770,731 75,844,746 p=0.565 n=20
Config Time 0.025s (± 1.54%) 0.025s (± 1.53%) ~ 0.024s 0.027s p=0.728 n=20
Parse Time 0.478s (± 4.14%) 0.462s (± 4.04%) ~ 0.420s 0.587s p=0.059 n=20
Bind Time 0.138s (± 9.07%) 0.154s (±10.26%) ~ 0.122s 0.219s p=0.153 n=20
Check Time 6.466s (± 0.55%) 6.483s (± 0.75%) ~ 6.338s 6.800s p=0.763 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 7.156s (± 0.52%) 7.177s (± 0.70%) ~ 7.054s 7.488s p=0.784 n=20
social-app - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 1,883,060 1,883,060 ~ ~ ~ p=1.000 n=20
Types 1,158,093 1,158,093 ~ ~ ~ p=1.000 n=20
Memory Used 952,634k (± 0.02%) 952,742k (± 0.01%) ~ 952,218k 953,236k p=0.620 n=20
Memory Allocs 13,482,462 (± 0.16%) 13,486,418 (± 0.12%) ~ 13,440,298 13,547,055 p=0.429 n=20
Config Time 0.008s (± 2.67%) 0.008s (± 2.91%) ~ 0.007s 0.009s p=0.734 n=20
Parse Time 0.157s (± 2.48%) 0.156s (± 2.41%) ~ 0.141s 0.173s p=0.794 n=20
Bind Time 0.043s (± 8.47%) 0.043s (± 8.54%) ~ 0.037s 0.067s p=0.701 n=20
Check Time 1.404s (± 0.75%) 1.415s (± 1.20%) ~ 1.360s 1.510s p=0.394 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.631s (± 0.51%) 1.642s (± 1.05%) ~ 1.588s 1.756s p=0.365 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,823 438,823 ~ ~ ~ p=1.000 n=20
Memory Used 1,158,255k (± 0.25%) 1,158,751k (± 0.21%) ~ 1,150,841k 1,176,143k p=0.799 n=20
Memory Allocs 47,622,621 (± 0.07%) 47,633,567 (± 0.08%) ~ 47,507,450 47,774,421 p=0.495 n=20
Config Time 0.002s (±16.60%) 0.002s (±21.99%) ~ 0.000s 0.003s p=0.851 n=20
Parse Time 0.138s (± 1.48%) 0.139s (± 1.43%) ~ 0.129s 0.146s p=0.606 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.783s (± 0.38%) 0.789s (± 1.01%) ~ 0.774s 0.858s p=0.079 n=20
Emit Time 0.140s (± 1.74%) 0.139s (± 1.24%) ~ 0.134s 0.148s p=0.206 n=20
Total Time 9.159s (± 0.38%) 9.181s (± 0.47%) ~ 9.050s 9.409s p=0.457 n=20
strada-compiler - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 263,481 263,481 ~ ~ ~ p=1.000 n=20
Types 196,103 196,103 ~ ~ ~ p=1.000 n=20
Memory Used 221,564k (± 0.02%) 221,517k (± 0.02%) ~ 221,330k 221,692k p=0.080 n=20
Memory Allocs 2,388,806 (± 0.01%) 2,388,755 (± 0.01%) ~ 2,387,492 2,389,693 p=0.723 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.050s (± 2.64%) 0.050s (± 3.14%) ~ 0.044s 0.055s p=0.867 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.363s (± 0.70%) 0.364s (± 0.47%) ~ 0.357s 0.369s p=0.316 n=20
Emit Time 0.046s (± 4.62%) 0.047s (± 5.13%) ~ 0.042s 0.058s p=0.204 n=20
Total Time 0.484s (± 0.51%) 0.488s (± 0.68%) ~ 0.477s 0.503s p=0.087 n=20
t3code-server - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 4,349,937 4,349,937 ~ ~ ~ p=1.000 n=20
Types 3,042,465 3,042,465 ~ ~ ~ p=1.000 n=20
Memory Used 2,395,551k (± 0.03%) 2,395,363k (± 0.02%) ~ 2,393,689k 2,397,186k p=0.779 n=20
Memory Allocs 37,121,732 (± 0.06%) 37,134,357 (± 0.08%) ~ 37,047,377 37,286,439 p=0.529 n=20
Config Time 0.003s (± 6.00%) 0.003s (± 6.84%) ~ 0.002s 0.003s p=1.000 n=20
Parse Time 0.247s (± 2.08%) 0.246s (± 2.04%) ~ 0.228s 0.266s p=0.995 n=20
Bind Time 0.082s (± 8.94%) 0.082s (± 9.80%) ~ 0.069s 0.130s p=0.702 n=20
Check Time 5.695s (± 1.07%) 5.695s (± 1.13%) ~ 5.586s 6.107s p=0.560 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 6.039s (± 1.05%) 6.037s (± 1.09%) ~ 5.934s 6.444s p=0.774 n=20
tanstack-router - native
Errors 1 1 ~ ~ ~ p=1.000 n=20
Symbols 571,777 571,777 ~ ~ ~ p=1.000 n=20
Types 397,439 397,439 ~ ~ ~ p=1.000 n=20
Memory Used 316,846k (± 0.01%) 316,802k (± 0.02%) ~ 316,548k 316,946k p=0.234 n=20
Memory Allocs 4,332,335 (± 0.21%) 4,335,085 (± 0.14%) ~ 4,319,650 4,366,626 p=0.121 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.042s (± 3.34%) 0.041s (± 4.41%) ~ 0.035s 0.048s p=0.439 n=20
Bind Time 0.013s (±13.32%) 0.012s (±12.54%) ~ 0.010s 0.022s p=0.686 n=20
Check Time 0.497s (± 1.06%) 0.496s (± 0.91%) ~ 0.483s 0.514s p=0.644 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.569s (± 0.99%) 0.567s (± 1.11%) ~ 0.545s 0.595s p=0.433 n=20
ts-pre-modules - native
Errors 87 87 ~ ~ ~ p=1.000 n=20
Symbols 231,607 231,607 ~ ~ ~ p=1.000 n=20
Types 181,163 181,163 ~ ~ ~ p=1.000 n=20
Memory Used 190,856k (± 0.02%) 190,879k (± 0.01%) ~ 190,778k 190,956k p=0.569 n=20
Memory Allocs 1,310,132 (± 0.02%) 1,309,901 (± 0.01%) ~ 1,309,251 1,310,634 p=0.163 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.044s (± 2.63%) 0.043s (± 2.57%) ~ 0.039s 0.047s p=0.251 n=20
Bind Time 0.020s (± 6.77%) 0.021s (± 5.66%) ~ 0.016s 0.025s p=0.200 n=20
Check Time 0.290s (± 0.98%) 0.290s (± 1.04%) ~ 0.280s 0.302s p=0.963 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.360s (± 0.77%) 0.360s (± 0.61%) ~ 0.351s 0.368s p=0.931 n=20
vscode - native
Errors 11 11 ~ ~ ~ p=1.000 n=20
Symbols 7,638,911 7,638,911 ~ ~ ~ p=1.000 n=20
Types 4,468,638 4,468,638 ~ ~ ~ p=1.000 n=20
Memory Used 5,153,196k (± 0.02%) 5,151,909k (± 0.02%) ~ 5,149,679k 5,156,371k p=0.068 n=20
Memory Allocs 57,628,779 (± 0.03%) 57,614,355 (± 0.02%) ~ 57,591,072 57,690,463 p=0.242 n=20
Config Time 0.033s (± 1.23%) 0.033s (± 1.04%) ~ 0.033s 0.035s p=1.000 n=20
Parse Time 0.895s (± 2.14%) 0.896s (± 1.39%) ~ 0.813s 0.939s p=0.606 n=20
Bind Time 0.301s (± 8.24%) 0.300s (± 7.82%) ~ 0.273s 0.475s p=0.877 n=20
Check Time 6.909s (± 1.01%) 6.980s (± 0.87%) +0.070s (+ 1.02%) 6.819s 7.353s p=0.031 n=20
Emit Time 2.068s (± 7.43%) 1.919s (± 4.74%) 🟩-0.149s (- 7.22%) 1.846s 2.730s p=0.044 n=20
Total Time 10.266s (± 1.47%) 10.184s (± 1.10%) ~ 9.963s 10.928s p=0.565 n=20
webpack - native
Errors 611 611 ~ ~ ~ p=1.000 n=20
Symbols 879,524 879,524 ~ ~ ~ p=1.000 n=20
Types 612,242 612,242 ~ ~ ~ p=1.000 n=20
Memory Used 638,981k (± 0.01%) 639,064k (± 0.02%) ~ 638,657k 639,620k p=0.159 n=20
Memory Allocs 5,989,949 (± 0.05%) 5,991,892 (± 0.08%) ~ 5,982,702 6,024,368 p=0.820 n=20
Config Time 0.004s 0.004s ~ ~ ~ p=1.000 n=20
Parse Time 0.130s (± 2.03%) 0.133s (± 3.10%) ~ 0.122s 0.161s p=0.550 n=20
Bind Time 0.046s (± 9.76%) 0.044s (± 6.43%) ~ 0.037s 0.057s p=0.867 n=20
Check Time 1.196s (± 1.52%) 1.197s (± 1.58%) ~ 1.081s 1.276s p=0.973 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.401s (± 1.23%) 1.403s (± 1.22%) ~ 1.311s 1.477s p=0.963 n=20
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 644,330 644,330 ~ ~ ~ p=1.000 n=20
Types 392,175 392,175 ~ ~ ~ p=1.000 n=20
Memory Used 346,997k (± 0.03%) 347,038k (± 0.03%) ~ 346,725k 347,578k p=0.723 n=20
Memory Allocs 4,002,767 (± 0.15%) 4,000,551 (± 0.09%) ~ 3,988,432 4,015,133 p=0.968 n=20
Config Time 0.001s 0.001s (±18.96%) ~ 0.001s 0.003s p=1.000 n=20
Parse Time 0.069s (± 3.13%) 0.072s (±10.50%) ~ 0.063s 0.139s p=0.634 n=20
Bind Time 0.020s (± 6.92%) 0.021s (±10.38%) ~ 0.017s 0.035s p=0.372 n=20
Check Time 0.452s (± 1.66%) 0.464s (± 2.23%) ~ 0.436s 0.511s p=0.125 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.548s (± 1.60%) 0.565s (± 2.85%) ~ 0.525s 0.680s p=0.066 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

Reparsed JSDoc annotations on object properties and assignments can
contain wrapper types with required children. Descending into those
wrappers during type erasure removes their children and trips the
required-child visitor invariant.
@github-project-automation github-project-automation Bot moved this from Not started to Needs merge in PR Backlog Nov 3, 2026
The merged schema now permits index signatures without annotations.
Regenerating the visitor keeps its required-child checks aligned with
that schema and avoids generation drift in the PR merge result.

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 Uncommitted Bug PR for untriaged, rejected, closed or missing bug

Projects

Status: Needs merge

Development

Successfully merging this pull request may close these issues.

3 participants