blob: d69c764b91c7422d0ee504a4390a4174f6cf1131 [file] [log] [blame]
// REQUIRED_ARGS: -o-
// PERMUTE_ARGS:
/*
TEST_OUTPUT:
---
tuple("id", "toString", "toHash", "opCmp", "opEquals", "Monitor", "factory")
genProps
---
*/
class User : Entity!User
{
int id;
}
class Entity(T)
{
pragma(msg, generateProperties!T);
/* Compiler runs pragma(msg) in semantic() phase, but it does not insert any members
* in this class. Therefore getting __traits(allMembers, User) while evaluating
* generateProperties!User should work.
*/
}
template generateProperties(alias To)
{
string getProperties(alias Ta)()
{
string toRet = "genProps";
// This line is bad
pragma(msg, __traits(allMembers, Ta));
return toRet;
}
enum generateProperties = getProperties!(To);
}