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

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

