fun foo(s: String?): String {
  { // BLOCK
    val tmp0_safe_receiver: String? = s
    when {
      EQEQ(arg0 = tmp0_safe_receiver, arg1 = null) -> null
      else -> tmp0_safe_receiver.let<String, Nothing>(block = local fun <anonymous>(it: String): Nothing {
        return it
      }
)
    }
  } /*~> Unit */
  return ""
}

fun bar(s: String?, t: String?): String {
  { // BLOCK
    val tmp0_safe_receiver: String? = s
    when {
      EQEQ(arg0 = tmp0_safe_receiver, arg1 = null) -> null
      else -> tmp0_safe_receiver.let<String, Nothing?>(block = local fun <anonymous>(it: String): Nothing? {
        return { // BLOCK
          val tmp0_safe_receiver: String? = t
          when {
            EQEQ(arg0 = tmp0_safe_receiver, arg1 = null) -> null
            else -> tmp0_safe_receiver.let<String, Nothing>(block = local fun <anonymous>(it: String): Nothing {
              return it
            }
)
          }
        }
      }
)
    }
  } /*~> Unit */
  return ""
}

val String?.baz: String
  get(): String {
    { // BLOCK
      val tmp0_safe_receiver: String? = <this>
      when {
        EQEQ(arg0 = tmp0_safe_receiver, arg1 = null) -> null
        else -> tmp0_safe_receiver.let<String, Nothing>(block = local fun <anonymous>(it: String): Nothing {
          return it
        }
)
      }
    } /*~> Unit */
    return ""
  }
