package test

@test.anno(x = "top level property") public val p1: kotlin.Nothing?
@test.anno(x = "extension property") public val kotlin.Double.p2: kotlin.Double
@test.anno(x = "top level function") public fun f1(/*0*/ @test.anno(x = "top level function parameter") p: kotlin.Int): kotlin.Unit
@test.anno(x = "extension function") public fun kotlin.Long.f2(/*0*/ @test.anno(x = "extension function parameter") p: kotlin.Int): kotlin.Unit

@test.anno(x = "top level class") public final class C1 {
    @test.anno(x = "constructor") public constructor C1()
    @test.anno(x = "member property") public final val p3: kotlin.Nothing?
    @test.anno(x = "member extension property") public final val kotlin.Int.v4: kotlin.Int
    @test.anno(x = "member function") public final fun f3(/*0*/ @test.anno(x = "member function parameter") p: kotlin.Int): kotlin.Unit
    @test.anno(x = "member extension function") public final fun kotlin.String.f4(): kotlin.Unit

    @test.anno(x = "nested class") public final class C2 {
        public constructor C2()
    }

    @test.anno(x = "companion object") public companion object Companion {
        private constructor Companion()
    }
}

public final annotation class anno : kotlin.Annotation {
    public constructor anno(/*0*/ x: kotlin.String)
    public final val x: kotlin.String
}
