Created by: amakhrov
Fixes https://github.com/OpenAPITools/openapi-generator/issues/4770
Turned out that generator still supports a deprecated inheritance case with a single oneOf ref without a discriminator. The behavior in this case is to treat it as inheritance rather than composition.
Now, the problem is that even though model.parent
is properly populated with the referenced model in this situation, model.allParents
(used with multiple inheritance) stays empty. It looks like a bug in the implementation rather than intended behavior - but of course correct me if I'm wrong.
This PR makes sure the same logic supporting the deprecated inheritance case applies both to parent
and allParents
.
I also cleaned up a few tests for DefaultCodegen that are related to allOf
composition - just to give me a bit more safety assurance of the change (better than nothing)
PR checklist
-
Read the contribution guidelines. -
Run the shell script(s) under ./bin/
(or Windows batch scripts under.\bin\windows
) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run./bin/{LANG}-petstore.sh
,./bin/openapi3/{LANG}-petstore.sh
if updating the code or mustache templates for a language ({LANG}
) (e.g. php, ruby, python, etc). -
File the PR against the correct branch: master
,4.3.x
,5.0.x
. Default:master
. -
Copy the technical committee to review the pull request if your PR is targeting a particular programming language.
Typescript generators family use multiple inheritance, hence copying them here: @TiFu @taxpon @sebastianhaas @kenisteward @Vrolijkx @macjohnny @nicokoenig @topce @akehir @petejohansonxo
And also Perl (another representative of multiple inheritance supporting generator): @wing328 @yue9944882