https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126343

--- Comment #6 from 伊泽平 <yizeyi18 at mail dot nankai.edu.cn> ---
In other words, the issue is ^^info is an alias but the printed diag info did
not differentiate it; to compare between type of infos like reflection of an
object, a function parameter, function return type, use is_same_type(...)
instead of == to dealias, right?

For example, for code below:
```
#include <meta>
using namespace std::meta;

consteval info foo(info m){
    static_assert(is_same_type(type_of(parameters_of(^^foo)[0]), ^^info));
    static_assert(is_same_type(return_type_of(^^foo), ^^info));
    static_assert(type_of(parameters_of(^^foo)[0]) == return_type_of(^^foo));
    return m;
}
```

The first 2 static asserts should pass, and the third should fail since it uses
== instead of is_same_type().

Reply via email to