blob: a8fd46e8a7525ec82607d4930679f2b7738a231c [file] [log] [blame]
// No initializers for this class because the fields/properties are initialized to defaults.
class RedundantInitializersToDefault {
companion object {
// Constants
const val constInt: Int = 0
const val constByte: Byte = 0
const val constLong: Long = 0L
const val constShort: Short = 0
const val constDouble: Double = 0.0
const val constFloat: Float = 0.0f
const val constBoolean: Boolean = false
const val constChar: Char = '\u0000'
}
// Properties
val myIntPropFromConst: Int = constInt
val myBytePropFromConst: Byte = constByte
val myLongPropFromConst: Long = constLong
val myShortPropFromConst: Short = constShort
val myDoublePropFromConst: Double = constDouble
val myFloatPropFromConst: Float = constFloat
val myBooleanPropFromConst: Boolean = constBoolean
val myCharPropFromConst: Char = constChar
val myIntProp: Int = 0
val myByteProp: Byte = 0
val myLongProp: Long = 0L
val myShortProp: Short = 0
val myDoubleProp: Double = 0.0
val myFloatProp: Float = 0.0f
val myBooleanProp: Boolean = false
val myCharProp: Char = '\u0000'
val myStringProp: String? = null
val myAnyProp: Any? = null
val myObjectProp: java.lang.Object? = null
val myIntegerProp: java.lang.Integer? = null
// Fields
@JvmField
val myIntFieldFromConst: Int = constInt
@JvmField
val myByteFieldFromConst: Byte = constByte
@JvmField
val myLongFieldFromConst: Long = constLong
@JvmField
val myShortFieldFromConst: Short = constShort
@JvmField
val myDoubleFieldFromConst: Double = constDouble
@JvmField
val myFloatFieldFromConst: Float = constFloat
@JvmField
val myBooleanFieldFromConst: Boolean = constBoolean
@JvmField
val myCharFieldFromConst: Char = constChar
@JvmField
val myIntField: Int = 0
@JvmField
val myByteField: Byte = 0
@JvmField
val myLongField: Long = 0L
@JvmField
val myShortField: Short = 0
@JvmField
val myDoubleField: Double = 0.0
@JvmField
val myFloatField: Float = 0.0f
@JvmField
val myBooleanField: Boolean = false
@JvmField
val myCharField: Char = '\u0000'
@JvmField
val myStringField: String? = null
@JvmField
val myAnyField: Any? = null
@JvmField
val myObjectField: java.lang.Object? = null
@JvmField
val myIntegerField: java.lang.Integer? = null
}
class NonRedundantInitializers {
// NOT redundant because the JVM's default values for floating-point types are positive 0.0.
// See: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.3
val myDouble: Double = -0.0
val myFloat: Float = -0.0f
}
// There is 1 PUTSTATIC for the companion object instance.
// 0 PUTFIELD RedundantInitializersToDefault
// 2 PUTFIELD NonRedundantInitializers
// 1 PUTSTATIC