blob: 9a99187aa06f0f9f4c7d5364370d10686d53dee9 [file] [log] [blame]
module test10993;
import core.demangle : demangleType;
auto foo(T)(T a)
{
static immutable typeof(a) q;
// pragma(msg, "foo: " ~ typeof(q).mangleof);
return q;
}
struct test(alias fn)
{
bool ini = true;
void* p;
}
auto fun()
{
auto x = foo!()(test!(a=>a)());
// pragma(msg, "fun: " ~ typeof(x).mangleof);
return x;
}
void main()
{
const x = fun();
enum mangle_x = typeof(x).mangleof;
// pragma(msg, "x : " ~ mangle_x);
auto y = cast()x;
enum mangle_y = typeof(y).mangleof;
// pragma(msg, "y : " ~ mangle_y);
enum demangle_x = demangleType(mangle_x);
enum demangle_y = demangleType(mangle_y);
static assert ("immutable(" ~ demangle_y ~ ")" == demangle_x);
}