code: @Override
      public void visitMethod(Method obj) {
          if (Values.STATIC_INITIALIZER.equals(obj.getName())) {
              return;
          }
  
          if (state == State.COLLECT) {
              Type[] argTypes = obj.getArgumentTypes();
              for (Type t : argTypes) {
                  addType(t);
              }
              Type resultType = obj.getReturnType();
              addType(resultType);
              LocalVariableTable lvt = obj.getLocalVariableTable();
              if (lvt != null) {
                  LocalVariable[] lvs = lvt.getLocalVariableTable();
                  if (lvs != null) {
                      for (LocalVariable lv : lvs) {
                          if (lv != null) {
                              Type t = Type.getType(lv.getSignature());
                              addType(t);
                          }
                      }
                  }
              }
          } else {
              state = State.SEEN_NOTHING;
          }
          super.visitMethod(obj);
      }
docs: overrides the visitor reset the opcode stack
  
  @param obj
  the method object of the currently parsed method