// Generated from "j2ktnotpassing/NullabilityInferenceProblem10.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 j2ktnotpassing

import javaemul.lang.*
import java.lang.RuntimeException
import java.lang.Void
import kotlin.Suppress
import kotlin.jvm.JvmStatic

open class NullabilityInferenceProblem10 {
 fun interface Lazy<V> {
  fun get(): V
 }

 open class InNullMarked internal constructor() {
  companion object {
   @JvmStatic
   internal fun observeNullable_pp_j2ktnotpassing(foo: Foo?): Future<Void?> {
    throw RuntimeException()
   }

   @JvmStatic
   internal fun test_pp_j2ktnotpassing(lazyObservable: Lazy<Observable<Foo>>) {
    lazyObservable.get()!!.addObserver(
     Observer { arg0: Foo ->
      return@Observer InNullMarked.observeNullable_pp_j2ktnotpassing(arg0)
     } as Observer<Foo?>,
    )
   }
  }

  interface Foo

  interface Future<V>

  fun interface Observable<V> {
   fun addObserver(observer: Observer<V>)
  }

  fun interface Observer<V> {
   fun observe(v: V): Future<Void?>
  }
 }
}
