// Generated from "autovalue/SimpleAutoValue.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 autovalue

import javaemul.lang.*
import autovalue.AutoValue_EmptyAutoValue.Builder
import autovalue.AutoValue_SimpleAutoValue
import autovalue.EmptyAutoValue
import java.util.AbstractCollection
import javaemul.lang.annotations.WasAutoValue
import kotlin.Any
import kotlin.Array
import kotlin.Boolean
import kotlin.Double
import kotlin.Int
import kotlin.IntArray
import kotlin.String
import kotlin.Suppress
import kotlin.collections.MutableList
import kotlin.intArrayOf
import kotlin.jvm.JvmStatic

@WasAutoValue
abstract class SimpleAutoValue {
 abstract fun getIntField(): Int

 abstract fun getBooleanField(): Boolean

 abstract fun getStringField(): String?

 abstract fun getDoubleField(): Double?

 abstract fun getNullableField(): Double?

 abstract fun getArrayField(): IntArray?

 private var intField: Int = 0

 private var field1: EmptyAutoValue? = null

 private var field2: EmptyAutoValue = Builder().build()!!

 companion object {
  @JvmStatic
  internal fun create_pp_autovalue(): SimpleAutoValue? {
   return AutoValue_SimpleAutoValue(
    42,
    true,
    "text",
    43.0,
    44.0,
    intArrayOf(45),
   )
  }

  @JvmStatic
  internal fun castAndInstanceOf_pp_autovalue(o: Any?): Array<AutoValue_SimpleAutoValue?>? {
   return if (o is Array<*>) o as Array<AutoValue_SimpleAutoValue?>? else null
  }
 }

 abstract class GenericType internal constructor(): AbstractCollection<AutoValue_SimpleAutoValue?>() {
  internal open fun <T: AutoValue_SimpleAutoValue?> foo_pp_autovalue(o1: MutableList<out AutoValue_SimpleAutoValue?>?, o2: MutableList<AutoValue_SimpleAutoValue?>?): T {
   this.foo_pp_autovalue<AutoValue_SimpleAutoValue?>(null, null)!!.getArrayField()
   val o: AutoValue_SimpleAutoValue? = o1!!.get(0)
   return null as T
  }
 }
}
