ioeric added inline comments.

================
Comment at: include/clang/Format/Format.h:862
 ///
 /// \returns FormatStyle as specified by ``StyleName``. If no style could be
 /// determined, the default is LLVM Style (see ``getLLVMStyle()``).
----------------
Is this still true?


================
Comment at: lib/Format/Format.cpp:424
 
+template <typename... ArgTs> llvm::Error make_string_error(ArgTs &&... Args) {
+  return llvm::make_error<llvm::StringError>(std::forward<ArgTs>(Args)...,
----------------
Why do you need a template if you only use this function with one argument?


================
Comment at: lib/Format/Format.cpp:1890
   }
-  FormatStyle Style = getLLVMStyle();
-  Style.Language = getLanguageByFileName(FileName);
+  FormatStyle::LanguageKind Language = getLanguageByFileName(FileName);
 
----------------
amaiorano wrote:
> Since we won't always return a FormatStyle, we no longer construct one here. 
> Rather, instances are created in local scopes below when required.
I'd probably keep the default style so that we don't need to set `Language` 
repeatedly below.


================
Comment at: lib/Format/Format.cpp:1900
+  FormatStyle FallbackStyle = getNoStyle();
+  if (!getPredefinedStyle(FallbackStyleName, Language, &FallbackStyle)) {
+    return make_string_error("Invalid fallback style \"" +
----------------
Nit: prefer no curly brace around one liners. Same below.


================
Comment at: lib/Format/Format.cpp:1901
+  if (!getPredefinedStyle(FallbackStyleName, Language, &FallbackStyle)) {
+    return make_string_error("Invalid fallback style \"" +
+                             FallbackStyleName.str());
----------------
amaiorano wrote:
> I am unsure whether I should be returning these error strings at all. I say 
> this because some of the functions called in this one will output to errs(), 
> which means the caller doesn't get the full picture of what went wrong.
> 
> Maybe it's better to keep the original code that outputs to errs(), and just 
> return an error code instead. Thoughts?
I think returning an `Expected` is the right approach. I think we should 
consider using customized format-relayed error codes (like that in the 
`tooling::Replacements` library) to provide richer information. For example, 
you could use customized error codes instead of `llvm::inconvertibleErrorCode` 
when constructing a `StringError` to provide additional information besides the 
error message. Other interfaces in the format library can potentially benefit 
from codes as well (e.g. `ParseError` can be merged). 


================
Comment at: lib/Tooling/Refactoring.cpp:86
 
-    format::FormatStyle CurStyle = format::getStyle(Style, FilePath, "LLVM");
+       llvm::Expected<format::FormatStyle> FormatStyleOrError = 
format::getStyle(Style, FilePath, "LLVM");
+       if (!FormatStyleOrError) {
----------------
Is this indentation intended? 


================
Comment at: lib/Tooling/Refactoring.cpp:87
+       llvm::Expected<format::FormatStyle> FormatStyleOrError = 
format::getStyle(Style, FilePath, "LLVM");
+       if (!FormatStyleOrError) {
+               llvm::errs() << llvm::toString(FormatStyleOrError.takeError()) 
<< "\n";
----------------
amaiorano wrote:
> As I wrote above, by returning the string, the caller has the burden of 
> outputting the error. More importantly, getStyle may already have written 
> other errors to errs(), so I'm not sure this makes sense.
> 
> If we go with only returning error code, I suppose I'd use 
> llvm::ErrorOr<FormatStyle> as the return type.
I don't think `getStyle` should write to `errs()` if it returns an `Error`. 


https://reviews.llvm.org/D28081



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

Reply via email to