library {
  // module name: <annotationTargets.kt>

  library fragment {
    // package name: test

    // class name: test/C1
    // class name: test/C1.C2
    // class name: test/C1.Companion
    // class name: test/anno

    @test/anno(x = "top level class")
    public final class test/C1 : kotlin/Any {

      @test/anno(x = "constructor")
      public constructor()

      @test/anno(x = "member function")
      public final fun f3(@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 = "member property")
      public final val p3: kotlin/Nothing?
        public final get

      @test/anno(x = "member extension property")
      public final val kotlin/Int.v4: kotlin/Int
        public final /* non-default */ get

      // companion object: Companion

      // nested class: C2

      // nested class: Companion
    }

    @test/anno(x = "nested class")
    public final class test/C1.C2 : kotlin/Any {

      public constructor()
    }

    @test/anno(x = "companion object")
    public final companion object test/C1.Companion : kotlin/Any {

      private constructor()
    }

    public final annotation class test/anno : kotlin/Annotation {

      public constructor(x: kotlin/String)

      public final val x: kotlin/String
        public final get
    }

    package {

      @test/anno(x = "top level function")
      public final fun f1(@test/anno(x = "top level function parameter") p: kotlin/Int): kotlin/Unit

      @test/anno(x = "extension function")
      public final fun kotlin/Long.f2(@test/anno(x = "extension function parameter") p: kotlin/Int): kotlin/Unit

      @test/anno(x = "top level property")
      public final val p1: kotlin/Nothing?
        public final get

      @test/anno(x = "extension property")
      public final val kotlin/Double.p2: kotlin/Double
        public final /* non-default */ get
    }
  }
}
