poya marked 2 inline comments as done.
poya added inline comments.

================
Comment at: lldb/source/Plugins/Language/ObjC/Cocoa.cpp:662
 
+static void NSURL_ConcatSummary(StreamString &first, const StreamString 
&second,
+    std::string prefix, std::string suffix) {
----------------
teemperor wrote:
> poya wrote:
> > poya wrote:
> > > teemperor wrote:
> > > > teemperor wrote:
> > > > > teemperor wrote:
> > > > > > I am not a big fan of the "Class_method" way of extending classes. 
> > > > > > Maybe `ConcatSummaryForNSURL`?
> > > > > first and second also not very descriptive variables names. What 
> > > > > about the `summary` and `base_summary` names from where we call the 
> > > > > method?
> > > > Having `first` as both a in and out parameter makes the control flow 
> > > > not very trivial to understand. You could just compute a result and 
> > > > return that result (and then assign this to the `summary` variable in 
> > > > the calling context)? Also all parameters to this function can just be 
> > > > `llvm::StringRef` from what I can see.
> > > Was trying to follow the coding style used elsewhere in the same file for 
> > > the helper function name
> > Didn't think summary and base_summary made it very simple to reason about, 
> > perhaps destination and source, or front and back, would make more sense 
> > for a concatenation function?
> > Was trying to follow the coding style used elsewhere in the same file for 
> > the helper function name
> 
> Fair point.
> 
> > Didn't think summary and base_summary made it very simple to reason about, 
> > perhaps destination and source, or front and back, would make more sense 
> > for a concatenation function?
> 
> I mean it's not just concatenating first and second, but removes string 
> prefix/suffix, one arbitrary character that is the a quotation character we 
> don't want in summaries and then returns them with in the format for that we 
> expect for summaries (`A -- B`), so it seems quite specific to expect a 
> summary and summary_base.
Agree that it's not a pure concatenation function, but just to avoid any 
misunderstandings I want to clarify that it retains the enclosing prefix/suffix 
and quote marks in its output.

It concatenates
@"test.html" and @"http://lldb.llvm.org";
to
@"test.html -- http://lldb.llvm.org";
which is the actual summary output
  
I can try switching the arg names though. 




================
Comment at: lldb/source/Plugins/Language/ObjC/Cocoa.cpp:673
+  if (!first_str.empty())
+    first_str = first_str.drop_back();
+
----------------
teemperor wrote:
> poya wrote:
> > teemperor wrote:
> > > This can all be just:
> > > 
> > > ```
> > > first_str.consume_back(suffix);
> > > first_str.consume_back("\"");
> > > ```
> > > 
> > > And the same thing below.
> > Didn't want to make an assumption of the quote character used if it ever 
> > changed
> If this changes we probably want to know (and we maybe should even assert 
> that this happens).
Got it. As I saw that in some contexts the quote character was ' instead of " 
(not here though), I was just wary about potentially introducing a similar 
failure point as I was fixing, '@' string prefix in obj-c vs no prefix in 
Swift, which had gone unnoticed.


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

https://reviews.llvm.org/D70393



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

Reply via email to