From 2f0278d63b2a0228253dc2dcf6a226889fd0f11f Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Wed, 13 Jun 2012 17:03:04 +0400 Subject: [PATCH] KT-2262 Cannot access protected member from inner class of subclass #KT-2262 fixed --- .../jet/lang/descriptors/Visibilities.java | 2 +- .../testData/diagnostics/tests/scopes/kt2262.jet | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/diagnostics/tests/scopes/kt2262.jet diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Visibilities.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Visibilities.java index 8cb9d438ba1..00b9173c48b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Visibilities.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Visibilities.java @@ -63,7 +63,7 @@ public class Visibilities { if (DescriptorUtils.isSubclass(fromClass, classDescriptor)) { return true; } - return false; + return isVisible(what, fromClass.getContainingDeclaration()); } }; diff --git a/compiler/testData/diagnostics/tests/scopes/kt2262.jet b/compiler/testData/diagnostics/tests/scopes/kt2262.jet new file mode 100644 index 00000000000..494cd16a54c --- /dev/null +++ b/compiler/testData/diagnostics/tests/scopes/kt2262.jet @@ -0,0 +1,16 @@ +package kt2262 + +//KT-2262 Cannot access protected member from inner class of subclass + +abstract class Foo { + protected val color: String = "red" +} + +class Bar : Foo() { + protected val i: Int = 1 + + class Baz { + val copy = color // INVISIBLE_MEMBER: Cannot access 'color' in 'Bar' + val j = i + } +} \ No newline at end of file