Debugger: Remove/change tests for the deprecated Android dex
This commit is contained in:
+1
-10
@@ -29,13 +29,12 @@ import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.JvmTarget
|
||||
import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages
|
||||
import org.jetbrains.kotlin.idea.debugger.test.util.patchDexTests
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.MockLibraryUtil
|
||||
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase
|
||||
import java.io.File
|
||||
|
||||
class DebuggerTestCompilerFacility(files: List<TestFile>, private val jvmTarget: JvmTarget, private val applyDexPatch: Boolean) {
|
||||
class DebuggerTestCompilerFacility(files: List<TestFile>, private val jvmTarget: JvmTarget) {
|
||||
private val kotlinStdlibPath = ForTestCompileRuntime.runtimeJarForTests().absolutePath
|
||||
|
||||
private val mainFiles: TestFilesByLanguage
|
||||
@@ -90,10 +89,6 @@ class DebuggerTestCompilerFacility(files: List<TestFile>, private val jvmTarget:
|
||||
classesDir
|
||||
)
|
||||
}
|
||||
|
||||
if (applyDexPatch) {
|
||||
patchDexTests(classesDir)
|
||||
}
|
||||
}
|
||||
|
||||
// Returns the qualified name of the main test class.
|
||||
@@ -138,10 +133,6 @@ class DebuggerTestCompilerFacility(files: List<TestFile>, private val jvmTarget:
|
||||
)
|
||||
}
|
||||
|
||||
if (applyDexPatch) {
|
||||
patchDexTests(classesDir)
|
||||
}
|
||||
|
||||
return mainClassName
|
||||
}
|
||||
|
||||
|
||||
+1
-2
@@ -104,9 +104,8 @@ abstract class KotlinDescriptorTestCase : DescriptorTestCase() {
|
||||
|
||||
val rawJvmTarget = preferences[DebuggerPreferenceKeys.JVM_TARGET]
|
||||
val jvmTarget = JvmTarget.fromString(rawJvmTarget) ?: error("Invalid JVM target value: $rawJvmTarget")
|
||||
val applyDexPatch = preferences[DebuggerPreferenceKeys.EMULATE_DEX]
|
||||
|
||||
val compilerFacility = DebuggerTestCompilerFacility(testFiles, jvmTarget, applyDexPatch)
|
||||
val compilerFacility = DebuggerTestCompilerFacility(testFiles, jvmTarget)
|
||||
|
||||
for (library in preferences[DebuggerPreferenceKeys.ATTACH_LIBRARY]) {
|
||||
compilerFacility.compileExternalLibrary(library, librarySrcDirectory, libraryOutputDirectory)
|
||||
|
||||
+36
-96
@@ -246,11 +246,6 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/inlineClass.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("inlineDex.kt")
|
||||
public void testInlineDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/inlineDex.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("inlineOnly.kt")
|
||||
public void testInlineOnly() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepInto/inlineOnly.kt");
|
||||
@@ -452,34 +447,19 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineFunctionSameLines.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("inlineInClassDex.kt")
|
||||
public void testInlineInClassDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineInClassDex.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("inlineInIfFalse.kt")
|
||||
public void testInlineInIfFalse() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineInIfFalse.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("inlineInIfFalseDex.kt")
|
||||
public void testInlineInIfFalseDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineInIfFalseDex.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("inlineInIfTrue.kt")
|
||||
public void testInlineInIfTrue() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineInIfTrue.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("inlineInIfTrueDex.kt")
|
||||
public void testInlineInIfTrueDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineInIfTrueDex.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("inlineInObjectDex.kt")
|
||||
public void testInlineInObjectDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineInObjectDex.kt");
|
||||
@TestMetadata("inlineInObject.kt")
|
||||
public void testInlineInObject() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/inlineInObject.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt24343.kt")
|
||||
@@ -527,31 +507,16 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineAnonymousFunctionArgument.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineAnonymousFunctionArgumentDex.kt")
|
||||
public void testSoInlineAnonymousFunctionArgumentDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineAnonymousFunctionArgumentDex.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineCallInLastStatementInInline.kt")
|
||||
public void testSoInlineCallInLastStatementInInline() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineCallInLastStatementInInline.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineCallInLastStatementInInlineDex.kt")
|
||||
public void testSoInlineCallInLastStatementInInlineDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineCallInLastStatementInInlineDex.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineCallInLastStatementInInlineFunctionArgument.kt")
|
||||
public void testSoInlineCallInLastStatementInInlineFunctionArgument() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineCallInLastStatementInInlineFunctionArgument.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineCallInLastStatementInInlineFunctionArgumentDex.kt")
|
||||
public void testSoInlineCallInLastStatementInInlineFunctionArgumentDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineCallInLastStatementInInlineFunctionArgumentDex.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineCallInLastStatementInInlineInInline.kt")
|
||||
public void testSoInlineCallInLastStatementInInlineInInline() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineCallInLastStatementInInlineInInline.kt");
|
||||
@@ -567,21 +532,11 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineFunCallInLastStatementOfInlineWithArgumentFromCalleeAndOwn.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineFunDex.kt")
|
||||
public void testSoInlineFunDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineFunDex.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineFunOnOneLineFor.kt")
|
||||
public void testSoInlineFunOnOneLineFor() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineFunOnOneLineFor.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineFunOnOneLineForDex.kt")
|
||||
public void testSoInlineFunOnOneLineForDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineFunOnOneLineForDex.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineFunWithFor.kt")
|
||||
public void testSoInlineFunWithFor() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineFunWithFor.kt");
|
||||
@@ -607,14 +562,14 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineIfConditionLambdaTrue.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineIterableFunDex.kt")
|
||||
public void testSoInlineIterableFunDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineIterableFunDex.kt");
|
||||
@TestMetadata("soInlineIterableFun.kt")
|
||||
public void testSoInlineIterableFun() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineIterableFun.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineLibFunDex.kt")
|
||||
public void testSoInlineLibFunDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineLibFunDex.kt");
|
||||
@TestMetadata("soInlineLibFun.kt")
|
||||
public void testSoInlineLibFun() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineLibFun.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineOperatorIterator.kt")
|
||||
@@ -622,9 +577,9 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineOperatorIterator.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineUnitFunDex.kt")
|
||||
public void testSoInlineUnitFunDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineUnitFunDex.kt");
|
||||
@TestMetadata("soInlineUnitFun.kt")
|
||||
public void testSoInlineUnitFun() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineUnitFun.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineWhileCondition.kt")
|
||||
@@ -632,11 +587,6 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineWhileCondition.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soInlineWhileConditionDex.kt")
|
||||
public void testSoInlineWhileConditionDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soInlineWhileConditionDex.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("soLastStatementInInlineFunctionArgumenBeforeOtherArgument.kt")
|
||||
public void testSoLastStatementInInlineFunctionArgumenBeforeOtherArgument() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/soLastStatementInInlineFunctionArgumenBeforeOtherArgument.kt");
|
||||
@@ -792,11 +742,6 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInAnonymousFunctionInInlinedCallWithCrossInline.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("stopInAnonymousFunctionInInlinedCallWithCrossInlineDex.kt")
|
||||
public void testStopInAnonymousFunctionInInlinedCallWithCrossInlineDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInAnonymousFunctionInInlinedCallWithCrossInlineDex.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("stopInCrossinlineInSuspend.kt")
|
||||
public void testStopInCrossinlineInSuspend() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInCrossinlineInSuspend.kt");
|
||||
@@ -832,19 +777,19 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineCallLocalFunLambda.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("stopInInlineFunDex.kt")
|
||||
public void testStopInInlineFunDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineFunDex.kt");
|
||||
@TestMetadata("stopInInlineFun.kt")
|
||||
public void testStopInInlineFun() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineFun.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("stopInInlineInOtherFileDex.kt")
|
||||
public void testStopInInlineInOtherFileDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineInOtherFileDex.kt");
|
||||
@TestMetadata("stopInInlineInOtherFile.kt")
|
||||
public void testStopInInlineInOtherFile() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineInOtherFile.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("stopInInlineInOtherFileWithLambdaArgumentDex.kt")
|
||||
public void testStopInInlineInOtherFileWithLambdaArgumentDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineInOtherFileWithLambdaArgumentDex.kt");
|
||||
@TestMetadata("stopInInlineInOtherFileWithLambdaArgument.kt")
|
||||
public void testStopInInlineInOtherFileWithLambdaArgument() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInInlineInOtherFileWithLambdaArgument.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("stopInInlineUnderOtherCall.kt")
|
||||
@@ -882,11 +827,6 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInLambdaInInlinedCallWithCrossInline.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("stopInLambdaInInlinedCallWithCrossInlineDex.kt")
|
||||
public void testStopInLambdaInInlinedCallWithCrossInlineDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInLambdaInInlinedCallWithCrossInlineDex.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("stopInLambdaInlineCallLambda.kt")
|
||||
public void testStopInLambdaInlineCallLambda() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/stepOver/stopInLambdaInlineCallLambda.kt");
|
||||
@@ -1146,9 +1086,9 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/inlineInObject.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("inlineInObjectSameFileDex.kt")
|
||||
public void testInlineInObjectSameFileDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/inlineInObjectSameFileDex.kt");
|
||||
@TestMetadata("inlineInObjectSameFile.kt")
|
||||
public void testInlineInObjectSameFile() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/inlineInObjectSameFile.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("inlineProperties.kt")
|
||||
@@ -1176,14 +1116,14 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/kt17295.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("manyFilesWithInlineCalls1Dex.kt")
|
||||
public void testManyFilesWithInlineCalls1Dex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/manyFilesWithInlineCalls1Dex.kt");
|
||||
@TestMetadata("manyFilesWithInlineCalls1.kt")
|
||||
public void testManyFilesWithInlineCalls1() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/manyFilesWithInlineCalls1.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("manyFilesWithInlineCalls2Dex.kt")
|
||||
public void testManyFilesWithInlineCalls2Dex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/manyFilesWithInlineCalls2Dex.kt");
|
||||
@TestMetadata("manyFilesWithInlineCalls2.kt")
|
||||
public void testManyFilesWithInlineCalls2() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/manyFilesWithInlineCalls2.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("severalFunLiterals.kt")
|
||||
@@ -1196,14 +1136,14 @@ public class KotlinSteppingTestGenerated extends AbstractKotlinSteppingTest {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/severalFunLiteralsInClass.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("severalInlineCallsFromOtherFileDex.kt")
|
||||
public void testSeveralInlineCallsFromOtherFileDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/severalInlineCallsFromOtherFileDex.kt");
|
||||
@TestMetadata("severalInlineCallsFromOtherFile.kt")
|
||||
public void testSeveralInlineCallsFromOtherFile() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/severalInlineCallsFromOtherFile.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("severalInlineFunctionsInOneFileDex.kt")
|
||||
public void testSeveralInlineFunctionsInOneFileDex() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/severalInlineFunctionsInOneFileDex.kt");
|
||||
@TestMetadata("severalInlineFunctionsInOneFile.kt")
|
||||
public void testSeveralInlineFunctionsInOneFile() throws Exception {
|
||||
runTest("idea/jvm-debugger/jvm-debugger-test/testData/stepping/custom/severalInlineFunctionsInOneFile.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("simpleConditionalBreakpoint.kt")
|
||||
|
||||
-1
@@ -35,7 +35,6 @@ internal object DebuggerPreferenceKeys {
|
||||
val IS_FILTER_FOR_STDLIB_ALREADY_ADDED by debuggerPreferenceKey(false)
|
||||
|
||||
val FORCE_RANKING by debuggerPreferenceKey(false)
|
||||
val EMULATE_DEX by debuggerPreferenceKey(false)
|
||||
|
||||
val PRINT_FRAME by debuggerPreferenceKey(false)
|
||||
val SHOW_KOTLIN_VARIABLES by debuggerPreferenceKey(false)
|
||||
|
||||
-11
@@ -11,9 +11,7 @@ import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JvmCompilerArgume
|
||||
import org.jetbrains.kotlin.idea.debugger.DebuggerUtils
|
||||
import org.jetbrains.kotlin.idea.debugger.KotlinDebuggerSettings
|
||||
import org.jetbrains.kotlin.idea.debugger.ToggleKotlinVariablesState
|
||||
import org.jetbrains.kotlin.idea.debugger.emulateDexDebugInTests
|
||||
import org.jetbrains.kotlin.idea.debugger.test.preference.DebuggerPreferenceKeys.DISABLE_KOTLIN_INTERNAL_CLASSES
|
||||
import org.jetbrains.kotlin.idea.debugger.test.preference.DebuggerPreferenceKeys.EMULATE_DEX
|
||||
import org.jetbrains.kotlin.idea.debugger.test.preference.DebuggerPreferenceKeys.IS_FILTER_FOR_STDLIB_ALREADY_ADDED
|
||||
import org.jetbrains.kotlin.idea.debugger.test.preference.DebuggerPreferenceKeys.RENDER_DELEGATED_PROPERTIES
|
||||
import org.jetbrains.kotlin.idea.debugger.test.preference.DebuggerPreferenceKeys.SKIP_CLASSLOADERS
|
||||
@@ -32,20 +30,11 @@ internal val SettingsMutators: List<SettingsMutator<*>> = listOf(
|
||||
KotlinSettingsMutator(DISABLE_KOTLIN_INTERNAL_CLASSES, KotlinDebuggerSettings::DEBUG_DISABLE_KOTLIN_INTERNAL_CLASSES),
|
||||
KotlinSettingsMutator(RENDER_DELEGATED_PROPERTIES, KotlinDebuggerSettings::DEBUG_RENDER_DELEGATED_PROPERTIES),
|
||||
KotlinSettingsMutator(IS_FILTER_FOR_STDLIB_ALREADY_ADDED, KotlinDebuggerSettings::DEBUG_IS_FILTER_FOR_STDLIB_ALREADY_ADDED),
|
||||
DexSettingsMutator(EMULATE_DEX),
|
||||
KotlinVariablesModeSettingsMutator,
|
||||
JvmTargetSettingsMutator,
|
||||
ForceRankingSettingsMutator
|
||||
)
|
||||
|
||||
private class DexSettingsMutator(key: DebuggerPreferenceKey<Boolean>) : SettingsMutator<Boolean>(key) {
|
||||
override fun setValue(value: Boolean, project: Project): Boolean {
|
||||
val oldValue = emulateDexDebugInTests
|
||||
emulateDexDebugInTests = value
|
||||
return oldValue
|
||||
}
|
||||
}
|
||||
|
||||
private class DebuggerSettingsMutator<T : Any>(
|
||||
key: DebuggerPreferenceKey<T>,
|
||||
private val prop: KMutableProperty1<DebuggerSettings, T>
|
||||
|
||||
-62
@@ -1,62 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.debugger.test.util
|
||||
|
||||
import org.jetbrains.org.objectweb.asm.*
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
|
||||
fun patchDexTests(classesDir: File) {
|
||||
classesDir.walk()
|
||||
.filter { it.isFile && it.nameWithoutExtension.endsWith("Dex") && it.extension == "class" }
|
||||
.forEach(::applyDexLikePatch)
|
||||
}
|
||||
|
||||
private fun applyDexLikePatch(file: File) {
|
||||
val reader = ClassReader(file.readBytes())
|
||||
val writer = ClassWriter(ClassWriter.COMPUTE_FRAMES)
|
||||
|
||||
val visitor = writer
|
||||
.withRemoveSourceDebugExtensionVisitor()
|
||||
.withRemoveSameLinesInLineTableVisitor()
|
||||
|
||||
reader.accept(visitor, 0)
|
||||
file.writeBytes(writer.toByteArray())
|
||||
}
|
||||
|
||||
private fun ClassVisitor.withRemoveSourceDebugExtensionVisitor(): ClassVisitor {
|
||||
return object : ClassVisitor(Opcodes.API_VERSION, this) {
|
||||
override fun visitSource(source: String?, debug: String?) {
|
||||
super.visitSource(source, null)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun ClassVisitor.withRemoveSameLinesInLineTableVisitor(): ClassVisitor {
|
||||
return object : ClassVisitor(Opcodes.API_VERSION, this) {
|
||||
override fun visitMethod(
|
||||
access: Int,
|
||||
name: String?,
|
||||
desc: String?,
|
||||
signature: String?,
|
||||
exceptions: Array<out String>?
|
||||
): MethodVisitor? {
|
||||
val methodVisitor = super.visitMethod(access, name, desc, signature, exceptions) ?: return null
|
||||
|
||||
return object : MethodVisitor(Opcodes.API_VERSION, methodVisitor) {
|
||||
val labels = HashSet<String>()
|
||||
|
||||
override fun visitLineNumber(line: Int, start: Label?) {
|
||||
val added = labels.add(start.toString())
|
||||
|
||||
if (added) {
|
||||
super.visitLineNumber(line, start)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-4
@@ -1,7 +1,5 @@
|
||||
// FILE: inlineInObjectSameFileDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package inlineInObjectSameFileDex
|
||||
// FILE: inlineInObjectSameFile.kt
|
||||
package inlineInObjectSameFile
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
//Breakpoint!
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
LineBreakpoint created at inlineInObjectSameFile.kt:6
|
||||
LineBreakpoint created at inlineInObjectSameFile.kt:12
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
inlineInObjectSameFile.kt:6
|
||||
inlineInObjectSameFile.kt:12
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
LineBreakpoint created at inlineInObjectSameFileDex.kt:8
|
||||
LineBreakpoint created at inlineInObjectSameFileDex.kt:14
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
inlineInObjectSameFileDex.kt:8
|
||||
inlineInObjectSameFileDex.kt:14
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
// FILE: manyFilesWithInlineCalls1.kt
|
||||
package manyFilesWithInlineCalls1
|
||||
|
||||
import manyFilesWithInlineCalls1.first.*
|
||||
import manyFilesWithInlineCalls1.second.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
firstInline()
|
||||
}
|
||||
|
||||
fun unused() {
|
||||
secondInline()
|
||||
}
|
||||
|
||||
// ADDITIONAL_BREAKPOINT: manyFilesWithInlineCalls1.First.kt: Breakpoint 1
|
||||
|
||||
// FILE: manyFilesWithInlineCalls1.First.kt
|
||||
package manyFilesWithInlineCalls1.first
|
||||
|
||||
inline fun firstInline() {
|
||||
// Breakpoint 1
|
||||
1 + 1
|
||||
}
|
||||
|
||||
// FILE: manyFilesWithInlineCalls1.Second.kt
|
||||
package manyFilesWithInlineCalls1.second
|
||||
|
||||
inline fun secondInline() {
|
||||
1 + 1
|
||||
}
|
||||
+2
-3
@@ -1,8 +1,7 @@
|
||||
LineBreakpoint created at soInlineUnitFunDex.kt:13
|
||||
LineBreakpoint created at manyFilesWithInlineCalls1.First.kt:6
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
soInlineUnitFunDex.kt:13
|
||||
soInlineUnitFunDex.kt:7
|
||||
manyFilesWithInlineCalls1.First.kt:6
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
Vendored
-32
@@ -1,32 +0,0 @@
|
||||
// EMULATE_DEX: true
|
||||
// FILE: manyFilesWithInlineCalls1Dex.kt
|
||||
|
||||
package manyFilesWithInlineCalls1Dex
|
||||
|
||||
import manyFilesWithInlineCalls1Dex.first.*
|
||||
import manyFilesWithInlineCalls1Dex.second.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
firstInline()
|
||||
}
|
||||
|
||||
fun unused() {
|
||||
secondInline()
|
||||
}
|
||||
|
||||
// ADDITIONAL_BREAKPOINT: manyFilesWithInlineCalls1Dex.First.kt: Breakpoint 1
|
||||
|
||||
// FILE: manyFilesWithInlineCalls1Dex.First.kt
|
||||
package manyFilesWithInlineCalls1Dex.first
|
||||
|
||||
inline fun firstInline() {
|
||||
// Breakpoint 1
|
||||
1 + 1
|
||||
}
|
||||
|
||||
// FILE: manyFilesWithInlineCalls1Dex.Second.kt
|
||||
package manyFilesWithInlineCalls1Dex.second
|
||||
|
||||
inline fun secondInline() {
|
||||
1 + 1
|
||||
}
|
||||
Vendored
-7
@@ -1,7 +0,0 @@
|
||||
LineBreakpoint created at manyFilesWithInlineCalls1Dex.First.kt:6
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
manyFilesWithInlineCalls1Dex.First.kt:6
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
// FILE: manyFilesWithInlineCalls2.kt
|
||||
package manyFilesWithInlineCalls2
|
||||
|
||||
import manyFilesWithInlineCalls2.first.*
|
||||
import manyFilesWithInlineCalls2.second.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
secondInline()
|
||||
}
|
||||
|
||||
fun unused() {
|
||||
firstInline()
|
||||
}
|
||||
|
||||
// ADDITIONAL_BREAKPOINT: manyFilesWithInlineCalls2.Second.kt: Breakpoint 1
|
||||
|
||||
// FILE: manyFilesWithInlineCalls2.First.kt
|
||||
package manyFilesWithInlineCalls2.first
|
||||
|
||||
inline fun firstInline() {
|
||||
1 + 1
|
||||
}
|
||||
|
||||
// FILE: manyFilesWithInlineCalls2.Second.kt
|
||||
package manyFilesWithInlineCalls2.second
|
||||
|
||||
inline fun secondInline() {
|
||||
// Breakpoint 1
|
||||
1 + 1
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
LineBreakpoint created at manyFilesWithInlineCalls2.Second.kt:6
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
manyFilesWithInlineCalls2.Second.kt:6
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
Vendored
-32
@@ -1,32 +0,0 @@
|
||||
// EMULATE_DEX: true
|
||||
// FILE: manyFilesWithInlineCalls2Dex.kt
|
||||
|
||||
package manyFilesWithInlineCalls2Dex
|
||||
|
||||
import manyFilesWithInlineCalls2Dex.first.*
|
||||
import manyFilesWithInlineCalls2Dex.second.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
secondInline()
|
||||
}
|
||||
|
||||
fun unused() {
|
||||
firstInline()
|
||||
}
|
||||
|
||||
// ADDITIONAL_BREAKPOINT: manyFilesWithInlineCalls2Dex.Second.kt: Breakpoint 1
|
||||
|
||||
// FILE: manyFilesWithInlineCalls2Dex.First.kt
|
||||
package manyFilesWithInlineCalls2Dex.first
|
||||
|
||||
inline fun firstInline() {
|
||||
1 + 1
|
||||
}
|
||||
|
||||
// FILE: manyFilesWithInlineCalls2Dex.Second.kt
|
||||
package manyFilesWithInlineCalls2Dex.second
|
||||
|
||||
inline fun secondInline() {
|
||||
// Breakpoint 1
|
||||
1 + 1
|
||||
}
|
||||
Vendored
-7
@@ -1,7 +0,0 @@
|
||||
LineBreakpoint created at manyFilesWithInlineCalls2Dex.Second.kt:6
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
manyFilesWithInlineCalls2Dex.Second.kt:6
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
Vendored
+29
@@ -0,0 +1,29 @@
|
||||
// FILE: severalInlineCallsFromOtherFile.kt
|
||||
package severalInlineCallsFromOtherFile
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
//Breakpoint!
|
||||
firstCall()
|
||||
secondCall()
|
||||
}
|
||||
|
||||
fun firstCall() {
|
||||
inlineFun()
|
||||
}
|
||||
|
||||
fun secondCall() {
|
||||
inlineFun()
|
||||
}
|
||||
|
||||
// RESUME: 2
|
||||
// ADDITIONAL_BREAKPOINT: severalInlineCallsFromOtherFile.Other.kt: Breakpoint 1
|
||||
|
||||
// FILE: severalInlineCallsFromOtherFile.Other.kt
|
||||
package severalInlineCallsFromOtherFile
|
||||
|
||||
inline fun inlineFun() {
|
||||
var i = 1
|
||||
// Breakpoint 1
|
||||
i++
|
||||
i++
|
||||
}
|
||||
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFile.Other.kt:7
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFile.kt:6
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
severalInlineCallsFromOtherFile.kt:6
|
||||
severalInlineCallsFromOtherFile.Other.kt:7
|
||||
severalInlineCallsFromOtherFile.Other.kt:7
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
Vendored
-31
@@ -1,31 +0,0 @@
|
||||
// FILE: severalInlineCallsFromOtherFileDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package severalInlineCallsFromOtherFileDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
//Breakpoint!
|
||||
firstCall()
|
||||
secondCall()
|
||||
}
|
||||
|
||||
fun firstCall() {
|
||||
inlineFun()
|
||||
}
|
||||
|
||||
fun secondCall() {
|
||||
inlineFun()
|
||||
}
|
||||
|
||||
// RESUME: 2
|
||||
// ADDITIONAL_BREAKPOINT: severalInlineCallsFromOtherFileDex.Other.kt: Breakpoint 1
|
||||
|
||||
// FILE: severalInlineCallsFromOtherFileDex.Other.kt
|
||||
package severalInlineCallsFromOtherFileDex
|
||||
|
||||
inline fun inlineFun() {
|
||||
var i = 1
|
||||
// Breakpoint 1
|
||||
i++
|
||||
i++
|
||||
}
|
||||
Vendored
-10
@@ -1,10 +0,0 @@
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFileDex.Other.kt:7
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFileDex.kt:8
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
severalInlineCallsFromOtherFileDex.kt:8
|
||||
severalInlineCallsFromOtherFileDex.Other.kt:7
|
||||
severalInlineCallsFromOtherFileDex.Other.kt:7
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
+2
-4
@@ -1,7 +1,5 @@
|
||||
// FILE: severalInlineCallsFromOtherFileDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package severalInlineCallsFromOtherFileDex
|
||||
// FILE: severalInlineCallsFromOtherFile.kt
|
||||
package severalInlineCallsFromOtherFile
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
//Breakpoint!
|
||||
Vendored
+23
@@ -0,0 +1,23 @@
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFile.kt:6
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFile.kt:24
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFile.kt:30
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFile.kt:35
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFile.kt:42
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFile.kt:47
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFile.kt:54
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFile.kt:61
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFile.kt:67
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
severalInlineCallsFromOtherFile.kt:6
|
||||
severalInlineCallsFromOtherFile.kt:24
|
||||
severalInlineCallsFromOtherFile.kt:30
|
||||
severalInlineCallsFromOtherFile.kt:42
|
||||
severalInlineCallsFromOtherFile.kt:67
|
||||
severalInlineCallsFromOtherFile.kt:35
|
||||
severalInlineCallsFromOtherFile.kt:47
|
||||
severalInlineCallsFromOtherFile.kt:54
|
||||
severalInlineCallsFromOtherFile.kt:61
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
Vendored
-23
@@ -1,23 +0,0 @@
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFileDex.kt:8
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFileDex.kt:26
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFileDex.kt:32
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFileDex.kt:37
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFileDex.kt:44
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFileDex.kt:49
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFileDex.kt:56
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFileDex.kt:63
|
||||
LineBreakpoint created at severalInlineCallsFromOtherFileDex.kt:69
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
severalInlineCallsFromOtherFileDex.kt:8
|
||||
severalInlineCallsFromOtherFileDex.kt:26
|
||||
severalInlineCallsFromOtherFileDex.kt:32
|
||||
severalInlineCallsFromOtherFileDex.kt:44
|
||||
severalInlineCallsFromOtherFileDex.kt:69
|
||||
severalInlineCallsFromOtherFileDex.kt:37
|
||||
severalInlineCallsFromOtherFileDex.kt:49
|
||||
severalInlineCallsFromOtherFileDex.kt:56
|
||||
severalInlineCallsFromOtherFileDex.kt:63
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
@@ -1,13 +0,0 @@
|
||||
// EMULATE_DEX: true
|
||||
// FILE: trueseveralInlineFunctionsInOneFileDex.kt
|
||||
|
||||
package inlineDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
//Breakpoint!
|
||||
myPrint("OK")
|
||||
}
|
||||
|
||||
inline fun myPrint(s: String) {
|
||||
val z = s;
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
LineBreakpoint created at trueseveralInlineFunctionsInOneFileDex.kt:8
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
trueseveralInlineFunctionsInOneFileDex.kt:8
|
||||
trueseveralInlineFunctionsInOneFileDex.kt:12
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
// FILE: inlineInClassDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package inlineInClassDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
inlineInClassDex.other.TestDexInlineInClass().inlineFun()
|
||||
}
|
||||
|
||||
// ADDITIONAL_BREAKPOINT: inlineInClassDex.Other.kt: Breakpoint 1
|
||||
|
||||
// FILE: inlineInClassDex.Other.kt
|
||||
package inlineInClassDex.other
|
||||
|
||||
class TestDexInlineInClass {
|
||||
inline fun inlineFun() {
|
||||
// Breakpoint 1
|
||||
some()
|
||||
some()
|
||||
}
|
||||
|
||||
fun some() {}
|
||||
}
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
LineBreakpoint created at inlineInClassDex.Other.kt:7
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
inlineInClassDex.Other.kt:7
|
||||
inlineInClassDex.Other.kt:8
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
// FILE: inlineInIfFalseDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package inlineInIfFalseDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val bar = ""
|
||||
//Breakpoint!
|
||||
if (inlineCall { true }) {
|
||||
foo()
|
||||
}
|
||||
foo()
|
||||
}
|
||||
|
||||
fun foo() {}
|
||||
|
||||
inline fun inlineCall(predicate: (String?) -> Boolean): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
// STEP_OVER: 8
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
LineBreakpoint created at inlineInIfFalseDex.kt:9
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
inlineInIfFalseDex.kt:9
|
||||
inlineInIfFalseDex.kt:12
|
||||
inlineInIfFalseDex.kt:13
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
// FILE: inlineInIfTrueDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package inlineInIfTrueDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val bar = ""
|
||||
//Breakpoint!
|
||||
if (inlineCall { true }) { // 1
|
||||
foo() // 2
|
||||
}
|
||||
} // 3
|
||||
|
||||
fun foo() {}
|
||||
|
||||
inline fun inlineCall(predicate: (String?) -> Boolean): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
// STEP_OVER: 6
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
LineBreakpoint created at inlineInIfTrueDex.kt:9
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
inlineInIfTrueDex.kt:9
|
||||
inlineInIfTrueDex.kt:10
|
||||
inlineInIfTrueDex.kt:12
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
// FILE: inlineInObject.kt
|
||||
package inlineInObject
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
inlineInObject.other.TestInlineInObject.inlineFun()
|
||||
}
|
||||
|
||||
// ADDITIONAL_BREAKPOINT: inlineInObject.Other.kt: Breakpoint 1
|
||||
|
||||
// FILE: inlineInObject.Other.kt
|
||||
package inlineInObject.other
|
||||
|
||||
object TestInlineInObject {
|
||||
inline fun inlineFun() {
|
||||
// Breakpoint 1
|
||||
some()
|
||||
some()
|
||||
}
|
||||
|
||||
fun some() {}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
LineBreakpoint created at inlineInObject.Other.kt:7
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
inlineInObject.Other.kt:7
|
||||
inlineInObject.Other.kt:8
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
// FILE: inlineInObjectDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package inlineInObjectDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
inlineInObjectDex.other.TestDexInlineInObject.inlineFun()
|
||||
}
|
||||
|
||||
// ADDITIONAL_BREAKPOINT: inlineInObjectDex.Other.kt: Breakpoint 1
|
||||
|
||||
// FILE: inlineInObjectDex.Other.kt
|
||||
package inlineInObjectDex.other
|
||||
|
||||
object TestDexInlineInObject {
|
||||
inline fun inlineFun() {
|
||||
// Breakpoint 1
|
||||
some()
|
||||
some()
|
||||
}
|
||||
|
||||
fun some() {}
|
||||
}
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
LineBreakpoint created at inlineInObjectDex.Other.kt:7
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
inlineInObjectDex.Other.kt:7
|
||||
inlineInObjectDex.Other.kt:8
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
// FILE: soInlineAnonymousFunctionArgumentDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package soInlineAnonymousFunctionArgumentDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
//Breakpoint!
|
||||
val b = 1 // 1
|
||||
|
||||
foo( // 2
|
||||
fun (){ test(1) } //
|
||||
)
|
||||
|
||||
foo(fun (){ test(1) }) // 3
|
||||
} // 4
|
||||
|
||||
inline fun foo(f: () -> Unit) {
|
||||
f()
|
||||
}
|
||||
|
||||
fun test(i: Int) = 1
|
||||
|
||||
// STEP_OVER: 10
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
LineBreakpoint created at soInlineAnonymousFunctionArgumentDex.kt:8
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
soInlineAnonymousFunctionArgumentDex.kt:8
|
||||
soInlineAnonymousFunctionArgumentDex.kt:10
|
||||
soInlineAnonymousFunctionArgumentDex.kt:14
|
||||
soInlineAnonymousFunctionArgumentDex.kt:15
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
// FILE: soInlineCallInLastStatementInInlineDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package soInlineCallInLastStatementInInlineDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
bar()
|
||||
nop() // 3
|
||||
} // 4
|
||||
|
||||
inline fun bar() {
|
||||
//Breakpoint!
|
||||
nop() // 1
|
||||
foo { 42 } // 2
|
||||
}
|
||||
|
||||
inline fun foo(f: () -> Unit) {
|
||||
f()
|
||||
}
|
||||
|
||||
fun nop() {}
|
||||
|
||||
// STEP_OVER: 8
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
LineBreakpoint created at soInlineCallInLastStatementInInlineDex.kt:13
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
soInlineCallInLastStatementInInlineDex.kt:13
|
||||
soInlineCallInLastStatementInInlineDex.kt:14
|
||||
soInlineCallInLastStatementInInlineDex.kt:15
|
||||
soInlineCallInLastStatementInInlineDex.kt:8
|
||||
soInlineCallInLastStatementInInlineDex.kt:9
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
// FILE: soInlineCallInLastStatementInInlineFunctionArgumentDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package soInlineCallInLastStatementInInlineFunctionArgumentDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
bar {
|
||||
nop()
|
||||
//Breakpoint!
|
||||
foo()
|
||||
}
|
||||
}
|
||||
|
||||
inline fun bar(f: () -> Unit) {
|
||||
nop()
|
||||
f()
|
||||
}
|
||||
|
||||
inline fun foo() {
|
||||
nop()
|
||||
}
|
||||
|
||||
fun nop() {}
|
||||
|
||||
// STEP_OVER: 5
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
LineBreakpoint created at soInlineCallInLastStatementInInlineFunctionArgumentDex.kt:10
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
soInlineCallInLastStatementInInlineFunctionArgumentDex.kt:10
|
||||
soInlineCallInLastStatementInInlineFunctionArgumentDex.kt:11
|
||||
soInlineCallInLastStatementInInlineFunctionArgumentDex.kt:12
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
-30
@@ -1,30 +0,0 @@
|
||||
// FILE: soInlineFunDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package soInlineFunDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val a = 1
|
||||
|
||||
//Breakpoint!
|
||||
simple() // 1
|
||||
|
||||
withParam(1 + a) // 2
|
||||
|
||||
withLambda { "hi" } // 3
|
||||
} // 4
|
||||
|
||||
inline fun simple() {
|
||||
foo()
|
||||
}
|
||||
|
||||
inline fun withParam(i: Int) {
|
||||
}
|
||||
|
||||
inline fun withLambda(a: () -> Unit) {
|
||||
a()
|
||||
}
|
||||
|
||||
fun foo() {}
|
||||
|
||||
// STEP_OVER: 6
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
LineBreakpoint created at soInlineFunDex.kt:10
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
soInlineFunDex.kt:10
|
||||
soInlineFunDex.kt:12
|
||||
soInlineFunDex.kt:14
|
||||
soInlineFunDex.kt:15
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
Vendored
-24
@@ -1,24 +0,0 @@
|
||||
// FILE: soInlineFunOnOneLineForDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package soInlineFunOnOneLineForDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val list = listOf(1, 2, 3)
|
||||
|
||||
list.any1 { it > 2 }
|
||||
|
||||
foo()
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
|
||||
}
|
||||
|
||||
inline fun <T> Iterable<T>.any1(predicate: (T) -> Boolean): Boolean {
|
||||
//Breakpoint!
|
||||
for (element in this) if (predicate(element)) return true
|
||||
return false
|
||||
}
|
||||
|
||||
// STEP_OVER: 3
|
||||
Vendored
-10
@@ -1,10 +0,0 @@
|
||||
LineBreakpoint created at soInlineFunOnOneLineForDex.kt:20
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
soInlineFunOnOneLineForDex.kt:20
|
||||
soInlineFunOnOneLineForDex.kt:21
|
||||
soInlineFunOnOneLineForDex.kt:11
|
||||
soInlineFunOnOneLineForDex.kt:12
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
+2
-4
@@ -1,7 +1,5 @@
|
||||
// FILE: soInlineIterableFunDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package soInlineIterableFunDex
|
||||
// FILE: soInlineIterableFun.kt
|
||||
package soInlineIterableFun
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
//Breakpoint!
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
LineBreakpoint created at soInlineIterableFun.kt:6
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
soInlineIterableFun.kt:6
|
||||
soInlineIterableFun.kt:8
|
||||
soInlineIterableFun.kt:10
|
||||
soInlineIterableFun.kt:11
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
LineBreakpoint created at soInlineIterableFunDex.kt:8
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
soInlineIterableFunDex.kt:8
|
||||
soInlineIterableFunDex.kt:10
|
||||
soInlineIterableFunDex.kt:12
|
||||
soInlineIterableFunDex.kt:13
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
+2
-4
@@ -1,7 +1,5 @@
|
||||
// FILE: soInlineLibFunDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package soInlineLibFunDex
|
||||
// FILE: soInlineLibFun.kt
|
||||
package soInlineLibFun
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
//Breakpoint!
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
LineBreakpoint created at soInlineLibFun.kt:6
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
soInlineLibFun.kt:6
|
||||
soInlineLibFun.kt:8
|
||||
soInlineLibFun.kt:10
|
||||
soInlineLibFun.kt:11
|
||||
soInlineLibFun.kt:13
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
LineBreakpoint created at soInlineLibFunDex.kt:8
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
soInlineLibFunDex.kt:8
|
||||
soInlineLibFunDex.kt:10
|
||||
soInlineLibFunDex.kt:12
|
||||
soInlineLibFunDex.kt:13
|
||||
soInlineLibFunDex.kt:15
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
+2
-4
@@ -1,7 +1,5 @@
|
||||
// FILE: soInlineUnitFunDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package soInlineUnitFunDex
|
||||
// FILE: soInlineUnitFun.kt
|
||||
package soInlineUnitFun
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
process()
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
LineBreakpoint created at stopInInlineFunDex.kt:13
|
||||
LineBreakpoint created at soInlineUnitFun.kt:11
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
stopInInlineFunDex.kt:13
|
||||
stopInInlineFunDex.kt:14
|
||||
soInlineUnitFun.kt:11
|
||||
soInlineUnitFun.kt:5
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
Vendored
-26
@@ -1,26 +0,0 @@
|
||||
// FILE: soInlineWhileConditionDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package soInlineWhileConditionDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
//Breakpoint!
|
||||
var i = 1
|
||||
// inline in while condition (true)
|
||||
while (id { i < 2 }) {
|
||||
i++
|
||||
}
|
||||
|
||||
// inline in while condition (false)
|
||||
while (id { false }) {
|
||||
bar()
|
||||
}
|
||||
}
|
||||
|
||||
inline fun id(f: () -> Boolean): Boolean {
|
||||
return f()
|
||||
}
|
||||
|
||||
fun bar() {}
|
||||
|
||||
// STEP_OVER: 12
|
||||
Vendored
-12
@@ -1,12 +0,0 @@
|
||||
LineBreakpoint created at soInlineWhileConditionDex.kt:8
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
soInlineWhileConditionDex.kt:8
|
||||
soInlineWhileConditionDex.kt:10
|
||||
soInlineWhileConditionDex.kt:11
|
||||
soInlineWhileConditionDex.kt:10
|
||||
soInlineWhileConditionDex.kt:15
|
||||
soInlineWhileConditionDex.kt:18
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
// FILE: stopInAnonymousFunctionInInlinedCallWithCrossInlineDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package stopInAnonymousFunctionInInlinedCallWithCrossInlineDex
|
||||
|
||||
// KT-15282
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
foo(fun (): Int {
|
||||
//Breakpoint!
|
||||
return 12
|
||||
})
|
||||
}
|
||||
|
||||
fun bar(f: () -> Unit) {
|
||||
f()
|
||||
}
|
||||
|
||||
inline fun foo(crossinline func: () -> Int) {
|
||||
bar {
|
||||
func()
|
||||
}
|
||||
}
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
LineBreakpoint created at stopInAnonymousFunctionInInlinedCallWithCrossInlineDex.kt:11
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
stopInAnonymousFunctionInInlinedCallWithCrossInlineDex.kt:11
|
||||
stopInAnonymousFunctionInInlinedCallWithCrossInlineDex.kt:22
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
+2
-4
@@ -1,7 +1,5 @@
|
||||
// FILE: stopInInlineFunDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package stopInInlineFunDex
|
||||
// FILE: stopInInlineFun.kt
|
||||
package stopInInlineFun
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
inlineFun()
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
LineBreakpoint created at stopInInlineFun.kt:11
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
stopInInlineFun.kt:11
|
||||
stopInInlineFun.kt:12
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// FILE: stopInInlineInOtherFile.kt
|
||||
package stopInInlineInOtherFile
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
inlineFun()
|
||||
}
|
||||
|
||||
// ADDITIONAL_BREAKPOINT: stopInInlineInOtherFile.Other.kt: Breakpoint 1
|
||||
|
||||
// FILE: stopInInlineInOtherFile.Other.kt
|
||||
package stopInInlineInOtherFile
|
||||
|
||||
inline fun inlineFun() {
|
||||
var i = 1
|
||||
// Breakpoint 1
|
||||
i++
|
||||
i++
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
LineBreakpoint created at stopInInlineInOtherFile.Other.kt:7
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
stopInInlineInOtherFile.Other.kt:7
|
||||
stopInInlineInOtherFile.Other.kt:8
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
Vendored
-20
@@ -1,20 +0,0 @@
|
||||
// FILE: stopInInlineInOtherFileDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package stopInInlineInOtherFileDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
inlineFun()
|
||||
}
|
||||
|
||||
// ADDITIONAL_BREAKPOINT: stopInInlineInOtherFileDex.Other.kt: Breakpoint 1
|
||||
|
||||
// FILE: stopInInlineInOtherFileDex.Other.kt
|
||||
package stopInInlineInOtherFileDex
|
||||
|
||||
inline fun inlineFun() {
|
||||
var i = 1
|
||||
// Breakpoint 1
|
||||
i++
|
||||
i++
|
||||
}
|
||||
Vendored
-8
@@ -1,8 +0,0 @@
|
||||
LineBreakpoint created at stopInInlineInOtherFileDex.Other.kt:7
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
stopInInlineInOtherFileDex.Other.kt:7
|
||||
stopInInlineInOtherFileDex.Other.kt:8
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
// FILE: stopInInlineInOtherFileWithLambdaArgument.kt
|
||||
package stopInInlineInOtherFileWithLambdaArgument
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
inlineFun { "hi" }
|
||||
val i = 1
|
||||
}
|
||||
|
||||
// ADDITIONAL_BREAKPOINT: stopInInlineInOtherFileWithLambdaArgument.Other.kt: Breakpoint 1
|
||||
|
||||
// FILE: stopInInlineInOtherFileWithLambdaArgument.Other.kt
|
||||
package stopInInlineInOtherFileWithLambdaArgument
|
||||
|
||||
inline fun inlineFun(a: () -> Unit) {
|
||||
a()
|
||||
// Breakpoint 1
|
||||
a()
|
||||
a()
|
||||
}
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
LineBreakpoint created at stopInInlineInOtherFileWithLambdaArgumentDex.Other.kt:7
|
||||
LineBreakpoint created at stopInInlineInOtherFileWithLambdaArgument.Other.kt:7
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
stopInInlineInOtherFileWithLambdaArgumentDex.Other.kt:7
|
||||
stopInInlineInOtherFileWithLambdaArgumentDex.kt:7
|
||||
stopInInlineInOtherFileWithLambdaArgument.Other.kt:7
|
||||
stopInInlineInOtherFileWithLambdaArgument.Other.kt:8
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
// FILE: stopInInlineInOtherFileWithLambdaArgumentDex.kt
|
||||
// EMULATE_DEX: true
|
||||
|
||||
package stopInInlineInOtherFileWithLambdaArgumentDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
inlineFun { "hi" }
|
||||
val i = 1
|
||||
}
|
||||
|
||||
// ADDITIONAL_BREAKPOINT: stopInInlineInOtherFileWithLambdaArgumentDex.Other.kt: Breakpoint 1
|
||||
|
||||
// FILE: stopInInlineInOtherFileWithLambdaArgumentDex.Other.kt
|
||||
package stopInInlineInOtherFileWithLambdaArgumentDex
|
||||
|
||||
inline fun inlineFun(a: () -> Unit) {
|
||||
a()
|
||||
// Breakpoint 1
|
||||
a()
|
||||
a()
|
||||
}
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
// FILE: stopInLambdaInInlinedCallWithCrossInlineDex.kt
|
||||
// EMULATE_DEX: true
|
||||
// KT-15282
|
||||
|
||||
package stopInLambdaInInlinedCallWithCrossInlineDex
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
foo {
|
||||
//Breakpoint!
|
||||
12
|
||||
}
|
||||
}
|
||||
|
||||
fun bar(f: () -> Unit) {
|
||||
f()
|
||||
}
|
||||
|
||||
inline fun foo(crossinline func: () -> Int) {
|
||||
bar {
|
||||
func()
|
||||
}
|
||||
}
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
LineBreakpoint created at stopInLambdaInInlinedCallWithCrossInlineDex.kt:10
|
||||
Run Java
|
||||
Connected to the target VM
|
||||
stopInLambdaInInlinedCallWithCrossInlineDex.kt:10
|
||||
stopInLambdaInInlinedCallWithCrossInlineDex.kt:21
|
||||
Disconnected from the target VM
|
||||
|
||||
Process finished with exit code 0
|
||||
Reference in New Issue
Block a user