diff --git a/src/libs/utils/treemodel.h b/src/libs/utils/treemodel.h index 2baa60e3878..c7406c2ebe4 100644 --- a/src/libs/utils/treemodel.h +++ b/src/libs/utils/treemodel.h @@ -149,6 +149,11 @@ public: TreeItem::insertOrderedChild(item, cmp0); } + ChildType *findAnyChild(const std::function &pred) const + { + return static_cast(TreeItem::findAnyChild(pred)); + } + ChildType *reverseFindAnyChild(const std::function &pred) const { return static_cast(TreeItem::reverseFindAnyChild(pred)); diff --git a/src/plugins/autotest/boost/boosttestresult.cpp b/src/plugins/autotest/boost/boosttestresult.cpp index f0b83e2cd92..7d88787446a 100644 --- a/src/plugins/autotest/boost/boosttestresult.cpp +++ b/src/plugins/autotest/boost/boosttestresult.cpp @@ -99,10 +99,9 @@ const ITestTreeItem *BoostTestResult::findTestTreeItem() const if (!rootNode) return nullptr; - const auto foundItem = rootNode->findAnyChild([this](const Utils::TreeItem *item) { + return rootNode->findAnyChild([this](const Utils::TreeItem *item) { return matches(static_cast(item)); }); - return static_cast(foundItem); } bool BoostTestResult::matches(const BoostTestTreeItem *item) const diff --git a/src/plugins/autotest/catch/catchresult.cpp b/src/plugins/autotest/catch/catchresult.cpp index da27010efce..36641f9d01a 100644 --- a/src/plugins/autotest/catch/catchresult.cpp +++ b/src/plugins/autotest/catch/catchresult.cpp @@ -74,7 +74,7 @@ const ITestTreeItem *CatchResult::findTestTreeItem() const const QString tcName = name(); const QString tcFilePath = fileName(); - const auto item = rootNode->findAnyChild([&tcName, &tcFilePath](const Utils::TreeItem *item) { + return rootNode->findAnyChild([&tcName, &tcFilePath](const Utils::TreeItem *item) { const auto treeItem = static_cast(item); if (!treeItem || treeItem->filePath() != tcFilePath) return false; @@ -82,7 +82,6 @@ const ITestTreeItem *CatchResult::findTestTreeItem() const return parameterized ? tcName.startsWith(treeItem->name() + " - ") : tcName == treeItem->name(); }); - return static_cast(item); } } // namespace Internal diff --git a/src/plugins/autotest/gtest/gtestresult.cpp b/src/plugins/autotest/gtest/gtestresult.cpp index acc265a70cb..10a81f48dbb 100644 --- a/src/plugins/autotest/gtest/gtestresult.cpp +++ b/src/plugins/autotest/gtest/gtestresult.cpp @@ -103,11 +103,10 @@ const ITestTreeItem *GTestResult::findTestTreeItem() const if (!rootNode) return nullptr; - const auto item = rootNode->findAnyChild([this](const Utils::TreeItem *item) { + return rootNode->findAnyChild([this](const Utils::TreeItem *item) { const auto treeItem = static_cast(item); return treeItem && matches(treeItem); }); - return static_cast(item); } bool GTestResult::matches(const TestTreeItem *treeItem) const diff --git a/src/plugins/autotest/qtest/qttestresult.cpp b/src/plugins/autotest/qtest/qttestresult.cpp index 67865d4aa61..e1b9edc22f3 100644 --- a/src/plugins/autotest/qtest/qttestresult.cpp +++ b/src/plugins/autotest/qtest/qttestresult.cpp @@ -141,11 +141,10 @@ const ITestTreeItem *QtTestResult::findTestTreeItem() const const TestTreeItem *rootNode = framework->rootNode(); QTC_ASSERT(rootNode, return nullptr); - const auto item = rootNode->findAnyChild([this](const Utils::TreeItem *item) { + return rootNode->findAnyChild([this](const Utils::TreeItem *item) { const TestTreeItem *treeItem = static_cast(item); return treeItem && matches(treeItem); }); - return static_cast(item); } bool QtTestResult::matches(const TestTreeItem *item) const diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index cfe7870ff48..720029faa29 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -1936,9 +1936,9 @@ void tst_Dumpers::dumper() } const QString iname = check.iname; - WatchItem *item = static_cast(local.findAnyChild([iname](Utils::TreeItem *item) { + WatchItem *item = local.findAnyChild([iname](Utils::TreeItem *item) { return static_cast(item)->internalName() == iname; - })); + }); if (!item) { if (check.optionallyPresent) return true;