[PATCH] D71920: [AST] Refactor propagation of dependency bits. NFC

Richard Smith - zygoloid via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 20 09:52:28 PST 2020


rsmith added a comment.

In D71920#1870195 <https://reviews.llvm.org/D71920#1870195>, @sammccall wrote:

> If you'd like to have `concept::Requirement` use a similar bitfield, I'd just like to confirm my understanding of the current code before refactoring it:
>
> - there's just one `Dependent` bit (along with `UnexpandedPack`) - instantiation-dependence isn't relevant?


Correct; requirements are weird in this regard because substitution failure affects their value rather than their validity, so there's no difference between "refers to template parameter / substitution can fail" and "value depends on template parameters"

> - RequiresExpr is only instantiation-dependent if value-dependent (unlike other exprs)

I don't think that's quite correct: a RequiresExpr should also be instantiation-dependent if it has instantiation-dependent parameters. Other than that case, it's both value-dependent and instantiation-dependent if it has dependent requirements and neither otherwise, so yes, the two flags are the same.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D71920





More information about the cfe-commits mailing list