diff --git a/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/codegen/AndroidIrExtension.kt b/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/codegen/AndroidIrExtension.kt index 19363574882..eb67bd20aac 100644 --- a/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/codegen/AndroidIrExtension.kt +++ b/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/codegen/AndroidIrExtension.kt @@ -201,7 +201,8 @@ private class AndroidIrTransformer(val extension: AndroidIrExtension, val plugin return super.visitClassNew(declaration) if ((containerOptions.cache ?: extension.getGlobalCacheImpl(declaration)).hasCache) { - declaration.declarations += declaration.getCacheField() + // Place the field first so that it is initialized before any init blocks. + declaration.declarations.add(0, declaration.getCacheField()) declaration.declarations += declaration.getClearCacheFun() declaration.declarations += declaration.getCachedFindViewByIdFun() } diff --git a/plugins/android-extensions/android-extensions-compiler/testData/codegen/android/singleFile/0.kt b/plugins/android-extensions/android-extensions-compiler/testData/codegen/android/singleFile/0.kt index 0bb4797bb91..be2e1057337 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/codegen/android/singleFile/0.kt +++ b/plugins/android-extensions/android-extensions-compiler/testData/codegen/android/singleFile/0.kt @@ -33,9 +33,11 @@ class MyActivity(): Activity() { } as T? } + private val textViewString = textView1.toString() + public fun box(): String { val result = when { - textView1.toString() == "TextView" && password.toString() == "EditText" && login.toString() == "Button" -> "OK" + textViewString == "TextView" && password.toString() == "EditText" && login.toString() == "Button" -> "OK" else -> "" }