// Generated from "j2objcnamenotpassing/AccidentalOverride.java"
@file:OptIn(ExperimentalObjCName::class)
@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 j2objcnamenotpassing

import javaemul.lang.*
import kotlin.OptIn
import kotlin.Suppress
import kotlin.experimental.ExperimentalObjCName
import kotlin.native.ObjCName

@ObjCName("J2ktJ2objcnamenotpassingAccidentalOverride", swiftName = "J2objcnamenotpassingAccidentalOverride", exact = true)
open class AccidentalOverride {
 @ObjCName("J2ktJ2objcnamenotpassingAccidentalOverride_Left", swiftName = "J2objcnamenotpassingAccidentalOverride_Left", exact = true)
 interface Left<T: Left<T>> {
  @ObjCName("name")
  fun name(
   @ObjCName("withJ2objcnamenotpassingAccidentalOverride_Left", swiftName = "with") t: T
  ) {}
 }

 @ObjCName("J2ktJ2objcnamenotpassingAccidentalOverride_Right", swiftName = "J2objcnamenotpassingAccidentalOverride_Right", exact = true)
 interface Right<T: Right<T>> {
  @ObjCName("name")
  fun name(
   @ObjCName("withJ2objcnamenotpassingAccidentalOverride_Right", swiftName = "with") t: T
  ) {}
 }

 @ObjCName("J2ktJ2objcnamenotpassingAccidentalOverride_Bottom", swiftName = "J2objcnamenotpassingAccidentalOverride_Bottom", exact = true)
 interface Bottom<T: Bottom<T>>: Left<T>, Right<T> {
  override fun name(t: T) {}
 }

 @ObjCName("J2ktJ2objcnamenotpassingAccidentalOverride_A", swiftName = "J2objcnamenotpassingAccidentalOverride_A", exact = true)
 open class A<T: Left<T>, V: Right<V>>: Left<T>, Right<V>

 @ObjCName("J2ktJ2objcnamenotpassingAccidentalOverride_B", swiftName = "J2objcnamenotpassingAccidentalOverride_B", exact = true)
 open class B: A<B, B>(), Bottom<B>

 @ObjCName("J2ktJ2objcnamenotpassingAccidentalOverride_C", swiftName = "J2objcnamenotpassingAccidentalOverride_C", exact = true)
 open class C: Bottom<C> {
  override fun name(c: C) {}
 }
}
