| @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)<!> |