aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libs/utils/devicefileaccess.cpp1
-rw-r--r--src/libs/utils/filepath.cpp6
-rw-r--r--src/libs/utils/filepath.h2
-rw-r--r--src/plugins/projectexplorer/devicesupport/devicemanager.cpp7
4 files changed, 9 insertions, 7 deletions
diff --git a/src/libs/utils/devicefileaccess.cpp b/src/libs/utils/devicefileaccess.cpp
index e91f16b711..ed02b444ae 100644
--- a/src/libs/utils/devicefileaccess.cpp
+++ b/src/libs/utils/devicefileaccess.cpp
@@ -120,7 +120,6 @@ bool DeviceFileAccess::createDirectory(const FilePath &filePath) const
bool DeviceFileAccess::exists(const FilePath &filePath) const
{
Q_UNUSED(filePath)
- QTC_CHECK(false);
return false;
}
diff --git a/src/libs/utils/filepath.cpp b/src/libs/utils/filepath.cpp
index 8fb7fcd47a..7eb95343a6 100644
--- a/src/libs/utils/filepath.cpp
+++ b/src/libs/utils/filepath.cpp
@@ -939,9 +939,9 @@ DeviceFileAccess *FilePath::fileAccess() const
}
static DeviceFileAccess dummy;
- DeviceFileAccess *access = s_deviceHooks.fileAccess(*this);
- QTC_ASSERT(access, qDebug() << toString(); return &dummy);
- return access;
+ const expected_str<DeviceFileAccess *> access = s_deviceHooks.fileAccess(*this);
+ QTC_ASSERT_EXPECTED(access, return &dummy);
+ return *access ? *access : &dummy;
}
/*!
diff --git a/src/libs/utils/filepath.h b/src/libs/utils/filepath.h
index a3da61ce47..05a851d431 100644
--- a/src/libs/utils/filepath.h
+++ b/src/libs/utils/filepath.h
@@ -269,7 +269,7 @@ class QTCREATOR_UTILS_EXPORT DeviceFileHooks
public:
static DeviceFileHooks &instance();
- std::function<DeviceFileAccess *(const FilePath &)> fileAccess;
+ std::function<expected_str<DeviceFileAccess *>(const FilePath &)> fileAccess;
std::function<QString(const FilePath &)> deviceDisplayName;
std::function<bool(const FilePath &, const FilePath &)> ensureReachable;
std::function<Environment(const FilePath &)> environment;
diff --git a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp
index 0ff44bbf34..6448b085b8 100644
--- a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp
+++ b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp
@@ -422,11 +422,14 @@ DeviceManager::DeviceManager(bool isInstance) : d(std::make_unique<DeviceManager
return device->localSource(file);
};
- deviceHooks.fileAccess = [](const FilePath &filePath) -> DeviceFileAccess * {
+ deviceHooks.fileAccess = [](const FilePath &filePath) -> expected_str<DeviceFileAccess *> {
if (!filePath.needsDevice())
return DesktopDeviceFileAccess::instance();
auto device = DeviceManager::deviceForPath(filePath);
- QTC_ASSERT(device, qDebug() << filePath.toString(); return nullptr);
+ if (!device) {
+ return make_unexpected(
+ QString("No device found for path \"%1\"").arg(filePath.toUserOutput()));
+ }
return device->fileAccess();
};