boolean (BasicValue curr, BasicValue prev) { if (prev instanceof ParamValue) { return curr instanceof ParamValue; } if (InstanceOfCheckValue == prev) { return InstanceOfCheckValue == curr; } if (TrueValue == prev) { return TrueValue == curr; } if (FalseValue == prev) { return FalseValue == curr; } if (NullValue == prev) { return NullValue == curr; } if (prev instanceof NotNullValue) { return curr instanceof NotNullValue; } if (prev instanceof CallResultValue prevCall) { return curr instanceof CallResultValue currCall && prevCall.inters.size() == currCall.inters.size() && prevCall.inters.containsAll(currCall.inters); } return true; }