szymen
02/15/2018, 11:48 PMShow kotlin bytecode -> Decompile
gives a different result than running kotlin code?ilya.gorbunov
02/15/2018, 11:50 PMszymen
02/16/2018, 12:01 AMfun main(args: Array<String>) {
val demo = Demo()
demo.printNumber()
}
class Demo {
private val number
get() = if (isValid) 0 else 1
private val intHolder = SomeIntHolder(number)
private val isValid = true
fun printNumber() {
println(intHolder.number)
}
}
class SomeIntHolder(val number: Int)
In kotlin it prints 1
, but generated java code prints 0
. It's pretty strange for me. Can you explain me why generated output is different?szymen
02/16/2018, 12:09 AMif(isValid)
and shows Condition is always true
, but after quick fixing (Alt+Enter -> Simplify code
) kotlin prints different result.
In this example order of properties is important, so lint is wrong. It's true only if private val isValid = true
is above private val intHolder = SomeIntHolder(number)
.groostav
02/16/2018, 12:32 AM