MutationSignature (@NotNull PsiMethodImpl method, @NotNull MethodData data) { PurityInferenceResult result = data.getPurity(); if (result == null) return MutationSignature.unknown(); try { MutationSignature signature = RecursionManager.doPreventingRecursion(method, true, () -> result.getMutationSignature(method, data.methodBody(method))); return signature == null ? MutationSignature.unknown() : signature; } catch (CannotRestoreExpressionException e) { throw ContractInferenceIndexKt.handleInconsistency(method, data, e); } }