private static List<Equation> topEquations(Member method,
                                               Type[] argumentTypes,
                                               boolean isReferenceResult,
                                               boolean isInterestingResult,
                                               boolean stable) {
      // 4 = @NotNull parameter, @Nullable parameter, null -> ..., !null -> ...
      List<Equation> result = new ArrayList<>(argumentTypes.length * 4 + 2);
      if (isReferenceResult) {
        result.add(new Equation(new EKey(method, Out, stable), Value.Top));
        result.add(new Equation(new EKey(method, NullableOut, stable), Value.Bot));
      }
      for (int i = 0; i < argumentTypes.length; i++) {
        if (ASMUtils.isReferenceType(argumentTypes[i])) {
          result.add(new Equation(new EKey(method, new In(i, false), stable), Value.Top));
          result.add(new Equation(new EKey(method, new In(i, true), stable), Value.Top));
          if (isInterestingResult) {
            result.add(new Equation(new EKey(method, new InOut(i, Value.Null), stable), Value.Top));
            result.add(new Equation(new EKey(method, new InOut(i, Value.NotNull), stable), Value.Top));
          }
        }
      }
      return result;
    }
private static List<Equation> topEquations(Member method,
                                               Type[] argumentTypes,
                                               boolean isReferenceResult,
                                               boolean isInterestingResult,
                                               boolean stable)