Debugger: Fix "smart step into" for library declarations (KT-33303)
This commit is contained in:
+4
-1
@@ -11,6 +11,7 @@ import com.intellij.util.Range
|
|||||||
import org.jetbrains.kotlin.builtins.functions.FunctionInvokeDescriptor
|
import org.jetbrains.kotlin.builtins.functions.FunctionInvokeDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.idea.KotlinIcons
|
import org.jetbrains.kotlin.idea.KotlinIcons
|
||||||
|
import org.jetbrains.kotlin.idea.decompiler.navigation.SourceNavigationHelper
|
||||||
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
|
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
@@ -21,11 +22,13 @@ import javax.swing.Icon
|
|||||||
|
|
||||||
class KotlinMethodSmartStepTarget(
|
class KotlinMethodSmartStepTarget(
|
||||||
descriptor: CallableMemberDescriptor,
|
descriptor: CallableMemberDescriptor,
|
||||||
val declaration: KtDeclaration?,
|
declaration: KtDeclaration?,
|
||||||
label: String,
|
label: String,
|
||||||
highlightElement: PsiElement,
|
highlightElement: PsiElement,
|
||||||
lines: Range<Int>
|
lines: Range<Int>
|
||||||
) : SmartStepTarget(label, highlightElement, false, lines) {
|
) : SmartStepTarget(label, highlightElement, false, lines) {
|
||||||
|
val declaration = declaration?.let(SourceNavigationHelper::getNavigationElement)
|
||||||
|
|
||||||
val isInvoke = descriptor is FunctionInvokeDescriptor
|
val isInvoke = descriptor is FunctionInvokeDescriptor
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
|||||||
+5
@@ -1261,6 +1261,11 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
|||||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoWithOverrides.kt");
|
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/smartStepIntoWithOverrides.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("stepIntoLibWithSources.kt")
|
||||||
|
public void testStepIntoLibWithSources() throws Exception {
|
||||||
|
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/stepIntoLibWithSources.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("stepIntoStdlibInlineFun2step.kt")
|
@TestMetadata("stepIntoStdlibInlineFun2step.kt")
|
||||||
public void testStepIntoStdlibInlineFun2step() throws Exception {
|
public void testStepIntoStdlibInlineFun2step() throws Exception {
|
||||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/stepIntoStdlibInlineFun2step.kt");
|
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/stepIntoStdlibInlineFun2step.kt");
|
||||||
|
|||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
package stepIntoLibWithSources
|
||||||
|
|
||||||
|
import java.io.StringReader
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
//Breakpoint!
|
||||||
|
val text = StringReader("OK").readText()
|
||||||
|
}
|
||||||
|
|
||||||
|
// SMART_STEP_INTO_BY_INDEX: 2
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
LineBreakpoint created at stepIntoLibWithSources.kt:7
|
||||||
|
Run Java
|
||||||
|
Connected to the target VM
|
||||||
|
stepIntoLibWithSources.kt:7
|
||||||
|
ReadWrite.!EXT!
|
||||||
|
Disconnected from the target VM
|
||||||
|
|
||||||
|
Process finished with exit code 0
|
||||||
Reference in New Issue
Block a user