sclass ClassOrName { Class c; S name; *() {} *(Class *c) {} *(S *name) {} Class asClass() { ret assertNotNull(c); } }