boolean () { // Abstract final type is incorrect. We, however, assume that final wins: it can be instantiated // otherwise TypeConstraints.instanceOf(type) would return impossible type return (classDef.isFinal() || !classDef.isAbstract()) && !JAVA_LANG_VOID.equals(classDef.getQualifiedName()); }