// Generated from "classliteral/ClassLiteral.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 classliteral

import javaemul.lang.*
import java.lang.Class
import java.lang.Void
import kotlin.Any
import kotlin.Array
import kotlin.Boolean
import kotlin.BooleanArray
import kotlin.Byte
import kotlin.ByteArray
import kotlin.Char
import kotlin.CharArray
import kotlin.Double
import kotlin.DoubleArray
import kotlin.Float
import kotlin.FloatArray
import kotlin.Int
import kotlin.IntArray
import kotlin.Long
import kotlin.LongArray
import kotlin.Short
import kotlin.ShortArray
import kotlin.Suppress
import kotlin.jvm.javaObjectType
import kotlin.jvm.javaPrimitiveType

open class ClassLiteral {
 open fun main() {
  val voidClass: Class<Void> = Void::class.javaPrimitiveType!! as Class<Void>
  val primitiveBooleanClass: Class<Boolean> = Boolean::class.javaPrimitiveType!! as Class<Boolean>
  val primitiveBooleanArrayClass: Class<BooleanArray> = BooleanArray::class.javaObjectType
  val primitiveBooleanArrayArrayClass: Class<Array<BooleanArray?>> = Array::class.javaObjectType as Class<Array<BooleanArray?>>
  val booleanClass: Class<Boolean> = Boolean::class.javaObjectType
  val booleanArrayClass: Class<Array<Boolean?>> = Array::class.javaObjectType as Class<Array<Boolean?>>
  val booleanArrayArrayClass: Class<Array<Array<Boolean?>?>> = Array::class.javaObjectType as Class<Array<Array<Boolean?>?>>
  val primitiveCharClass: Class<Char> = Char::class.javaPrimitiveType!! as Class<Char>
  val primitiveCharArrayClass: Class<CharArray> = CharArray::class.javaObjectType
  val primitiveCharArrayArrayClass: Class<Array<CharArray?>> = Array::class.javaObjectType as Class<Array<CharArray?>>
  val characterClass: Class<Char> = Char::class.javaObjectType
  val characterArrayClass: Class<Array<Char?>> = Array::class.javaObjectType as Class<Array<Char?>>
  val characterArrayArrayClass: Class<Array<Array<Char?>?>> = Array::class.javaObjectType as Class<Array<Array<Char?>?>>
  val primitiveByteClass: Class<Byte> = Byte::class.javaPrimitiveType!! as Class<Byte>
  val primitiveByteArrayClass: Class<ByteArray> = ByteArray::class.javaObjectType
  val primitiveByteArrayArrayClass: Class<Array<ByteArray?>> = Array::class.javaObjectType as Class<Array<ByteArray?>>
  val byteClass: Class<Byte> = Byte::class.javaObjectType
  val byteArrayClass: Class<Array<Byte?>> = Array::class.javaObjectType as Class<Array<Byte?>>
  val byteArrayArrayClass: Class<Array<Array<Byte?>?>> = Array::class.javaObjectType as Class<Array<Array<Byte?>?>>
  val primitiveShortClass: Class<Short> = Short::class.javaPrimitiveType!! as Class<Short>
  val primitiveShortArrayClass: Class<ShortArray> = ShortArray::class.javaObjectType
  val primitiveShortArrayArrayClass: Class<Array<ShortArray?>> = Array::class.javaObjectType as Class<Array<ShortArray?>>
  val shortClass: Class<Short> = Short::class.javaObjectType
  val shortArrayClass: Class<Array<Short?>> = Array::class.javaObjectType as Class<Array<Short?>>
  val shortArrayArrayClass: Class<Array<Array<Short?>?>> = Array::class.javaObjectType as Class<Array<Array<Short?>?>>
  val primitiveIntClass: Class<Int> = Int::class.javaPrimitiveType!! as Class<Int>
  val primitiveIntArrayClass: Class<IntArray> = IntArray::class.javaObjectType
  val primitiveIntArrayArrayClass: Class<Array<IntArray?>> = Array::class.javaObjectType as Class<Array<IntArray?>>
  val integerClass: Class<Int> = Int::class.javaObjectType
  val integerArrayClass: Class<Array<Int?>> = Array::class.javaObjectType as Class<Array<Int?>>
  val integerArrayArrayClass: Class<Array<Array<Int?>?>> = Array::class.javaObjectType as Class<Array<Array<Int?>?>>
  val primitiveLongClass: Class<Long> = Long::class.javaPrimitiveType!! as Class<Long>
  val primitiveLongArrayClass: Class<LongArray> = LongArray::class.javaObjectType
  val primitiveLongArrayArrayClass: Class<Array<LongArray?>> = Array::class.javaObjectType as Class<Array<LongArray?>>
  val longClass: Class<Long> = Long::class.javaObjectType
  val longArrayClass: Class<Array<Long?>> = Array::class.javaObjectType as Class<Array<Long?>>
  val longArraArrayClass: Class<Array<Array<Long?>?>> = Array::class.javaObjectType as Class<Array<Array<Long?>?>>
  val primitiveFloatClass: Class<Float> = Float::class.javaPrimitiveType!! as Class<Float>
  val primitiveFloatArrayClass: Class<FloatArray> = FloatArray::class.javaObjectType
  val primitiveFloatArrayArrayClass: Class<Array<FloatArray?>> = Array::class.javaObjectType as Class<Array<FloatArray?>>
  val floatClass: Class<Float> = Float::class.javaObjectType
  val floatArrayClass: Class<Array<Float?>> = Array::class.javaObjectType as Class<Array<Float?>>
  val floatArrayArrayClass: Class<Array<Array<Float?>?>> = Array::class.javaObjectType as Class<Array<Array<Float?>?>>
  val primitiveDoubleClass: Class<Double> = Double::class.javaPrimitiveType!! as Class<Double>
  val primitiveDoubleArrayClass: Class<DoubleArray> = DoubleArray::class.javaObjectType
  val primitiveDoubleArrayArrayClass: Class<Array<DoubleArray?>> = Array::class.javaObjectType as Class<Array<DoubleArray?>>
  val doubleClass: Class<Double> = Double::class.javaObjectType
  val doubleArrayClass: Class<Array<Double?>> = Array::class.javaObjectType as Class<Array<Double?>>
  val doubleArrayArrayClass: Class<Array<Array<Double?>?>> = Array::class.javaObjectType as Class<Array<Array<Double?>?>>
  val objectClass: Class<Any> = Any::class.javaObjectType
  val objectArrayClass: Class<Array<Any?>> = Array::class.javaObjectType as Class<Array<Any?>>
  val objectArrayArrayClass: Class<Array<Array<Any?>?>> = Array::class.javaObjectType as Class<Array<Array<Any?>?>>
  val nonObjectClass: Class<ClassLiteral> = ClassLiteral::class.javaObjectType
  val nonObjectArrayClass: Class<Array<ClassLiteral?>> = Array::class.javaObjectType as Class<Array<ClassLiteral?>>
  val nonObjectArrayArrayClass: Class<Array<Array<ClassLiteral?>?>> = Array::class.javaObjectType as Class<Array<Array<ClassLiteral?>?>>
 }
}
