[PATCH] D66011: [llvm-readobj] - Remove 'error(Error EC)' helper.
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 9 06:32:17 PDT 2019
MaskRay added inline comments.
================
Comment at: tools/llvm-readobj/llvm-readobj.cpp:385
void reportError(StringRef Input, Error Err) {
+ if (!Err)
----------------
grimar wrote:
> MaskRay wrote:
> > jhenderson wrote:
> > > grimar wrote:
> > > > MaskRay wrote:
> > > > > reportError now checks `if (!Err)`. Is it still appropriate to call it `reportError`? I want to hear other opinions.
> > > > Previously `error(Error EC)` did that. I can probably remove `if (!Err)` check to avoid the confusion.
> > > I'd probably replace the `if (!Err)` check with an equivalent assertion. I think it's natural to write code like:
> > >
> > > ```
> > > if (Error E = doSomething())
> > > reportError(File, std::move(E));
> > > ```
> > >
> > > whereas the following looks weird to me:
> > >
> > > ```
> > > reportError(doSomethingWhichWillSucceed());
> > > ```
> > >
> > > An alternative name might be "checkError" if you didn't do that.
> > `checkError` looks good to me.
> I'd probably stick to `reportError` version. It looks simpler and more natural to use for me.
I think I slightly prefer `Error` being the first argument. This allows to use default arguments for other fields if we supply more arguments, e.g.:
```
checkError(Error E, StringRef FileName, StringRef ArchiveName,
StringRef ArchitectureName = StringRef());
```
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D66011/new/
https://reviews.llvm.org/D66011
More information about the llvm-commits
mailing list