[PATCH] D83213: [AST][RecoveryExpr] Don't set the instantiation-bit.

2020-07-12 Thread Haojian Wu via Phabricator via cfe-commits
hokein updated this revision to Diff 277332. hokein marked 12 inline comments as done. hokein added a comment. address comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D83213/new/ https://reviews.llvm.org/D83213 Files: clang/include/clang/

[PATCH] D83213: [AST][RecoveryExpr] Don't set the instantiation-bit.

2020-07-10 Thread Sam McCall via Phabricator via cfe-commits
sammccall accepted this revision. sammccall added inline comments. This revision is now accepted and ready to land. Comment at: clang/include/clang/AST/DependenceFlags.h:22 +// cause instantiation to fail +// - or an error (usually in a non-template context) +//

[PATCH] D83213: [AST][RecoveryExpr] Don't set the instantiation-bit.

2020-07-10 Thread Haojian Wu via Phabricator via cfe-commits
hokein updated this revision to Diff 276961. hokein added a comment. more tweaks. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D83213/new/ https://reviews.llvm.org/D83213 Files: clang/include/clang/AST/DependenceFlags.h clang/include/clang/AST

[PATCH] D83213: [AST][RecoveryExpr] Don't set the instantiation-bit.

2020-07-10 Thread Haojian Wu via Phabricator via cfe-commits
hokein updated this revision to Diff 276959. hokein added a comment. Clarify the documentation for dependence-bits, and extend it to error. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D83213/new/ https://reviews.llvm.org/D83213 Files: clang/inc

[PATCH] D83213: [AST][RecoveryExpr] Don't set the instantiation-bit.

2020-07-10 Thread Haojian Wu via Phabricator via cfe-commits
hokein added a comment. > Not trying to be difficult, but I'm not sure what you mean by "dependent" in > #2. Informally, it means the same thing as #1. Formally, C++ defines > type-dependence and value-dependence for expressions, and the ABI defines > instantiation-dependence for expressions -

[PATCH] D83213: [AST][RecoveryExpr] Don't set the instantiation-bit.

2020-07-09 Thread Sam McCall via Phabricator via cfe-commits
sammccall added a comment. In D83213#2141387 , @hokein wrote: > I think this depends on how we interpret the instantiation-dependent bit. In > clang, it currently has two semantics: > > 1. an expression (somehow) depends on a template parameter; > 2. an e

[PATCH] D83213: [AST][RecoveryExpr] Don't set the instantiation-bit.

2020-07-09 Thread Haojian Wu via Phabricator via cfe-commits
hokein added a comment. I think this depends on how we interpret the instantiation-dependent bit. In clang, it currently has two semantics: 1. an expression (somehow) depends on a template parameter; 2. an expression is dependent; Prior to RecoveryExpression being added, 1 and 2 are equal, so w

[PATCH] D83213: [AST][RecoveryExpr] Don't set the instantiation-bit.

2020-07-07 Thread Sam McCall via Phabricator via cfe-commits
sammccall added a comment. What's the rationale/motivation for this? I'd expect this to break a lot of subtle assumptions, because the invariant "nothing can be dependent without being instantiation-dependent" is a useful one. It also doesn't seem correct from first principles. My mental model

[PATCH] D83213: [AST][RecoveryExpr] Don't set the instantiation-bit.

2020-07-06 Thread Haojian Wu via Phabricator via cfe-commits
hokein created this revision. hokein added a reviewer: sammccall. Herald added a project: clang. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D83213 Files: clang/lib/AST/ComputeDependence.cpp clang/lib/AST/Expr.cpp Index: clang/lib/AST/Expr.cpp ===