34 lines
819 B
Kotlin
Vendored
34 lines
819 B
Kotlin
Vendored
@CompileTimeCalculation fun evalWithVariables(): Double {
|
|
val a = 1
|
|
val b = 1.5
|
|
return a + b
|
|
}
|
|
|
|
@CompileTimeCalculation fun evalWithVariablesLateinit(): Double {
|
|
var a: Double
|
|
var b: Double
|
|
a = 1.5
|
|
b = -3.75
|
|
return a + b
|
|
}
|
|
|
|
@CompileTimeCalculation fun evalWithValueParameter(toAdd: Int): Int {
|
|
var a: Int = toAdd
|
|
a += 10
|
|
a = a % 5
|
|
a -= 2
|
|
return a
|
|
}
|
|
|
|
class A @CompileTimeCalculation constructor(@CompileTimeCalculation val a: Int)
|
|
|
|
@CompileTimeCalculation fun createObject(a: Int): Int {
|
|
val aObj = A(a)
|
|
return aObj.a
|
|
}
|
|
|
|
const val a = <!EVALUATED: `2.5`!>evalWithVariables()<!>
|
|
const val b = <!EVALUATED: `-2.25`!>evalWithVariablesLateinit()<!>
|
|
const val c = <!EVALUATED: `-2`!>evalWithValueParameter(10)<!>
|
|
const val d = <!EVALUATED: `-2`!>createObject(c)<!>
|