From 3a7f66b7eb9c8a4faf10eb4ceab49fa4fbaa59d3 Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Mon, 4 Aug 2014 10:10:06 +0400 Subject: [PATCH] Evaluate expression: fix exception when default package is used #KT-5555 Fixed --- .../plugin/debugger/evaluate/KotlinEvaluationBuilder.kt | 2 +- idea/testData/debugger/tinyApp/outs/_kt.out | 8 ++++++++ .../tinyApp/src/evaluate/singleBreakpoint/.kt.kt | 9 +++++++++ .../evaluate/KotlinEvaluateExpressionTestGenerated.java | 5 +++++ 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 idea/testData/debugger/tinyApp/outs/_kt.out create mode 100644 idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/.kt.kt diff --git a/idea/src/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluationBuilder.kt b/idea/src/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluationBuilder.kt index 48c8eeb1bd1..d1a3622da1f 100644 --- a/idea/src/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluationBuilder.kt +++ b/idea/src/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluationBuilder.kt @@ -78,7 +78,7 @@ object KotlinEvaluationBuilder: EvaluatorBuilder { } val packageName = file.getPackageDirective()?.getFqName()?.asString() - if (packageName != null) { + if (packageName != null && packageName.isNotEmpty()) { codeFragment.addImportsFromString("import $packageName.*") } return ExpressionEvaluatorImpl(KotlinEvaluator(codeFragment as JetCodeFragment, position)) diff --git a/idea/testData/debugger/tinyApp/outs/_kt.out b/idea/testData/debugger/tinyApp/outs/_kt.out new file mode 100644 index 00000000000..1a3b2fa0a68 --- /dev/null +++ b/idea/testData/debugger/tinyApp/outs/_kt.out @@ -0,0 +1,8 @@ +LineBreakpoint created at .kt.kt:5 +!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!RT_JAR! _DefaultPackage +Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket' +.kt.kt:4 +Compile bytecode for 1 + 1 +Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket' + +Process finished with exit code 0 diff --git a/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/.kt.kt b/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/.kt.kt new file mode 100644 index 00000000000..84b601395b7 --- /dev/null +++ b/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/.kt.kt @@ -0,0 +1,9 @@ +// Test evaluate expression for default package + +fun main(args: Array) { + //Breakpoint! + args.size +} + +// EXPRESSION: 1 + 1 +// RESULT: 2: I diff --git a/idea/tests/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluateExpressionTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluateExpressionTestGenerated.java index 16d9c9877f0..a95fca18317 100644 --- a/idea/tests/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluateExpressionTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluateExpressionTestGenerated.java @@ -138,6 +138,11 @@ public class KotlinEvaluateExpressionTestGenerated extends AbstractKotlinEvaluat doSingleBreakpointTest("idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/vars.kt"); } + @TestMetadata(".kt.kt") + public void test_kt() throws Exception { + doSingleBreakpointTest("idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/.kt.kt"); + } + } @TestMetadata("idea/testData/debugger/tinyApp/src/evaluate/multipleBreakpoints")