aaron.ballman added inline comments.

================
Comment at: lib/AST/ASTImporter.cpp:6140
+ExpectedStmt ASTNodeImporter::VisitChooseExpr(ChooseExpr *E) {
+  auto Imp = importSeq(E->getCond(), E->getLHS(), E->getRHS(),
+                       E->getBuiltinLoc(), E->getRParenLoc(), E->getType());
----------------
a_sidorin wrote:
> aaron.ballman wrote:
> > Please don't use `auto` here; the type isn't spelled out in the 
> > initialization.
> Hi Aaron,
> importSeq() is a helper targeted to simplify a lot of imports done during AST 
> node import and related error handling. The type of this `importSeq()` 
> expression is `Expected<std::tuple<Expr *, Expr *, Expr *, SourceLocation, 
> SourceLocation, QualType>>`, so I think it's better to leave it as `auto`.
Wow. I really dislike that we basically *have* to hide the type information 
because it's just too ugly to spell. I understand why we're using `auto` based 
on your explanation, but it basically means I can't understand what this code 
is doing without a lot more effort.

Let's keep the `auto`, but let's please stop using type compositions that make 
it considerably harder to review the code. This feel like a misuse of 
`std::tuple`.


================
Comment at: lib/AST/ASTImporter.cpp:6160
+  // condition-dependent.
+  bool CondIsTrue = false;
+  if (!E->isConditionDependent())
----------------
a_sidorin wrote:
> aaron.ballman wrote:
> > `bool CondIsTrue = E->isConditionDependent() ? false : 
> > E->isConditionTrue();`
> `bool CondIsTrue = E->isConditionDependent() && E->isConditionTrue();`?
I like that even better than my suggestion. :-)


Repository:
  rC Clang

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

https://reviews.llvm.org/D58292



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

Reply via email to