// Generated from "j2kt/NullabilityCasts.java"
@file:Suppress(
 "ALWAYS_NULL",
 "PARAMETER_NAME_CHANGED_ON_OVERRIDE",
 "SENSELESS_COMPARISON",
 "UNCHECKED_CAST",
 "UNNECESSARY_LATEINIT",
 "UNNECESSARY_NOT_NULL_ASSERTION",
 "UNREACHABLE_CODE",
 "UNUSED_ANONYMOUS_PARAMETER",
 "UNUSED_PARAMETER",
 "UNUSED_VARIABLE",
 "USELESS_CAST",
 "VARIABLE_IN_SINGLETON_WITHOUT_THREAD_LOCAL",
 "VARIABLE_WITH_REDUNDANT_INITIALIZER",
 "REDUNDANT_ELSE_IN_WHEN")

package j2kt

import javaemul.lang.*
import java.lang.AssertionError
import java.lang.RuntimeException
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmStatic

open class NullabilityCasts {
 internal open fun testCapturesInLambdas_pp_j2kt(condition: Boolean, async: Async<String?>) {
  NullabilityCasts.tranformAsync_pp_j2kt<String?, String?>(
   async,
   AsyncFunction { it: String? ->
    if (condition) {
     return@AsyncFunction async
    } else {
     return@AsyncFunction async
    }
    throw AssertionError("Unreachable")
   },
  )
 }

 companion object {
  @JvmStatic
  internal fun <I, O> tranformAsync_pp_j2kt(async: Async<I>, function: AsyncFunction<in I, out O>): Async<O> {
   throw RuntimeException()
  }
 }

 fun interface AsyncFunction<I, O> {
  fun apply(i: I): Async<O>
 }

 interface Async<V>
}
