diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JavaTypeAccessibilityChecker.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JavaTypeAccessibilityChecker.kt index 2e8a0aabf68..4aad3ec2fc4 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JavaTypeAccessibilityChecker.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JavaTypeAccessibilityChecker.kt @@ -40,6 +40,8 @@ class JavaTypeAccessibilityChecker : AdditionalTypeChecker { // To avoid superfluous diagnostics in case of invisible member class and so on, // we consider only Java classes as possibly inaccessible. + if (c.isDebuggerContext) return + val inaccessibleTypes = findInaccessibleJavaTypes(expressionType, c) if (inaccessibleTypes.isNotEmpty()) { c.trace.report(Errors.INACCESSIBLE_TYPE.on(expression, expressionType, inaccessibleTypes)) diff --git a/idea/testData/debugger/tinyApp/outs/privateClass.out b/idea/testData/debugger/tinyApp/outs/privateClass.out index 94bc0449f36..4908e4d7fed 100644 --- a/idea/testData/debugger/tinyApp/outs/privateClass.out +++ b/idea/testData/debugger/tinyApp/outs/privateClass.out @@ -6,6 +6,8 @@ Compile bytecode for A.PrivateClass() Compile bytecode for A.PrivateClass().prop Compile bytecode for A().PrivateInnerClass() Compile bytecode for A().PrivateInnerClass().prop +Compile bytecode for forTests.MyJavaClass.PrivateJavaClass() +Compile bytecode for forTests.MyJavaClass.PrivateJavaClass().prop 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/privateClass.kt b/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/privateClass.kt index c67e0698e4b..da810adce5e 100644 --- a/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/privateClass.kt +++ b/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/privateClass.kt @@ -26,3 +26,9 @@ class A { // EXPRESSION: A().PrivateInnerClass().prop // RESULT: 1: I + +// EXPRESSION: forTests.MyJavaClass.PrivateJavaClass() +// RESULT: instance of forTests.MyJavaClass$PrivateJavaClass(id=ID): LforTests/MyJavaClass$PrivateJavaClass; + +// EXPRESSION: forTests.MyJavaClass.PrivateJavaClass().prop +// RESULT: 1: I diff --git a/idea/testData/debugger/tinyApp/src/forTests/MyJavaClass.java b/idea/testData/debugger/tinyApp/src/forTests/MyJavaClass.java index 62e29a9e79d..4381a648d61 100644 --- a/idea/testData/debugger/tinyApp/src/forTests/MyJavaClass.java +++ b/idea/testData/debugger/tinyApp/src/forTests/MyJavaClass.java @@ -19,4 +19,8 @@ public class MyJavaClass { public static T runReadAction(@NotNull Computable computation) { return computation.compute(); } + + private static class PrivateJavaClass { + public final int prop = 1; + } }