summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala2
-rw-r--r--test/files/pos/t5013/Bar_2.scala5
-rw-r--r--test/files/pos/t5013/Foo_1.scala5
3 files changed, 11 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
index 8e00c850ef..3c72dc8413 100644
--- a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
@@ -150,7 +150,7 @@ abstract class SuperAccessors extends transform.Transform with transform.TypingT
checkCompanionNameClashes(sym)
val decls = sym.info.decls
for (s <- decls) {
- if (s.privateWithin.isClass && !s.privateWithin.isModuleClass &&
+ if (s.privateWithin.isClass && !s.isProtected && !s.privateWithin.isModuleClass &&
!s.hasFlag(EXPANDEDNAME) && !s.isConstructor) {
decls.unlink(s)
s.expandName(s.privateWithin)
diff --git a/test/files/pos/t5013/Bar_2.scala b/test/files/pos/t5013/Bar_2.scala
new file mode 100644
index 0000000000..9eac556a23
--- /dev/null
+++ b/test/files/pos/t5013/Bar_2.scala
@@ -0,0 +1,5 @@
+package b
+
+class Bar extends a.Foo {
+ println(x) // Error: Not found: value x
+}
diff --git a/test/files/pos/t5013/Foo_1.scala b/test/files/pos/t5013/Foo_1.scala
new file mode 100644
index 0000000000..ee21112a3e
--- /dev/null
+++ b/test/files/pos/t5013/Foo_1.scala
@@ -0,0 +1,5 @@
+package a
+
+class Foo {
+ protected[Foo] var x = 0
+}