class Test : J {
  constructor(j: J) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  override fun takeNotNull(x: @EnhancedNullability String) {
    <this>.#j.takeNotNull(x = x)
  }

  override fun takeNullable(x: String?) {
    <this>.#j.takeNullable(x = x)
  }

  override fun takeFlexible(x: @FlexibleNullability String?) {
    <this>.#j.takeFlexible(x = x)
  }

  @NotNull
  override fun returnNotNull(): @EnhancedNullability String {
    return <this>.#j.returnNotNull() /*!! String */
  }

  @Nullable
  override fun returnNullable(): String? {
    return <this>.#j.returnNullable()
  }

  override fun returnsFlexible(): @FlexibleNullability String? {
    return <this>.#j.returnsFlexible()
  }

  private val j: J
    field = j
    private get

}
