================
@@ -5503,36 +5504,44 @@ class BuiltinBitCastExpr final
 ///  - an id-expression.
 class CXXReflectExpr : public Expr {
 
+private:
   // TODO(Reflection): add support for TemplateReference, NamespaceReference 
and
   // DeclRefExpr
-  using operand_type = llvm::PointerUnion<const TypeSourceInfo *>;
----------------
changkhothuychung wrote:

I made this non const because I see that a bunch of APIs that takes the 
operand_type of `CXXReflectExpr` as parameters as non-const, so we have to make 
a bunch of const_cast in those cases if we keep const in each element for 
`PointerUnion`


Also, I see other Expr's defined in the file `ExprCXX.h` also have the members 
inside `PointerUnion` as non-const. That's why I decided to remove the const 
here. 


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

Reply via email to