code: @Override
      public void visitClassContext(ClassContext classContext) {
          try {
              cls = classContext.getJavaClass();
  
              if (!isaConversionClass(cls)) {
                  JavaClass[] infs = cls.getAllInterfaces();
                  JavaClass[] sups = cls.getSuperClasses();
                  constrainingClasses = new JavaClass[infs.length + sups.length];
                  System.arraycopy(infs, 0, constrainingClasses, 0, infs.length);
                  System.arraycopy(sups, 0, constrainingClasses, infs.length, sups.length);
                  parameterDefiners = new HashMap<>();
                  usedParameters = new BitSet();
                  stack = new OpcodeStack();
                  super.visitClassContext(classContext);
              }
          } catch (ClassNotFoundException cnfe) {
              bugReporter.reportMissingClass(cnfe);
          } finally {
              constrainingClasses = null;
              parameterDefiners = null;
              usedParameters = null;
              stack = null;
          }
      }
docs: implements the visitor to collect classes that constrains this class (super
  classes/interfaces) and to reset the opcode stack
  
  @param classContext the currently parse class