labath added a reviewer: zturner.
labath added a comment.

In https://reviews.llvm.org/D47535#1116392, @JDevlieghere wrote:

> In https://reviews.llvm.org/D47535#1116364, @labath wrote:
>
> > Actually, I wonder if we shouldn't just deprecate this function altogether. 
> > What was your motivation for this patch? It seems we already have 
> > `llvm::fs::(recursive_)directory_iterator` for this purpose. It would be 
> > great if we could use that for all new code. Have you looked at that?
>
>
> My motivation is https://reviews.llvm.org/D47539. I could use the iterators 
> directly but since the FileSpec one is based on them anyway (and adds some 
> functionality that is actually useful) I figured I might as well use them for 
> consistency. I'm not opposed to using the iterators directly, but won't that 
> result in more code?


Looking back at the last refactor of this function 
(https://reviews.llvm.org/D30807)  I think the intention even then was to 
deprecate/remove it altogether.

Also, I don't think that this would increase the amount of code. Looking at 
your patch, it seems that it could be equivalently implemented using llvm 
iterators as:

  std::error_code EC;
  for(llvm::sys::fs::recursive_directory_iterator Iter(dir.GetStringRef(), EC), 
End; Iter != End && !EC ; Iter.incement(EC)) {
    auto Status = Iter->status();
    if (!Status)
      break;
    if (llvm::sys::fs::is_regular_file(*Status) && 
llvm::sys::fs::can_execute(Status->path())
      executables.push_back(FileSpec(Status->path()));
  }

which is (a tiny bit) shorter. I also find code with no callbacks more readable.


Repository:
  rL LLVM

https://reviews.llvm.org/D47535



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to