fun <T> f(x: T): Int? where T : CharSequence?, T : Comparable<T>? {
  return { // BLOCK
    val tmp0_safe_receiver: T = x
    when {
      EQEQ(arg0 = tmp0_safe_receiver, arg1 = null) -> null
      else -> tmp0_safe_receiver.compareTo(other = x)
    }
  }
}

fun test() {
  f<@FlexibleNullability String?>(x = s()) /*~> Unit */
  f<@FlexibleNullability String?>(x = #STRING) /*~> Unit */
}
