Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I am assuming but am not entirely sure that the restriction against generating lists of interface types as a field (simple union, flat union, and alternate) is because those generators generate structs of their own whose names collide with preexisting structs.
The first commit lifts that restriction and also adds the word "Variant" as a prefix to these types, thus removing the name collisions. There's additional reasoning in the commit as to why that is.
I've also removed a test that starts failing but that is because newer versions of the QEMU API define that type as a discriminated union instead of a flat union, and our code generator currently (on master) generates stack overflows when trying to marshal a discriminated union. I've filed #190 for that.
Depends on #189
Closes #188
Closes #187