JDevlieghere added inline comments.

================
Comment at: lldb/include/lldb/Breakpoint/BreakpointList.h:71
   ///   \bfalse if the input name was not a legal breakpoint name.
-  bool FindBreakpointsByName(const char *name, BreakpointList &matching_bps);
+  bool FindBreakpointsByName(const char *name, std::vector<lldb::BreakpointSP> 
&matching_bps);
 
----------------
JosephTremoulet wrote:
> JDevlieghere wrote:
> > I think the API would look nicer if we returned an 
> > `llvm::Optional<std::vector>>` where `None` means an invalid breakpoint 
> > name and an empty list no matches. What do you think?
> I think I'd go with `Expected<>` over `Optional<>`, since the `false` return 
> indicates invalid input.
> 
> I actually originally considered different signatures for this change.  My 
> first inclination was to switch the populated list from a `BreakpointList` to 
> a `BreakpointIDList`, but it seemed that would be inefficient for the call 
> from `Target::ApplyNameToBreakpoints` that needs the actual breakpoints.  So 
> then I went down the route of `Expected<iterator_range<breakpoint 
> iterator>>`, but it was quickly becoming more code (and more convoluted) than 
> seemed warranted.  So I looked around, saw `std::vector`s being populated by 
> e.g. `Breakpoint::GetNames` and `SourceManager::FindLinesMatchingRegex`, and 
> decided to follow suit.
> 
> Which is a long way to say:  populating a `std::vector` seems to "fit in" 
> with surrounding code better, but aside from that, yes I think returning 
> `Expected<std::vector>` would be a more natural fit.  I don't know which of 
> those concerns to prefer in this code; LMK and I'm happy to switch it if that 
> seems best.
I think an `Expected` is perfect. I proposed `Optional` because the way things 
are, the call sites would have to discard the error anyway. However, given that 
`FindBreakpointsByName` takes a `Status`, I think it would be good to propagate 
that up. 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70907/new/

https://reviews.llvm.org/D70907



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

Reply via email to