From 9a9e703e805e6b5da8a8f6260215c6dea5a501f3 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Wed, 15 Aug 2018 16:12:33 +0300 Subject: [PATCH] Do not suggest "create abstract property" inside annotation --- .../createCallable/CreateCallableFromCallActionFactory.kt | 5 ++--- .../createVariable/localVariable/inAnnotation.kt | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateCallableFromCallActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateCallableFromCallActionFactory.kt index 73f6839cb31..ab1d13df6d6 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateCallableFromCallActionFactory.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateCallableFromCallActionFactory.kt @@ -149,10 +149,9 @@ sealed class CreateCallableFromCallActionFactory( if (originalReceiverTypeInfo !is TypeInfo.ByType) return null receiverTypeInfo = originalReceiverTypeInfo receiverType = receiverTypeInfo.theType - } - else { + } else { val containingClass = originalExpression.getStrictParentOfType() as? KtClass ?: return null - if (containingClass is KtEnumEntry) return null + if (containingClass is KtEnumEntry || containingClass.isAnnotation()) return null receiverType = (containingClass.unsafeResolveToDescriptor() as ClassDescriptor).defaultType receiverTypeInfo = TypeInfo(receiverType, Variance.IN_VARIANCE).ofThis() } diff --git a/idea/testData/quickfix/createFromUsage/createVariable/localVariable/inAnnotation.kt b/idea/testData/quickfix/createFromUsage/createVariable/localVariable/inAnnotation.kt index 705be854007..717ed3c8f57 100644 --- a/idea/testData/quickfix/createFromUsage/createVariable/localVariable/inAnnotation.kt +++ b/idea/testData/quickfix/createFromUsage/createVariable/localVariable/inAnnotation.kt @@ -1,5 +1,4 @@ // "Create local variable 'defaultPreferencesName'" "false" -// ACTION: Create abstract property 'defaultPreferencesName' // ACTION: Create parameter 'defaultPreferencesName' // ACTION: Create property 'defaultPreferencesName' // ACTION: Rename reference