blob: 7e404f7638b3ad15e29c583d60a83d39054bf89a [file] [log] [blame]
// FILE: foo/Super.java
package foo
public abstract class Super<T> {
protected abstract String getName();
protected abstract void setName(String s);
protected abstract String getName2();
protected abstract void setName2(String s);
protected abstract void doSomething();
protected abstract void doSomething2();
}
// FILE: bar/Sub.kt
package bar
abstract class Sub<T>: foo.Super<T>() {
abstract override fun getName(): String
abstract override fun setName(s: String)
abstract override fun doSomething()
}
// FILE: foo/test.kt
package foo
fun test(s: bar.Sub<String>) {
s.<!INVISIBLE_MEMBER!>name<!>
s.<!INVISIBLE_MEMBER!>name<!> = ""
s.name2
s.name2 = ""
s.<!INVISIBLE_MEMBER!>doSomething<!>()
s.doSomething2()
val s2: Super<String> = s
s2.name
s2.name = ""
s2.name2
s2.name2 = ""
s2.doSomething()
s2.doSomething2()
}