code: @Override
      public void sawOpcode(int seen) {
          boolean processed = false;
          Iterator<IfStatement> isi = ifStatements.iterator();
          while (isi.hasNext()) {
              IfStatement.Action action = isi.next().processOpcode(this, bugReporter, seen);
              if (action == IfStatement.Action.REMOVE_ACTION) {
                  isi.remove();
              } else if (action == IfStatement.Action.PROCESSED_ACTION) {
                  processed = true;
              }
          }
  
          if (!processed && OpcodeUtils.isALoad(seen)) {
              IfStatement is = new IfStatement(this, seen);
              ifStatements.add(is);
          }
      }
docs: implements the visitor to find if/else code that checks types using instanceof, and these types are related by inheritance.
  
  @param seen
  the opcode of the currently parsed instruction