================
@@ -786,6 +797,8 @@ class ASTContext : public RefCountedBase<ASTContext> {
   /// Keeps track of the deallocated DeclListNodes for future reuse.
   DeclListNode *ListNodeFreeList = nullptr;
 
+  std::unique_ptr<SemaProxy> SemaProxyPtr;
----------------
cor3ntin wrote:

The answer is likely, all of them. And that does not help, because what matters 
is that whether or not there is a `SemaProxy` object in some location does not 
mean you get to arbitrarily use it.

What matters is the context you are in. And for reflection, we will need 
additional contexts to match the standard wording. Ie only in consteval blocs 
are some operations allowed. For example, you can only call substitute in a 
constebal blocks, but members_of you can call anywhere.

We also use the same entry points for different form of evaluations, so the 
state you seem to bee looking for already exists - ie all the booleans in the 
EvalInfo object.

So yes, we will always need to think if an interface can be called in some 
context. But that's no different from status quo.

https://github.com/llvm/llvm-project/pull/173537
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to