data class TestData {
  constructor(nn: Nothing?) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  val nn: Nothing?
    field = nn
    get

  operator fun component1(): Nothing? {
    return <this>.#nn
  }

  fun copy(nn: Nothing? = <this>.#nn): TestData {
    return TestData(nn = nn)
  }

  override fun toString(): String {
    return "TestData(" + "nn=" + <this>.#nn + ")"
  }

  override fun hashCode(): Int {
    return when {
      EQEQ(arg0 = <this>.#nn, arg1 = null) -> 0
      else -> <this>.#nn.hashCode()
    }
  }

  override operator fun equals(other: Any?): Boolean {
    when {
      EQEQEQ(arg0 = <this>, arg1 = other) -> return true
    }
    when {
      other !is TestData -> return false
    }
    val tmp0_other_with_cast: TestData = other as TestData
    when {
      EQEQ(arg0 = <this>.#nn, arg1 = tmp0_other_with_cast.#nn).not() -> return false
    }
    return true
  }

}

value class TestInline {
  constructor(nn: Nothing?) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  val nn: Nothing?
    field = nn
    get

  override fun toString(): String {
    return "TestInline(" + "nn=" + <this>.#nn + ")"
  }

  override fun hashCode(): Int {
    return when {
      EQEQ(arg0 = <this>.#nn, arg1 = null) -> 0
      else -> <this>.#nn.hashCode()
    }
  }

  override operator fun equals(other: Any?): Boolean {
    when {
      other !is TestInline -> return false
    }
    val tmp0_other_with_cast: TestInline = other as TestInline
    when {
      EQEQ(arg0 = <this>.#nn, arg1 = tmp0_other_with_cast.#nn).not() -> return false
    }
    return true
  }

}
