[PATCH] D83213: [clang][RecoveryExpr] Clarify the dependence-bits documentation.

Haojian Wu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Jul 12 23:44:05 PDT 2020


hokein added inline comments.


================
Comment at: clang/lib/AST/ComputeDependence.cpp:502
+  //     dependent type), or the type is known and dependent, or it has
+  //     type-dependent subexpressions
   auto D = toExprDependence(E->getType()->getDependence()) |
----------------
sammccall wrote:
> hmm, I'd missed the type-dependent subexpressions question.
> If there are type-dependent subexpressions, but a non-dependent type was specified for the RecoveryExpr, is the expr type-dependent?
> 
> This is the part that I think we have discretion over.
> The definition of type-dependent does say "any type-dependent subexpression" but then lays out a list of exceptions such as casts, which are not type-dependent even if their argument is. What these have in common is that the type is known.
> 
> So I think this comes down to whether it's the caller's job to work this out, or we want to conservatively call these expressions dependent.
> 
> I think the former is probably better - marking the expression as type-dependent but not having its actual type be dependent doesn't serve any purpose I'm aware of. It's also inconsistent with the informal definition of type-dependence described earlier in this patch.
> 
> So the comment should describe the current state, but maybe a FIXME to remove the type-dependent subexpressions clause?
yeah, I think we should respect to actual type of RecoveryExpr, added a fixme.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D83213





More information about the cfe-commits mailing list