diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2017-01-05 16:07:15 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2017-01-05 15:16:17 +0000 |
commit | bde133890a445112ae32367bdfaed489174ef3c8 (patch) | |
tree | 9c554894ea475e1e50c92ca82372f73455c68e5c /src/lib/corelib/language/moduleloader.cpp | |
parent | 4bd89e16c155610922165b246e14c15a43102e4a (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.cpp | 11 |
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 ¶meters) 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())); |