[AA] Avoid running modifiable PSI tests on the EDT

- `runWriteCommandAction`, which is required for PSI modification
  functions like `PsiElement.delete`, must be invoked on the EDT.
  However, instead of `runWriteCommandAction` we can use
  `runUndoTransparentAction`, which does not need to be run on the EDT
  and fulfills the same requirement.

^KT-63560
This commit is contained in:
Marco Pennekamp
2023-11-17 18:04:04 +01:00
committed by Space Team
parent 1870189e47
commit b43ceab880
@@ -5,8 +5,7 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.test.base
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.command.WriteCommandAction
import com.intellij.openapi.command.CommandProcessor
import org.jetbrains.kotlin.analysis.api.impl.base.test.configurators.AnalysisApiModifiablePsiTestServiceRegistrar
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirSourceTestConfigurator
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator
@@ -25,11 +24,9 @@ abstract class AbstractLowLevelApiModifiablePsiSingleFileTest : AbstractLowLevel
abstract fun doTestWithPsiModification(ktFile: KtFile, moduleStructure: TestModuleStructure, testServices: TestServices)
final override fun doTestByFileStructure(ktFile: KtFile, moduleStructure: TestModuleStructure, testServices: TestServices) {
ApplicationManager.getApplication().invokeAndWait {
CommandProcessor.getInstance().runUndoTransparentAction {
runWriteAction {
WriteCommandAction.runWriteCommandAction(ktFile.project) {
doTestWithPsiModification(ktFile, moduleStructure, testServices)
}
doTestWithPsiModification(ktFile, moduleStructure, testServices)
}
}
}