ilya-biryukov added inline comments.

================
Comment at: clang-tools-extra/clangd/unittests/TweakTesting.h:77
   //  - if apply() returns an error, returns "fail: <message>"
-  std::string apply(llvm::StringRef MarkedCode) const;
+  std::string apply(llvm::StringRef MarkedCode);
 
----------------
kadircet wrote:
> ilya-biryukov wrote:
> > It seems weird that we have this inconsistency between the contents for 
> > current file (passed through the return value) and contents for other files 
> > (pass through the fields).
> > 
> > A few better alternatives that come to mind:
> > 1. add an out parameter, could be optional in case when all changes are in 
> > the main file.
> > 2. this function will fail when there are changes outside main file, but we 
> > can add a new function to return changes in all modified files, e.g. as 
> > `StringMap<std::string>` or `vector<pair<Path, string/*Content*/>>` (the 
> > latter allows to use standard matchers)
> It is left-out this way since most of the checks only care about a single 
> file, and there are lots of them so changing would definitely require some 
> plumbing.
> 
> I am not sure having the inconsistency between main file and others matters 
> so much though; we have similar discrimination towards non-main files in a 
> bunch of other places in testing infrastructure e.g TestTU.
> 
> As for the suggestions, adding another apply function for multifile case 
> doesn't seem so nice, so I would rather move forward with first one, if you 
> believe this is a strong concern.
> It is left-out this way since most of the checks only care about a single 
> file, and there are lots of them so changing would definitely require some 
> plumbing.
Agree that no matter what we do, we should let the current usages stay the same.

> I am not sure having the inconsistency between main file and others matters 
> so much though; we have similar discrimination towards non-main files in a 
> bunch of other places in testing infrastructure e.g TestTU.

What kind of inconsistency are you referring to? Both main file and extra files 
are fields inside `TestTU`? It outputs `ParsedAST` and it's a return value of 
the `build()` function.
There are no multiple ways to return results.

> As for the suggestions, adding another apply function for multifile case 
> doesn't seem so nice, so I would rather move forward with first one, if you 
> believe this is a strong concern.

Yeah, totally ok with this. I'm not a big fan of out parameters myself and 
prefer putting stuff into the return value instead.
But they're still widely used, so I view this as my preference rather than a 
common convention (sigh...)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D66647



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

Reply via email to