private static @NotNull ThreeState getMethodSideEffect(PsiMethod method) {
      if (method == null) {
        return ThreeState.UNSURE;
      }
      PsiField field = PropertyUtil.getFieldOfGetter(method);
      if (field != null) {
        return ThreeState.fromBoolean(field.hasModifierProperty(PsiModifier.VOLATILE));
      }
      if (mayHaveExceptionalSideEffect(method)) {
        return ThreeState.UNSURE;
      }
      MutationSignature mutationSignature = MutationSignature.fromMethod(method);
      if (mutationSignature.isPure()) {
        return ThreeState.NO;
      }
      if (mutationSignature.mutatesAnything() || PropertyUtil.getFieldOfSetter(method) != null) {
        return ThreeState.YES;
      }
      return ThreeState.UNSURE;
    }
private static @NotNull ThreeState getMethodSideEffect(PsiMethod method)