code: @Override
      public void sawOpcode(int seen) {
          try {
              stack.precomputation(this);
  
              if (seen == Const.INVOKEVIRTUAL) {
                  String clsName = getClassConstantOperand();
                  if ("java/io/ObjectOutputStream".equals(clsName)) {
                      String name = getNameConstantOperand();
                      if ("writeObject".equals(name) && (stack.getStackDepth() > 0)) {
                          OpcodeStack.Item item = stack.getStackItem(0);
                          JavaClass cls = item.getJavaClass();
  
                          if ((cls != null) && (cls.getClassName().indexOf(Values.INNER_CLASS_SEPARATOR) >= 0) && hasOuterClassSyntheticReference(cls)) {
                              bugReporter.reportBug(new BugInstance(this, BugType.PUS_POSSIBLE_UNSUSPECTED_SERIALIZATION.name(), NORMAL_PRIORITY).addClass(this)
                                      .addMethod(this).addSourceLine(this));
                          }
                      }
                  }
              }
          } catch (ClassNotFoundException cnfe) {
              bugReporter.reportMissingClass(cnfe);
          } finally {
              stack.sawOpcode(this, seen);
          }
      }
docs: implements the visitor to look for serialization of an object that is an non-static inner class.
  
  @param seen
  the context object of the currently parsed instruction