IoDelegate::ListFiles: detect error

Fixes: 180453172
Test: system/tools/aidl :) aidl --checkapi happy/hippo asdf
ERROR: happy/hippo: Failed to read directory 'happy/hippo': No such file
or directory

Change-Id: I43323c2f99fcb4ba4d5f61c2b921539b1f8fc721
diff --git a/aidl_checkapi.cpp b/aidl_checkapi.cpp
index de5c9ad..c45626d 100644
--- a/aidl_checkapi.cpp
+++ b/aidl_checkapi.cpp
@@ -373,8 +373,14 @@
 
 static Result<AidlTypenames> load_from_dir(const Options& options, const IoDelegate& io_delegate,
                                            const std::string& dir) {
+  Result<std::vector<std::string>> dir_files = io_delegate.ListFiles(dir);
+  if (!dir_files.ok()) {
+    AIDL_ERROR(dir) << dir_files.error();
+    return Error();
+  }
+
   AidlTypenames typenames;
-  for (const auto& file : io_delegate.ListFiles(dir)) {
+  for (const auto& file : *dir_files) {
     if (!android::base::EndsWith(file, ".aidl")) continue;
     if (internals::load_and_validate_aidl(file, options, io_delegate, &typenames,
                                           nullptr /* imported_files */) != AidlError::OK) {
@@ -382,6 +388,7 @@
       return Error();
     }
   }
+
   return typenames;
 }