code: JavaFileObject genCode(Env<AttrContext> env, JCClassDecl cdef) throws IOException {
          try {
              if (gen.genClass(env, cdef) && (errorCount() == 0))
                  return writer.writeClass(cdef.sym);
          } catch (ClassWriter.PoolOverflow ex) {
              log.error(cdef.pos(), "limit.pool");
          } catch (ClassWriter.StringOverflow ex) {
              log.error(cdef.pos(), "limit.string.overflow",
                        ex.value.substring(0, 20));
          } catch (CompletionFailure ex) {
              chk.completionError(cdef.pos(), ex);
          }
          return null;
      }
docs: Generate code and emit a class file for a given class
  @param env    The attribution environment of the outermost class
  containing this class.
  @param cdef   The class definition from which code is generated.