private void methodCall(int opcode, Member method, List<? extends BasicValue> values) throws AnalyzerException {
    if (opcode != INVOKESTATIC && values.remove(0) instanceof ParamValue) {
      subResult = NPE;
    }

    if (opcode == INVOKEINTERFACE) {
      if (nullableAnalysis) {
        for (BasicValue value : values) {
          if (value instanceof ParamValue) {
            top = true;
            break;
          }
        }
      }
    }
    else {
      boolean stable = opcode == INVOKESTATIC || opcode == INVOKESPECIAL;
      for (int i = 0; i < values.size(); i++) {
        BasicValue value = values.get(i);
        if (value instanceof ParamValue || (NullValue == value && nullable && "<init>".equals(method.methodName))) {
          subResult = combine(subResult, new ConditionalNPE(new EKey(method, new In(i, nullable), stable)));
        }
      }
    }
  }
private void methodCall(int opcode, Member method, List<? extends BasicValue> values)