// RUN_PIPELINE_TILL: BACKEND
// FILE: Base.java

public class Base {
    protected String foo() { return ""; }
}

// FILE: O.kt

open class Wrapper(val b: Boolean)

object O {
    private class Derived(private val bar: Int) : Base() {
        private inner class Some(val z: Boolean) {
            fun test() {
                val x = bar
                val o = object : Wrapper(z) {
                    fun local() {
                        val y = foo()
                    }
                    val oo = object {
                        val zz = z
                    }
                }
            }
        }
        fun test() {
            val x = bar
            val o = object {
                fun local() {
                    val y = foo()
                }
            }
        }
    }
}

class Generator(val codegen: Any) {
    private fun gen(): Any =
        object : Wrapper(true) {
            private fun invokeFunction() {
                val c = codegen
                val cc = codegen.hashCode()
            }
        }
}

/* GENERATED_FIR_TAGS: anonymousObjectExpression, classDeclaration, flexibleType, functionDeclaration, inner,
javaFunction, javaType, localProperty, nestedClass, objectDeclaration, primaryConstructor, propertyDeclaration */
