aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/moduleloader.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2017-01-05 16:07:15 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2017-01-05 15:16:17 +0000
commitbde133890a445112ae32367bdfaed489174ef3c8 (patch)
tree9c554894ea475e1e50c92ca82372f73455c68e5c /src/lib/corelib/language/moduleloader.cpp
parent4bd89e16c155610922165b246e14c15a43102e4a (diff)
Check the type of the top-level item
We neglected to do that so far. If a project's top-level item was not Project or Product, an internal error would be thrown. Change-Id: I7f4ca74107a6bcc990d21f998ae6c5b9732bfb28 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/lib/corelib/language/moduleloader.cpp')
-rw-r--r--src/lib/corelib/language/moduleloader.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp
index 233fa7074..6309c24fe 100644
--- a/src/lib/corelib/language/moduleloader.cpp
+++ b/src/lib/corelib/language/moduleloader.cpp
@@ -250,7 +250,16 @@ ModuleLoaderResult ModuleLoader::load(const SetupProjectParameters &parameters)
return ModuleLoaderResult();
}
- root = wrapInProjectIfNecessary(root);
+ switch (root->type()) {
+ case ItemType::Product:
+ root = wrapInProjectIfNecessary(root);
+ break;
+ case ItemType::Project:
+ break;
+ default:
+ throw ErrorInfo(Tr::tr("The top-level item must be of type 'Project' or 'Product', but it"
+ " is of type '%1'.").arg(root->typeName()), root->location());
+ }
const QString buildDirectory = TopLevelProject::deriveBuildDirectory(parameters.buildRoot(),
TopLevelProject::deriveId(parameters.finalBuildConfigurationTree()));