From 37d9130f9fa9d90d2e4b31d3004e4e1b1df58d5c Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Wed, 10 Nov 2010 15:02:54 +0000 Subject: protected[this] members should be accessible to... protected[this] members should be accessible to super.x calls. Closes #464, review by odersky. --- test/files/neg/bug464-neg.check | 16 ++++++++++++++++ test/files/neg/bug464-neg.scala | 12 ++++++++++++ test/files/pos/bug464.scala | 13 +++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 test/files/neg/bug464-neg.check create mode 100644 test/files/neg/bug464-neg.scala create mode 100644 test/files/pos/bug464.scala (limited to 'test/files') diff --git a/test/files/neg/bug464-neg.check b/test/files/neg/bug464-neg.check new file mode 100644 index 0000000000..7921c5a4f8 --- /dev/null +++ b/test/files/neg/bug464-neg.check @@ -0,0 +1,16 @@ +bug464-neg.scala:7: error: not found: value f1 + f1() + ^ +bug464-neg.scala:8: error: method f1 in class A cannot be accessed in A with ScalaObject + super.f1() + ^ +bug464-neg.scala:9: error: value f2 is not a member of B + def otherb(b2: B) = b2.f2() + ^ +bug464-neg.scala:10: error: method f3 in class A cannot be accessed in B + f3() + ^ +bug464-neg.scala:11: error: method f3 in class A cannot be accessed in A with ScalaObject + super.f3() + ^ +5 errors found diff --git a/test/files/neg/bug464-neg.scala b/test/files/neg/bug464-neg.scala new file mode 100644 index 0000000000..138fa8e869 --- /dev/null +++ b/test/files/neg/bug464-neg.scala @@ -0,0 +1,12 @@ +class A { + private[this] def f1() {} + protected[this] def f2() {} + private[A] def f3() {} +} +class B extends A { + f1() + super.f1() + def otherb(b2: B) = b2.f2() + f3() + super.f3() +} \ No newline at end of file diff --git a/test/files/pos/bug464.scala b/test/files/pos/bug464.scala new file mode 100644 index 0000000000..45521335c3 --- /dev/null +++ b/test/files/pos/bug464.scala @@ -0,0 +1,13 @@ +class A { + protected[this] def f() {} +} +class B extends A { + f() + super.f() +} +class C extends A { + override protected[this] def f() = super.f() +} +class D extends C { + override protected def f() = super.f() +} \ No newline at end of file -- cgit v1.2.3