summaryrefslogtreecommitdiffstats
path: root/src/doxygen.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2021-03-31 14:44:36 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2021-04-08 19:19:25 (GMT)
commita9e4a9e5b51ab33df64f3989c710e08546dcd45d (patch)
tree8e2b9dc39f2ac89b12ab4a0af4606e23d9165afe /src/doxygen.cpp
parentfc2e284f9657abbe343d41b4a7922d5c4d788b11 (diff)
downloadDoxygen-a9e4a9e5b51ab33df64f3989c710e08546dcd45d.zip
Doxygen-a9e4a9e5b51ab33df64f3989c710e08546dcd45d.tar.gz
Doxygen-a9e4a9e5b51ab33df64f3989c710e08546dcd45d.tar.bz2
C++20 concepts: added support for parsing requires-clauses
Diffstat (limited to 'src/doxygen.cpp')
-rw-r--r--src/doxygen.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index d5e082d..9a9342b 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -1011,6 +1011,10 @@ static void addClassToContext(const Entry *root)
cd->setTemplateArguments(*tArgList);
}
}
+ if (cd->requiresClause().isEmpty() && !root->req.isEmpty())
+ {
+ cd->setRequiresClause(root->req);
+ }
cd->setCompoundType(convertToCompoundType(root->section,root->spec));
@@ -1081,6 +1085,7 @@ static void addClassToContext(const Entry *root)
{
cd->setTemplateArguments(*tArgList);
}
+ cd->setRequiresClause(root->req);
cd->setProtection(root->protection);
cd->setIsStatic(root->stat);
@@ -1365,6 +1370,7 @@ static ClassDefMutable *createTagLessInstance(const ClassDef *rootCd,const Class
imd->setMemberSpecifiers(md->getMemberSpecifiers());
imd->setMemberGroupId(md->getMemberGroupId());
imd->setInitializer(md->initializer());
+ imd->setRequiresClause(md->requiresClause());
imd->setMaxInitLines(md->initializerLines());
imd->setBitfields(md->bitfieldString());
imd->setLanguage(md->getLanguage());
@@ -1982,6 +1988,7 @@ static void findUsingDeclImports(const Entry *root)
newMd->setBodySegment(md->getDefLine(),md->getStartBodyLine(),md->getEndBodyLine());
newMd->setBodyDef(md->getBodyDef());
newMd->setInitializer(md->initializer());
+ newMd->setRequiresClause(md->requiresClause());
newMd->setMaxInitLines(md->initializerLines());
newMd->setMemberGroupId(root->mGrpId);
newMd->setMemberSpecifiers(md->getMemberSpecifiers());
@@ -3104,6 +3111,7 @@ static void addMethodToClass(const Entry *root,ClassDefMutable *cd,
md->setMemberGroupId(root->mGrpId);
md->setTypeConstraints(root->typeConstr);
md->setLanguage(root->lang);
+ md->setRequiresClause(root->req);
md->setId(root->id);
md->setBodyDef(fd);
md->setFileDef(fd);
@@ -3213,6 +3221,7 @@ static void addGlobalFunction(const Entry *root,const QCString &rname,const QCSt
md->addSectionsToDefinition(root->anchors);
md->setMemberSpecifiers(root->spec);
md->setMemberGroupId(root->mGrpId);
+ md->setRequiresClause(root->req);
NamespaceDefMutable *nd = 0;
// see if the function is inside a namespace that was not part of
@@ -5026,6 +5035,10 @@ static void addMemberDocs(const Entry *root,
//printf("setInitializer\n");
md->setInitializer(rootInit.c_str());
}
+ if (md->requiresClause().isEmpty() && !root->req.isEmpty())
+ {
+ md->setRequiresClause(root->req);
+ }
md->setMaxInitLines(root->initLines);