class Outer<T : Any?> {
  constructor(x: T) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  val x: T
    field = x
    get

  open inner class Inner {
    constructor(y: Int) /* primary */ {
      super/*Any*/()
      /* <init>() */

    }

    val y: Int
      field = y
      get

  }

}

fun Outer<Int>.test(): Inner<Int> {
  return { // BLOCK
    local class <no name provided> : Inner<Int> {
      constructor() /* primary */ {
        <this>.super/*Inner*/(y = 42)
        /* <init>() */

      }

      val xx: Int
        field = <this>.<get-x>().plus(other = <this>.<get-y>())
        get

    }

    <no name provided>()
  }
}
