Commit 55019e3
fix(generator): gracefully handle unbound generic types
The generator would previously crash when encountering an unbound generic type due to an `InvalidOperationException` in `GetTypeHierarchyLevel` when calling `.Max()` on an empty collection of type arguments.
Additionally, the generator would produce invalid code if an unbound generic type was not filtered out correctly.
This commit addresses the issue by:
1. Making `GetTypeHierarchyLevel` robust against empty type argument lists.
2. Adding an explicit check for unbound generic types in `CheckGenericValidity` to ensure they are filtered out early in the type collection process.
Adds a new test case to verify that the generator no longer crashes and produces valid code when an unbound generic type is referenced.
Co-authored-by: Gemini <gemini@google.com>1 parent 41606e6 commit 55019e3
3 files changed
Lines changed: 34 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
192 | 192 | | |
193 | 193 | | |
194 | 194 | | |
195 | | - | |
| 195 | + | |
196 | 196 | | |
197 | 197 | | |
198 | 198 | | |
| |||
344 | 344 | | |
345 | 345 | | |
346 | 346 | | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
347 | 350 | | |
348 | 351 | | |
349 | 352 | | |
| |||
842 | 845 | | |
843 | 846 | | |
844 | 847 | | |
845 | | - | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
846 | 851 | | |
847 | 852 | | |
848 | 853 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
231 | 231 | | |
232 | 232 | | |
233 | 233 | | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
234 | 246 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
623 | 623 | | |
624 | 624 | | |
625 | 625 | | |
| 626 | + | |
626 | 627 | | |
627 | 628 | | |
628 | 629 | | |
629 | 630 | | |
630 | 631 | | |
631 | 632 | | |
632 | 633 | | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
633 | 648 | | |
0 commit comments