[clang] [Clang] Fix LibTooling doc (PR #90441)

via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 29 02:23:19 PDT 2024


================
@@ -71,9 +71,9 @@ and automatic location of the compilation database using source files paths.
   int main(int argc, const char **argv) {
     // CommonOptionsParser constructor will parse arguments and create a
     // CompilationDatabase.  In case of error it will terminate the program.
-    CommonOptionsParser OptionsParser(argc, argv, MyToolCategory);
+    auto OptionsParser = CommonOptionsParser::create(argc, argv, MyToolCategory);
----------------
Sirraide wrote:

```suggestion
    Expected<CommonOptionsParser> ExpectedParser = 
      CommonOptionsParser::create(argc, argv, MyToolCategory);
    if (auto E = ExpectedParser.takeError()) {
      errs() << "Error creating options parser: " << toString(std::move(E)) << "\n";
      return 1;
    }
    
    auto& OptionsParser = ExpectedParser.get();
```
Using `->` or `*` on an `Expected` will assert if the `Expected` hasn’t been checked for errors, even if it does not contain an error. Something like this should work, but please verify that this actually compiles. 

Furthermore, we normally spell out types instead of using `auto` in cases where the type isn’t obvious from the context. Moreover, I think there’s value in being a bit more verbose here since this documentation is mainly intended for people new to libtooling.





https://github.com/llvm/llvm-project/pull/90441


More information about the cfe-commits mailing list