code: public void registerAsInnerClass(ClassVisitor visitor, TypeInfo innerClass) {
      checkRegistered(innerClass);
      doRegister(visitor, innerClass);
    }
docs: Registers this factory as an inner class on the given class writer.
  
  <p>Registering an inner class is confusing. The inner class needs to call this and so does the
  outer class. Confirmed by running ASMIfier. Also, failure to call visitInnerClass on both
  classes either breaks reflective apis (like class.getSimpleName()/getEnclosingClass), or causes
  verifier errors (like IncompatibleClassChangeError).