Debugger: do not try to computeSourcePosition for not kotlin variables

This commit is contained in:
Natalia Ukhorskaya
2015-07-21 12:52:57 +03:00
parent fbe2d77df5
commit ce46982991
@@ -35,10 +35,7 @@ import com.sun.jdi.ReferenceType
import org.jetbrains.kotlin.codegen.AsmUtil
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinCodeFragmentFactory
import org.jetbrains.kotlin.psi.JetClassOrObject
import org.jetbrains.kotlin.psi.JetElement
import org.jetbrains.kotlin.psi.JetPsiFactory
import org.jetbrains.kotlin.psi.JetSimpleNameExpression
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
import org.jetbrains.kotlin.resolve.BindingContextUtils
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
@@ -63,6 +60,8 @@ public class KotlinSourcePositionProvider: SourcePositionProvider() {
private fun computeSourcePosition(descriptor: LocalVariableDescriptor, project: Project, context: DebuggerContextImpl, nearest: Boolean): SourcePosition? {
val place = PositionUtil.getContextElement(context) ?: return null
if (place.getContainingFile() !is JetFile) return null
val contextElement = KotlinCodeFragmentFactory.getContextElement(place) ?: return null
val codeFragment = JetPsiFactory(project).createExpressionCodeFragment(descriptor.getName(), contextElement)