Try to avoid null exception in getCommandProvider() in debugger tests
This commit is contained in:
@@ -28,6 +28,7 @@ import com.intellij.debugger.engine.evaluation.CodeFragmentKind
|
|||||||
import com.intellij.debugger.engine.evaluation.EvaluationContextImpl
|
import com.intellij.debugger.engine.evaluation.EvaluationContextImpl
|
||||||
import com.intellij.debugger.engine.evaluation.TextWithImportsImpl
|
import com.intellij.debugger.engine.evaluation.TextWithImportsImpl
|
||||||
import com.intellij.debugger.impl.DebuggerContextImpl
|
import com.intellij.debugger.impl.DebuggerContextImpl
|
||||||
|
import com.intellij.debugger.impl.JvmSteppingCommandProvider
|
||||||
import com.intellij.debugger.impl.PositionUtil
|
import com.intellij.debugger.impl.PositionUtil
|
||||||
import com.intellij.debugger.settings.DebuggerSettings
|
import com.intellij.debugger.settings.DebuggerSettings
|
||||||
import com.intellij.debugger.ui.breakpoints.Breakpoint
|
import com.intellij.debugger.ui.breakpoints.Breakpoint
|
||||||
@@ -61,6 +62,7 @@ import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
|||||||
import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext
|
import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils.findStringWithPrefixes
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils.findStringWithPrefixes
|
||||||
|
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.lang.AssertionError
|
import java.lang.AssertionError
|
||||||
import javax.swing.SwingUtilities
|
import javax.swing.SwingUtilities
|
||||||
@@ -71,13 +73,16 @@ abstract class KotlinDebuggerTestBase : KotlinDebuggerTestCase() {
|
|||||||
private var oldDisableKotlinInternalClasses = false
|
private var oldDisableKotlinInternalClasses = false
|
||||||
private var oldRenderDelegatedProperties = false
|
private var oldRenderDelegatedProperties = false
|
||||||
|
|
||||||
|
@Volatile
|
||||||
protected var _evaluationContext: EvaluationContextImpl? = null
|
protected var _evaluationContext: EvaluationContextImpl? = null
|
||||||
protected val evaluationContext get() = _evaluationContext!!
|
protected val evaluationContext get() = _evaluationContext!!
|
||||||
|
|
||||||
|
@Volatile
|
||||||
protected var _debuggerContext: DebuggerContextImpl? = null
|
protected var _debuggerContext: DebuggerContextImpl? = null
|
||||||
protected val debuggerContext get() = _debuggerContext!!
|
protected val debuggerContext get() = _debuggerContext!!
|
||||||
|
|
||||||
protected var _commandProvider: KotlinSteppingCommandProvider? = KotlinSteppingCommandProvider()
|
@Volatile
|
||||||
|
protected var _commandProvider: KotlinSteppingCommandProvider? = null
|
||||||
protected val commandProvider get() = _commandProvider!!
|
protected val commandProvider get() = _commandProvider!!
|
||||||
|
|
||||||
override fun initApplication() {
|
override fun initApplication() {
|
||||||
@@ -156,6 +161,7 @@ abstract class KotlinDebuggerTestBase : KotlinDebuggerTestCase() {
|
|||||||
protected fun initContexts(suspendContext: SuspendContextImpl) {
|
protected fun initContexts(suspendContext: SuspendContextImpl) {
|
||||||
_evaluationContext = createEvaluationContext(suspendContext)
|
_evaluationContext = createEvaluationContext(suspendContext)
|
||||||
_debuggerContext = createDebuggerContext(suspendContext)
|
_debuggerContext = createDebuggerContext(suspendContext)
|
||||||
|
_commandProvider = JvmSteppingCommandProvider.EP_NAME.extensions.firstIsInstance<KotlinSteppingCommandProvider>()
|
||||||
}
|
}
|
||||||
|
|
||||||
protected fun SuspendContextImpl.doStepInto(ignoreFilters: Boolean, smartStepFilter: MethodFilter?) {
|
protected fun SuspendContextImpl.doStepInto(ignoreFilters: Boolean, smartStepFilter: MethodFilter?) {
|
||||||
|
|||||||
Reference in New Issue
Block a user