diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateLocalVariableActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateLocalVariableActionFactory.kt index 02510e1ff17..6f8010bcab4 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateLocalVariableActionFactory.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateLocalVariableActionFactory.kt @@ -44,7 +44,7 @@ object CreateLocalVariableActionFactory : KotlinSingleIntentionActionFactory() { val propertyName = refExpr.getReferencedName() val container = refExpr.parents - .filter { it is KtBlockExpression || it is KtDeclarationWithBody } + .filter { it is KtBlockExpression || it is KtDeclarationWithBody && it.bodyExpression != null } .firstOrNull() as? KtElement ?: return null return object : CreateFromUsageFixBase(refExpr) { diff --git a/idea/testData/quickfix/createFromUsage/createVariable/localVariable/inAnnotation.kt b/idea/testData/quickfix/createFromUsage/createVariable/localVariable/inAnnotation.kt new file mode 100644 index 00000000000..705be854007 --- /dev/null +++ b/idea/testData/quickfix/createFromUsage/createVariable/localVariable/inAnnotation.kt @@ -0,0 +1,13 @@ +// "Create local variable 'defaultPreferencesName'" "false" +// ACTION: Create abstract property 'defaultPreferencesName' +// ACTION: Create parameter 'defaultPreferencesName' +// ACTION: Create property 'defaultPreferencesName' +// ACTION: Rename reference +// ERROR: Unresolved reference: defaultPreferencesName +// ERROR: Default value of annotation parameter must be a compile-time constant + +class AppModule { + val defaultPreferencesName = "defaultPreferences" + + annotation class Preferences(val type: String = defaultPreferencesName) +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 17909b639d2..8fea2054496 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -4204,6 +4204,11 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { runTest("idea/testData/quickfix/createFromUsage/createVariable/localVariable/inAccessorWithExpressionBody.kt"); } + @TestMetadata("inAnnotation.kt") + public void testInAnnotation() throws Exception { + runTest("idea/testData/quickfix/createFromUsage/createVariable/localVariable/inAnnotation.kt"); + } + @TestMetadata("inBinaryOperation.kt") public void testInBinaryOperation() throws Exception { runTest("idea/testData/quickfix/createFromUsage/createVariable/localVariable/inBinaryOperation.kt");