CppTools: Ensure that parse contexts are backed up by a toolchain

Otherwise empty parse contexts (e.g. not having any include paths...)
will be created that are not useful.

Fixes: QTCREATORBUG-22421
Change-Id: I5c9172aee38503d8b48762416e17e7047679bf2e
Reviewed-by: Cristian Adam <cristian.adam@gmail.com>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Nikolai Kosjar
2019-05-09 10:24:57 +02:00
parent c8f0d3f008
commit e3def98c00

View File

@@ -89,10 +89,13 @@ QVector<ProjectPart::Ptr> ProjectInfoGenerator::createProjectParts(const RawProj
rawProjectPart.files,
rawProjectPart.fileClassifier);
if (cat.hasParts()) {
const ProjectPart::Ptr part = projectPartFromRawProjectPart(rawProjectPart,
m_projectUpdateInfo.project);
if (!cat.hasParts())
return result;
const ProjectPart::Ptr part = projectPartFromRawProjectPart(rawProjectPart,
m_projectUpdateInfo.project);
if (m_projectUpdateInfo.cxxToolChain) {
if (cat.hasCxxSources()) {
result << createProjectPart(rawProjectPart,
part,
@@ -101,7 +104,6 @@ QVector<ProjectPart::Ptr> ProjectInfoGenerator::createProjectParts(const RawProj
Language::Cxx,
LanguageExtension::None);
}
if (cat.hasObjcxxSources()) {
result << createProjectPart(rawProjectPart,
part,
@@ -110,7 +112,9 @@ QVector<ProjectPart::Ptr> ProjectInfoGenerator::createProjectParts(const RawProj
Language::Cxx,
LanguageExtension::ObjectiveC);
}
}
if (m_projectUpdateInfo.cToolChain) {
if (cat.hasCSources()) {
result << createProjectPart(rawProjectPart,
part,
@@ -129,6 +133,7 @@ QVector<ProjectPart::Ptr> ProjectInfoGenerator::createProjectParts(const RawProj
LanguageExtension::ObjectiveC);
}
}
return result;
}