[clang] [clang]: support std::meta::info for primitive types (PR #190356)

Nhat Nguyen via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 13 11:47:58 PDT 2026


================
@@ -13102,7 +13102,10 @@ StmtResult TreeTransform<Derived>::TransformUnresolvedSYCLKernelCallStmt(
 template <typename Derived>
 ExprResult TreeTransform<Derived>::TransformCXXReflectExpr(CXXReflectExpr *E) {
   // TODO(reflection): Implement its transform
-  assert(false && "not implemented yet");
+  if (!E->isTypeDependent())
+    return E;
----------------
changkhothuychung wrote:

Would replacing 

```cpp
 if (!E->isTypeDependent())
    return E;
```

by 

```cpp
 switch (E->getKind()) {
    case ReflectionKind::Type: {
      TypeSourceInfo *NewT = getDerived().TransformType(static_cast<TypeSourceInfo *>(const_cast<void *>(E->getOpaqueValue())));
      if (!NewT)
        return ExprError();
      return SemaRef.BuildCXXReflectExpr(E->getOperatorLoc(), NewT);
    }
  }
 ```
 
 make more sense for now? If not, I think its better to remove that test for now, and we can circle back to it later in upcoming PRs. 

https://github.com/llvm/llvm-project/pull/190356


More information about the cfe-commits mailing list