// RUN_PIPELINE_TILL: BACKEND
// SCOPE_DUMP: A:getFoo, B:getFoo, C:getFoo, D:getFoo
// FILE: A.java
public interface A {
    String getFoo();
}

// FILE: B.kt
abstract class B : A {
    private val foo: Int = 1

    override fun getFoo(): String = "foo"
}

// FILE: C.java
public abstract class C extends B implements A {}

// FILE: main.kt
class D : C()

fun test(d: D) {
    d.foo.length
}

/* GENERATED_FIR_TAGS: classDeclaration, functionDeclaration, integerLiteral, javaProperty, javaType, override,
propertyDeclaration, stringLiteral */
