Deal with cases when different visibility of overridden members could produce incorrect fake override.

(by Pavel Talanov and Andrey Breslav)
This commit is contained in:
Pavel V. Talanov
2012-07-20 18:31:05 +04:00
parent d65b6bc69f
commit f861b69d7a
5 changed files with 206 additions and 89 deletions
@@ -0,0 +1,14 @@
package test
trait A {
private val a: String
get() = "AAAA!"
}
open class C {
private val a: String = ""
}
class Subject : C(), A {
val c = <!INVISIBLE_MEMBER!>a<!>
}
@@ -0,0 +1,13 @@
package test
trait A {
protected val a: String
}
open class C {
protected val a: String = ""
}
class Subject : C(), A {
val c = a
}
@@ -0,0 +1,17 @@
package test
trait A {
protected val a: String
}
trait B {
protected val a: String
}
open class C {
private val a: String = ""
}
class <!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>Subject<!> : C(), A, B {
val c = a
}