Simplify forward declaration detection (#11490)

This makes sure all model classes are added to the forward declarations
which makes it possible to create templates without any model includes
which helps to resolve circular inclusion issues.
This commit is contained in:
Dominik Schmidt 2022-02-26 07:56:41 +01:00 committed by GitHub
parent 4d6b733d91
commit e35a1270a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 7 deletions

View File

@ -418,13 +418,10 @@ abstract public class AbstractCppCodegen extends DefaultCodegen implements Codeg
if( !childPropertyType.equals(childModel.classname) || childPropertyType.equals(parentModel.classname) || !childModel.hasVars ){
continue;
}
for(CodegenProperty p : childModel.vars) {
if(((p.isModel && p.dataType.equals(parentModel.classname)) || (p.isContainer && p.mostInnerItems.baseType.equals(parentModel.classname)))) {
String forwardDecl = "class " + childModel.classname + ";";
if(!forwardDeclarations.contains(forwardDecl)) {
forwardDeclarations.add(forwardDecl);
}
}
String forwardDecl = "class " + childPropertyType + ";";
if(!forwardDeclarations.contains(forwardDecl)) {
forwardDeclarations.add(forwardDecl);
}
}
}

View File

@ -29,6 +29,8 @@
#include "PFXObject.h"
namespace test_namespace {
class PFXCategory;
class PFXTag;
class PFXPet : public PFXObject {
public:

View File

@ -31,6 +31,8 @@ namespace openapitools {
namespace client {
namespace model {
class Category;
class Tag;
/// <summary>
/// A pet for sale in the pet store