import kotlin.collections.* @CompileTimeCalculation class MyArrayList: ArrayList() { var addCounter = 0 override fun add(element: E): Boolean { addCounter++ return super.add(element) } } @CompileTimeCalculation fun test(): String { val list = MyArrayList() list.add(1) list.add(2) list.add(3) return "Counter " + list.addCounter + "; size " + list.size } const val testResult = test()