avoid "PSI change outside transaction" warnings in log

This commit is contained in:
Alexey Kudravtsev
2018-06-13 15:56:32 +03:00
parent 7ed3424a0b
commit ec46c2ff3c
@@ -15,6 +15,7 @@ import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.Ref;
import com.intellij.psi.*;
import com.intellij.psi.impl.DebugUtil;
import com.intellij.psi.impl.source.DummyHolderFactory;
import com.intellij.psi.impl.source.JavaDummyHolder;
import com.intellij.psi.impl.source.PsiClassReferenceType;
@@ -235,7 +236,8 @@ public class BoundedWildcardInspection extends AbstractBaseJavaLocalInspectionTo
PsiClassReferenceType newParameterType = suggestMethodParameterType(candidate, isExtends);
PsiMethod methodCopy = createMethodCopy(project, candidate.method, candidate.methodParameterIndex, newParameterType);
PsiMethod methodCopy = DebugUtil
.performPsiModification("Creating method copy", () -> createMethodCopy(project, candidate.method, candidate.methodParameterIndex, newParameterType));
PsiClass containingClass = candidate.method.getContainingClass();
PsiField field = findFieldAssignedFromMethodParameter(candidate.methodParameter, method);
List<PsiElement> superMethodsCalls = new ArrayList<>(); // shouldn't error-check these because they're not generalized yet
@@ -246,7 +248,7 @@ public class BoundedWildcardInspection extends AbstractBaseJavaLocalInspectionTo
return errorChecks(methodCopy.getBody(), superMethodsCalls);
}
// field can be referenced from anywhere in the file
PsiClass classCopy = createClassCopy(project, field, containingClass, candidate.method, methodCopy, newParameterType);
PsiClass classCopy = DebugUtil.performPsiModification("Creating class copy", () -> createClassCopy(project, field, containingClass, candidate.method, methodCopy, newParameterType));
return errorChecks(classCopy, superMethodsCalls);
}