[clang] [clang-tools-extra] [llvm] [clang]: reflection operator parsing for global namespace and primitive types (PR #164692)
Daniel M. Katz via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 27 13:41:25 PDT 2025
================
@@ -0,0 +1,40 @@
+// RUN: %clang_cc1 %s -std=c++26 -freflection -fsyntax-only -verify
+
+namespace a {
+struct T {};
+namespace b {
+struct U {};
+int x;
+}
+}
+
+
+int main()
+{
+ (void)(^^::);
+ (void)(^^void);
+ (void)(^^bool);
+ (void)(^^char);
+ (void)(^^signed char);
+ (void)(^^unsigned char);
+ (void)(^^short);
+ (void)(^^unsigned short);
+ (void)(^^int);
+ (void)(^^unsigned int);
+ (void)(^^long);
+ (void)(^^unsigned long);
+ (void)(^^long long);
+ (void)(^^float);
+ (void)(^^double);
+
+ // Not supported yet.
+ (void)^^a; // expected-error {{expected reflectable entity}}
+ (void)^^a::; // expected-error {{expected reflectable entity}}
+ (void)^^a::b::T; // expected-error {{expected reflectable entity}}
+ (void)^^a::T::; // expected-error {{expected reflectable entity}}
+ (void)(^^a::b); // expected-error {{expected reflectable entity}}
+ (void)^^a::b::; // expected-error {{expected reflectable entity}}
+ (void)^^a::b::U; // expected-error {{expected reflectable entity}}
+ (void)^^a::b::x; // expected-error {{expected reflectable entity}}
+ (void)^^a::b::U::; // expected-error {{expected reflectable entity}}
----------------
katzdm wrote:
Please add the following test:
```cpp
(void)^^::a:; // expected-error {{expected reflectable entity}}
```
https://github.com/llvm/llvm-project/pull/164692
More information about the llvm-commits
mailing list