diff --git a/idea/resources/intentionDescriptions/AddAnnotationUseSiteTargetIntention/after.kt.template b/idea/resources/intentionDescriptions/AddAnnotationUseSiteTargetIntention/after.kt.template
new file mode 100644
index 00000000000..e6b59adfc8a
--- /dev/null
+++ b/idea/resources/intentionDescriptions/AddAnnotationUseSiteTargetIntention/after.kt.template
@@ -0,0 +1,6 @@
+annotation class Ann
+
+class Foo(
+ @field:Ann
+ var bar: String
+)
\ No newline at end of file
diff --git a/idea/resources/intentionDescriptions/AddAnnotationUseSiteTargetIntention/before.kt.template b/idea/resources/intentionDescriptions/AddAnnotationUseSiteTargetIntention/before.kt.template
new file mode 100644
index 00000000000..6da536aabba
--- /dev/null
+++ b/idea/resources/intentionDescriptions/AddAnnotationUseSiteTargetIntention/before.kt.template
@@ -0,0 +1,6 @@
+annotation class Ann
+
+class Foo(
+ @Ann
+ var bar: String
+)
\ No newline at end of file
diff --git a/idea/resources/intentionDescriptions/AddAnnotationUseSiteTargetIntention/description.html b/idea/resources/intentionDescriptions/AddAnnotationUseSiteTargetIntention/description.html
new file mode 100644
index 00000000000..fb30c35a413
--- /dev/null
+++ b/idea/resources/intentionDescriptions/AddAnnotationUseSiteTargetIntention/description.html
@@ -0,0 +1,5 @@
+
+
+This intention adds use-site target to annotation that can apply to multiple different Java elements.
+
+
\ No newline at end of file
diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml
index 54db35bf8fc..df2b1bc4531 100644
--- a/idea/src/META-INF/plugin.xml
+++ b/idea/src/META-INF/plugin.xml
@@ -1573,6 +1573,11 @@
Kotlin
+
+ org.jetbrains.kotlin.idea.intentions.AddAnnotationUseSiteTargetIntention
+ Kotlin
+
+
(
+ KtAnnotationEntry::class.java, "Add use-site target"
+) {
+
+ override fun isApplicableTo(element: KtAnnotationEntry, caretOffset: Int): Boolean {
+ val useSiteTargets = element.applicableUseSiteTargets()
+ if (useSiteTargets.isEmpty()) return false
+ if (useSiteTargets.size == 1) {
+ text = "Add use-site target '${useSiteTargets.first().renderName}'"
+ }
+ return true
+ }
+
+ override fun applyTo(element: KtAnnotationEntry, editor: Editor?) {
+ val project = editor?.project ?: return
+ val useSiteTargets = element.applicableUseSiteTargets()
+ CommandProcessor.getInstance().runUndoTransparentAction {
+ if (useSiteTargets.size == 1)
+ element.addUseSiteTarget(useSiteTargets.first(), project)
+ else
+ JBPopupFactory
+ .getInstance()
+ .createListPopup(createListPopupStep(element, useSiteTargets, project))
+ .showInBestPositionFor(editor)
+ }
+ }
+
+ private fun createListPopupStep(
+ annotationEntry: KtAnnotationEntry,
+ useSiteTargets: List,
+ project: Project
+ ): ListPopupStep<*> {
+ return object : BaseListPopupStep("Choose use-site target", useSiteTargets) {
+ override fun isAutoSelectionEnabled() = false
+
+ override fun onChosen(selectedValue: AnnotationUseSiteTarget, finalChoice: Boolean): PopupStep<*>? {
+ if (finalChoice) {
+ annotationEntry.addUseSiteTarget(selectedValue, project)
+ }
+ return PopupStep.FINAL_CHOICE
+ }
+
+ override fun getIconFor(value: AnnotationUseSiteTarget) = PlatformIcons.ANNOTATION_TYPE_ICON
+
+ override fun getTextFor(value: AnnotationUseSiteTarget) = value.renderName
+ }
+ }
+}
+
+private fun KtAnnotationEntry.applicableUseSiteTargets(): List {
+ if (useSiteTarget != null) return emptyList()
+ val annotationShortName = this.shortName ?: return emptyList()
+ val modifierList = getStrictParentOfType() ?: return emptyList()
+ val annotated = modifierList.owner as? KtElement ?: return emptyList()
+
+ val applicableTargets = when (annotated) {
+ is KtParameter ->
+ if (annotated.getStrictParentOfType() != null)
+ when (annotated.valOrVarKeyword?.node?.elementType) {
+ KtTokens.VAR_KEYWORD ->
+ listOf(CONSTRUCTOR_PARAMETER, FIELD, PROPERTY, PROPERTY_GETTER, PROPERTY_SETTER, SETTER_PARAMETER)
+ KtTokens.VAL_KEYWORD ->
+ listOf(CONSTRUCTOR_PARAMETER, FIELD, PROPERTY, PROPERTY_GETTER)
+ else ->
+ emptyList()
+ }
+ else
+ emptyList()
+ is KtProperty ->
+ when {
+ annotated.delegate != null ->
+ listOf(PROPERTY, PROPERTY_GETTER, PROPERTY_DELEGATE_FIELD)
+ !annotated.isLocal -> {
+ val backingField = LightClassUtil.getLightClassPropertyMethods(annotated).backingField
+ if (annotated.isVar) {
+ if (backingField != null)
+ listOf(FIELD, PROPERTY, PROPERTY_GETTER, PROPERTY_SETTER, SETTER_PARAMETER)
+ else
+ listOf(PROPERTY, PROPERTY_GETTER, PROPERTY_SETTER, SETTER_PARAMETER)
+ } else {
+ if (backingField != null)
+ listOf(FIELD, PROPERTY, PROPERTY_GETTER)
+ else
+ listOf(PROPERTY, PROPERTY_GETTER)
+ }
+ }
+ else ->
+ emptyList()
+ }
+ is KtTypeReference -> listOf(RECEIVER)
+ else -> emptyList()
+ }
+
+ val existingTargets = modifierList.annotationEntries.mapNotNull {
+ if (annotationShortName == it.shortName) it.useSiteTarget?.getAnnotationUseSiteTarget() else null
+ }
+
+ val targets = applicableTargets.filter { it !in existingTargets }
+
+ return if (ApplicationManager.getApplication().isUnitTestMode) {
+ val chosenTarget = containingKtFile.findDescendantOfType()
+ ?.takeIf { it.text.startsWith("// CHOOSE_USE_SITE_TARGET:") }
+ ?.text
+ ?.split(":")
+ ?.getOrNull(1)
+ ?.trim()
+ if (chosenTarget.isNullOrBlank())
+ targets.take(1)
+ else
+ targets.filter { it.renderName == chosenTarget }.take(1)
+ } else {
+ targets
+ }
+}
+
+private fun KtAnnotationEntry.addUseSiteTarget(useSiteTarget: AnnotationUseSiteTarget, project: Project) {
+ project.executeWriteCommand("Add use-site target") {
+ replace(KtPsiFactory(this).createAnnotationEntry("@${useSiteTarget.renderName}:$shortName"))
+ }
+}
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/.intention b/idea/testData/intentions/addAnnotationUseSiteTarget/.intention
new file mode 100644
index 00000000000..7a0a90e4ea7
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/.intention
@@ -0,0 +1 @@
+org.jetbrains.kotlin.idea.intentions.AddAnnotationUseSiteTargetIntention
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/parameter.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/parameter.kt
new file mode 100644
index 00000000000..9a1ecf7e3e5
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/parameter.kt
@@ -0,0 +1,5 @@
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Constructor(@A foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/secondary.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/secondary.kt
new file mode 100644
index 00000000000..6360a5d3996
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/secondary.kt
@@ -0,0 +1,8 @@
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Constructor {
+ constructor(@A foo: String) {
+ }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/delegate.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/delegate.kt
new file mode 100644
index 00000000000..0e7008b7159
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/delegate.kt
@@ -0,0 +1,6 @@
+// CHOOSE_USE_SITE_TARGET: delegate
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Constructor(@A val foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/field.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/field.kt
new file mode 100644
index 00000000000..afd9cf6eb04
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/field.kt
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: field
+
+annotation class A
+
+class Constructor(@A val foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/field.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/field.kt.after
new file mode 100644
index 00000000000..4a63a43c4cd
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/field.kt.after
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: field
+
+annotation class A
+
+class Constructor(@field:A val foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/file.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/file.kt
new file mode 100644
index 00000000000..ec09374f5c2
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/file.kt
@@ -0,0 +1,6 @@
+// CHOOSE_USE_SITE_TARGET: file
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Constructor(@A val foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/get.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/get.kt
new file mode 100644
index 00000000000..3b74de0b366
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/get.kt
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+class Constructor(@A val foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/get.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/get.kt.after
new file mode 100644
index 00000000000..5a97bedda64
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/get.kt.after
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+class Constructor(@get:A val foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/param.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/param.kt
new file mode 100644
index 00000000000..fc80304da89
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/param.kt
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: param
+
+annotation class A
+
+class Constructor(@A val foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/param.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/param.kt.after
new file mode 100644
index 00000000000..e2767bc8dc4
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/param.kt.after
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: param
+
+annotation class A
+
+class Constructor(@param:A val foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/property.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/property.kt
new file mode 100644
index 00000000000..63966baf19c
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/property.kt
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: property
+
+annotation class A
+
+class Constructor(@A val foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/property.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/property.kt.after
new file mode 100644
index 00000000000..b6c2137e5fe
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/property.kt.after
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: property
+
+annotation class A
+
+class Constructor(@property:A val foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/receiver.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/receiver.kt
new file mode 100644
index 00000000000..ed85d9a8878
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/receiver.kt
@@ -0,0 +1,6 @@
+// CHOOSE_USE_SITE_TARGET: receiver
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Constructor(@A val foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/set.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/set.kt
new file mode 100644
index 00000000000..4048b85c5fc
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/set.kt
@@ -0,0 +1,6 @@
+// CHOOSE_USE_SITE_TARGET: set
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Constructor(@A val foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/setparam.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/setparam.kt
new file mode 100644
index 00000000000..1acb99c0d40
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/setparam.kt
@@ -0,0 +1,6 @@
+// CHOOSE_USE_SITE_TARGET: setparam
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Constructor(@A val foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/delegate.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/delegate.kt
new file mode 100644
index 00000000000..a060ec507f2
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/delegate.kt
@@ -0,0 +1,6 @@
+// CHOOSE_USE_SITE_TARGET: delegate
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Constructor(@A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/field.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/field.kt
new file mode 100644
index 00000000000..4fe92c5fa9a
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/field.kt
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: field
+
+annotation class A
+
+class Constructor(@A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/field.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/field.kt.after
new file mode 100644
index 00000000000..997d20dea7a
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/field.kt.after
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: field
+
+annotation class A
+
+class Constructor(@field:A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/file.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/file.kt
new file mode 100644
index 00000000000..13ad583de83
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/file.kt
@@ -0,0 +1,6 @@
+// CHOOSE_USE_SITE_TARGET: file
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Constructor(@A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/get.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/get.kt
new file mode 100644
index 00000000000..4c33035b305
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/get.kt
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+class Constructor(@A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/get.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/get.kt.after
new file mode 100644
index 00000000000..6564a0f901d
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/get.kt.after
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+class Constructor(@get:A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/param.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/param.kt
new file mode 100644
index 00000000000..21e0de4dc94
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/param.kt
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: param
+
+annotation class A
+
+class Constructor(@A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/param.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/param.kt.after
new file mode 100644
index 00000000000..5bc3783d31f
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/param.kt.after
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: param
+
+annotation class A
+
+class Constructor(@param:A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/property.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/property.kt
new file mode 100644
index 00000000000..56043fefd13
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/property.kt
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: property
+
+annotation class A
+
+class Constructor(@A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/property.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/property.kt.after
new file mode 100644
index 00000000000..9f17a1c8ed9
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/property.kt.after
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: property
+
+annotation class A
+
+class Constructor(@property:A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/receiver.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/receiver.kt
new file mode 100644
index 00000000000..1f37680bb5d
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/receiver.kt
@@ -0,0 +1,6 @@
+// CHOOSE_USE_SITE_TARGET: receiver
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Constructor(@A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/set.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/set.kt
new file mode 100644
index 00000000000..4d749db7997
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/set.kt
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: set
+
+annotation class A
+
+class Constructor(@A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/set.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/set.kt.after
new file mode 100644
index 00000000000..642fd35e3fd
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/set.kt.after
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: set
+
+annotation class A
+
+class Constructor(@set:A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/setparam.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/setparam.kt
new file mode 100644
index 00000000000..bf446e7e574
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/setparam.kt
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: setparam
+
+annotation class A
+
+class Constructor(@A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/setparam.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/setparam.kt.after
new file mode 100644
index 00000000000..30e4fb2fccf
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/setparam.kt.after
@@ -0,0 +1,5 @@
+// CHOOSE_USE_SITE_TARGET: setparam
+
+annotation class A
+
+class Constructor(@setparam:A var foo: String)
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/delegate.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/delegate.kt
new file mode 100644
index 00000000000..5e1c75e6461
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/delegate.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: delegate
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+fun @C Extension.foo(): String = ""
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/field.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/field.kt
new file mode 100644
index 00000000000..63e3076686c
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/field.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: field
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+fun @C Extension.foo(): String = ""
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/file.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/file.kt
new file mode 100644
index 00000000000..ae0c32c8e5f
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/file.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: file
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+fun @C Extension.foo(): String = ""
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/get.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/get.kt
new file mode 100644
index 00000000000..d9871694a73
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/get.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: get
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+fun @C Extension.foo(): String = ""
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/param.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/param.kt
new file mode 100644
index 00000000000..a8e7a032000
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/param.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: param
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+fun @C Extension.foo(): String = ""
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/property.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/property.kt
new file mode 100644
index 00000000000..6efa0a3636d
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/property.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: property
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+fun @C Extension.foo(): String = ""
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/receiver.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/receiver.kt
new file mode 100644
index 00000000000..c660bf26285
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/receiver.kt
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: receiver
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+fun @C Extension.foo(): String = ""
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/receiver.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/receiver.kt.after
new file mode 100644
index 00000000000..e035003276e
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/receiver.kt.after
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: receiver
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+fun @receiver:C Extension.foo(): String = ""
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/set.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/set.kt
new file mode 100644
index 00000000000..43c1b3cdfc6
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/set.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: set
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+fun @C Extension.foo(): String = ""
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/setparam.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/setparam.kt
new file mode 100644
index 00000000000..61c8f96f552
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/setparam.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: setparam
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+fun @C Extension.foo(): String = ""
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/delegate.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/delegate.kt
new file mode 100644
index 00000000000..c96f257fc42
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/delegate.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: delegate
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+val @C Extension.bar: String
+ get() = ""
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/field.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/field.kt
new file mode 100644
index 00000000000..50cdd075387
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/field.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: field
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+val @C Extension.bar: String
+ get() = ""
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/file.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/file.kt
new file mode 100644
index 00000000000..ab02e4fb541
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/file.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: file
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+val @C Extension.bar: String
+ get() = ""
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/get.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/get.kt
new file mode 100644
index 00000000000..96c59390efd
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/get.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: get
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+val @C Extension.bar: String
+ get() = ""
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/param.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/param.kt
new file mode 100644
index 00000000000..44a046de22c
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/param.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: param
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+val @C Extension.bar: String
+ get() = ""
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/property.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/property.kt
new file mode 100644
index 00000000000..2f9c4c157cd
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/property.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: property
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+val @C Extension.bar: String
+ get() = ""
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/receiver.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/receiver.kt
new file mode 100644
index 00000000000..aca709f5ce8
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/receiver.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: receiver
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+val @C Extension.bar: String
+ get() = ""
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/receiver.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/receiver.kt.after
new file mode 100644
index 00000000000..d5f2c7d94bd
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/receiver.kt.after
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: receiver
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+val @receiver:C Extension.bar: String
+ get() = ""
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/set.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/set.kt
new file mode 100644
index 00000000000..0e3638378a5
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/set.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: set
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+val @C Extension.bar: String
+ get() = ""
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/setparam.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/setparam.kt
new file mode 100644
index 00000000000..afd3109d4d6
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/setparam.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: setparam
+// IS_APPLICABLE: false
+
+@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER)
+annotation class C
+
+class Extension
+
+val @C Extension.bar: String
+ get() = ""
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget1.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget1.kt
new file mode 100644
index 00000000000..7ddaa2f3811
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget1.kt
@@ -0,0 +1,8 @@
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Test {
+ @get:A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget2.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget2.kt
new file mode 100644
index 00000000000..8691f6a6f74
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget2.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: get
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Test {
+ @get:A
+ @A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget3.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget3.kt
new file mode 100644
index 00000000000..7db60924614
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget3.kt
@@ -0,0 +1,11 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+annotation class B
+
+class Test {
+ @get:B
+ @A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget3.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget3.kt.after
new file mode 100644
index 00000000000..817ce36bfa3
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget3.kt.after
@@ -0,0 +1,11 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+annotation class B
+
+class Test {
+ @get:B
+ @get:A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/delegate.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/delegate.kt
new file mode 100644
index 00000000000..a3f9ded077d
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/delegate.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: delegate
+// WITH_RUNTIME
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String by lazy { "" }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/delegate.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/delegate.kt.after
new file mode 100644
index 00000000000..8c6c867375a
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/delegate.kt.after
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: delegate
+// WITH_RUNTIME
+
+annotation class A
+
+class Property {
+ @delegate:A
+ val foo: String by lazy { "" }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/field.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/field.kt
new file mode 100644
index 00000000000..8e85630b161
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/field.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: field
+// WITH_RUNTIME
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String by lazy { "" }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/file.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/file.kt
new file mode 100644
index 00000000000..6ab58ef1e73
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/file.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: file
+// WITH_RUNTIME
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String by lazy { "" }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/get.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/get.kt
new file mode 100644
index 00000000000..7fdf2ba0eb7
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/get.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: get
+// WITH_RUNTIME
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String by lazy { "" }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/get.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/get.kt.after
new file mode 100644
index 00000000000..e3b9e92515d
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/get.kt.after
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: get
+// WITH_RUNTIME
+
+annotation class A
+
+class Property {
+ @get:A
+ val foo: String by lazy { "" }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/param.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/param.kt
new file mode 100644
index 00000000000..d8a7d2fc797
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/param.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: param
+// WITH_RUNTIME
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String by lazy { "" }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/property.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/property.kt
new file mode 100644
index 00000000000..ef1d9332417
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/property.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: property
+// WITH_RUNTIME
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String by lazy { "" }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/property.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/property.kt.after
new file mode 100644
index 00000000000..84bc3657fcd
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/property.kt.after
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: property
+// WITH_RUNTIME
+
+annotation class A
+
+class Property {
+ @property:A
+ val foo: String by lazy { "" }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/receiver.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/receiver.kt
new file mode 100644
index 00000000000..eb812cab4b2
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/receiver.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: receiver
+// WITH_RUNTIME
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String by lazy { "" }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/set.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/set.kt
new file mode 100644
index 00000000000..a8977ad1012
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/set.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: set
+// WITH_RUNTIME
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String by lazy { "" }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/setparam.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/setparam.kt
new file mode 100644
index 00000000000..9c48981109a
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/setparam.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: setparam
+// WITH_RUNTIME
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String by lazy { "" }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/local.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/local.kt
new file mode 100644
index 00000000000..90a1fd10b8a
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/local.kt
@@ -0,0 +1,10 @@
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ fun test() {
+ @A
+ val foo: String = ""
+ }
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/delegate.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/delegate.kt
new file mode 100644
index 00000000000..0cda6c559a5
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/delegate.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: delegate
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/field.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/field.kt
new file mode 100644
index 00000000000..08382437d3b
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/field.kt
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: field
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/field.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/field.kt.after
new file mode 100644
index 00000000000..0a3d23d28ca
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/field.kt.after
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: field
+
+annotation class A
+
+class Property {
+ @field:A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/file.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/file.kt
new file mode 100644
index 00000000000..0b418b462f2
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/file.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: file
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/get.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/get.kt
new file mode 100644
index 00000000000..f9249292979
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/get.kt
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/get.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/get.kt.after
new file mode 100644
index 00000000000..0fe298e3cc4
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/get.kt.after
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+class Property {
+ @get:A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/param.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/param.kt
new file mode 100644
index 00000000000..54408645b5e
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/param.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: param
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/property.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/property.kt
new file mode 100644
index 00000000000..30925396b20
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/property.kt
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: property
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/property.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/property.kt.after
new file mode 100644
index 00000000000..10c02af0618
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/property.kt.after
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: property
+
+annotation class A
+
+class Property {
+ @property:A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/receiver.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/receiver.kt
new file mode 100644
index 00000000000..612efb6fe12
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/receiver.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: receiver
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/set.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/set.kt
new file mode 100644
index 00000000000..4eca3db68c0
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/set.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: set
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/setparam.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/setparam.kt
new file mode 100644
index 00000000000..b5ed369a1de
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/val/setparam.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: setparam
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/delegate.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/delegate.kt
new file mode 100644
index 00000000000..13eb105c809
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/delegate.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: delegate
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String
+ get() = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/field.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/field.kt
new file mode 100644
index 00000000000..f2b57595938
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/field.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: field
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String
+ get() = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/file.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/file.kt
new file mode 100644
index 00000000000..f3429715b6b
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/file.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: file
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String
+ get() = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/get.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/get.kt
new file mode 100644
index 00000000000..266d6682864
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/get.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String
+ get() = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/get.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/get.kt.after
new file mode 100644
index 00000000000..8843b0608c6
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/get.kt.after
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+class Property {
+ @get:A
+ val foo: String
+ get() = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/param.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/param.kt
new file mode 100644
index 00000000000..47911cfd896
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/param.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: param
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String
+ get() = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/property.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/property.kt
new file mode 100644
index 00000000000..6f0aaf850d2
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/property.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: property
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String
+ get() = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/property.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/property.kt.after
new file mode 100644
index 00000000000..4c324485df3
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/property.kt.after
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: property
+
+annotation class A
+
+class Property {
+ @property:A
+ val foo: String
+ get() = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/receiver.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/receiver.kt
new file mode 100644
index 00000000000..47a795873e8
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/receiver.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: receiver
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String
+ get() = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/set.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/set.kt
new file mode 100644
index 00000000000..3774d4cc1e2
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/set.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: set
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String
+ get() = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/setparam.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/setparam.kt
new file mode 100644
index 00000000000..e96b5ba46f4
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/setparam.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: setparam
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ val foo: String
+ get() = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/delegate.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/delegate.kt
new file mode 100644
index 00000000000..b06745b7fa1
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/delegate.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: delegate
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/field.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/field.kt
new file mode 100644
index 00000000000..bd395380903
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/field.kt
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: field
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/field.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/field.kt.after
new file mode 100644
index 00000000000..6e4110bf622
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/field.kt.after
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: field
+
+annotation class A
+
+class Property {
+ @field:A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/file.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/file.kt
new file mode 100644
index 00000000000..4c6bee0086a
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/file.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: file
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/get.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/get.kt
new file mode 100644
index 00000000000..1bf1041b09b
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/get.kt
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/get.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/get.kt.after
new file mode 100644
index 00000000000..235477715d2
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/get.kt.after
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+class Property {
+ @get:A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/param.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/param.kt
new file mode 100644
index 00000000000..bed55e969e0
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/param.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: param
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/property.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/property.kt
new file mode 100644
index 00000000000..3986e7cc5f6
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/property.kt
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: property
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/property.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/property.kt.after
new file mode 100644
index 00000000000..cba6eef779e
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/property.kt.after
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: property
+
+annotation class A
+
+class Property {
+ @property:A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/receiver.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/receiver.kt
new file mode 100644
index 00000000000..59794cf489f
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/receiver.kt
@@ -0,0 +1,9 @@
+// CHOOSE_USE_SITE_TARGET: receiver
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/set.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/set.kt
new file mode 100644
index 00000000000..e24a5b7711d
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/set.kt
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: set
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/set.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/set.kt.after
new file mode 100644
index 00000000000..064da8af564
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/set.kt.after
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: set
+
+annotation class A
+
+class Property {
+ @set:A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/setparam.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/setparam.kt
new file mode 100644
index 00000000000..3fa3c0a4cea
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/setparam.kt
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: setparam
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/setparam.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/setparam.kt.after
new file mode 100644
index 00000000000..3e45efe3a28
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/var/setparam.kt.after
@@ -0,0 +1,8 @@
+// CHOOSE_USE_SITE_TARGET: setparam
+
+annotation class A
+
+class Property {
+ @setparam:A
+ var foo: String = ""
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/delegate.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/delegate.kt
new file mode 100644
index 00000000000..c76474243d1
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/delegate.kt
@@ -0,0 +1,11 @@
+// CHOOSE_USE_SITE_TARGET: delegate
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String
+ get() = ""
+ set(p) {}
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/field.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/field.kt
new file mode 100644
index 00000000000..524069d4fde
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/field.kt
@@ -0,0 +1,11 @@
+// CHOOSE_USE_SITE_TARGET: field
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String
+ get() = ""
+ set(p) {}
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/file.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/file.kt
new file mode 100644
index 00000000000..b1258589a8a
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/file.kt
@@ -0,0 +1,11 @@
+// CHOOSE_USE_SITE_TARGET: file
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String
+ get() = ""
+ set(p) {}
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/get.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/get.kt
new file mode 100644
index 00000000000..824f48f42a6
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/get.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String
+ get() = ""
+ set(p) {}
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/get.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/get.kt.after
new file mode 100644
index 00000000000..249d675d9fb
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/get.kt.after
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: get
+
+annotation class A
+
+class Property {
+ @get:A
+ var foo: String
+ get() = ""
+ set(p) {}
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/param.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/param.kt
new file mode 100644
index 00000000000..d55e575ed49
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/param.kt
@@ -0,0 +1,11 @@
+// CHOOSE_USE_SITE_TARGET: param
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String
+ get() = ""
+ set(p) {}
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/property.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/property.kt
new file mode 100644
index 00000000000..ba01d77a417
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/property.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: property
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String
+ get() = ""
+ set(p) {}
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/property.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/property.kt.after
new file mode 100644
index 00000000000..df2b7df468e
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/property.kt.after
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: property
+
+annotation class A
+
+class Property {
+ @property:A
+ var foo: String
+ get() = ""
+ set(p) {}
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/receiver.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/receiver.kt
new file mode 100644
index 00000000000..d4e6247039d
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/receiver.kt
@@ -0,0 +1,11 @@
+// CHOOSE_USE_SITE_TARGET: receiver
+// IS_APPLICABLE: false
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String
+ get() = ""
+ set(p) {}
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/set.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/set.kt
new file mode 100644
index 00000000000..c6bfed69d71
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/set.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: set
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String
+ get() = ""
+ set(p) {}
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/set.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/set.kt.after
new file mode 100644
index 00000000000..f2aa2a286d0
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/set.kt.after
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: set
+
+annotation class A
+
+class Property {
+ @set:A
+ var foo: String
+ get() = ""
+ set(p) {}
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/setparam.kt b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/setparam.kt
new file mode 100644
index 00000000000..d79ec7ddb88
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/setparam.kt
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: setparam
+
+annotation class A
+
+class Property {
+ @A
+ var foo: String
+ get() = ""
+ set(p) {}
+}
\ No newline at end of file
diff --git a/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/setparam.kt.after b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/setparam.kt.after
new file mode 100644
index 00000000000..a28a970c79a
--- /dev/null
+++ b/idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/setparam.kt.after
@@ -0,0 +1,10 @@
+// CHOOSE_USE_SITE_TARGET: setparam
+
+annotation class A
+
+class Property {
+ @setparam:A
+ var foo: String
+ get() = ""
+ set(p) {}
+}
\ No newline at end of file
diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java
index 7330ec85645..e454f55e82e 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java
+++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java
@@ -25,6 +25,645 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
}
+ @TestMetadata("idea/testData/intentions/addAnnotationUseSiteTarget")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class AddAnnotationUseSiteTarget extends AbstractIntentionTest {
+ public void testAllFilesPresentInAddAnnotationUseSiteTarget() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addAnnotationUseSiteTarget"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
+ }
+
+ @TestMetadata("hasTarget1.kt")
+ public void testHasTarget1() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget1.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("hasTarget2.kt")
+ public void testHasTarget2() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget2.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("hasTarget3.kt")
+ public void testHasTarget3() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/hasTarget3.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class Constructor extends AbstractIntentionTest {
+ public void testAllFilesPresentInConstructor() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addAnnotationUseSiteTarget/constructor"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
+ }
+
+ @TestMetadata("parameter.kt")
+ public void testParameter() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/parameter.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("secondary.kt")
+ public void testSecondary() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/secondary.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class Val extends AbstractIntentionTest {
+ public void testAllFilesPresentInVal() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
+ }
+
+ @TestMetadata("delegate.kt")
+ public void testDelegate() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/delegate.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("field.kt")
+ public void testField() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/field.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("file.kt")
+ public void testFile() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/file.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("get.kt")
+ public void testGet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/get.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("param.kt")
+ public void testParam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/param.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("property.kt")
+ public void testProperty() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/property.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("receiver.kt")
+ public void testReceiver() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/receiver.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("set.kt")
+ public void testSet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/set.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("setparam.kt")
+ public void testSetparam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/val/setparam.kt");
+ doTest(fileName);
+ }
+ }
+
+ @TestMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class Var extends AbstractIntentionTest {
+ public void testAllFilesPresentInVar() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
+ }
+
+ @TestMetadata("delegate.kt")
+ public void testDelegate() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/delegate.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("field.kt")
+ public void testField() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/field.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("file.kt")
+ public void testFile() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/file.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("get.kt")
+ public void testGet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/get.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("param.kt")
+ public void testParam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/param.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("property.kt")
+ public void testProperty() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/property.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("receiver.kt")
+ public void testReceiver() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/receiver.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("set.kt")
+ public void testSet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/set.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("setparam.kt")
+ public void testSetparam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/constructor/var/setparam.kt");
+ doTest(fileName);
+ }
+ }
+ }
+
+ @TestMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class Extension extends AbstractIntentionTest {
+ public void testAllFilesPresentInExtension() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addAnnotationUseSiteTarget/extension"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
+ }
+
+ @TestMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/function")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class Function extends AbstractIntentionTest {
+ public void testAllFilesPresentInFunction() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addAnnotationUseSiteTarget/extension/function"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
+ }
+
+ @TestMetadata("delegate.kt")
+ public void testDelegate() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/delegate.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("field.kt")
+ public void testField() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/field.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("file.kt")
+ public void testFile() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/file.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("get.kt")
+ public void testGet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/get.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("param.kt")
+ public void testParam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/param.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("property.kt")
+ public void testProperty() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/property.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("receiver.kt")
+ public void testReceiver() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/receiver.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("set.kt")
+ public void testSet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/set.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("setparam.kt")
+ public void testSetparam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/function/setparam.kt");
+ doTest(fileName);
+ }
+ }
+
+ @TestMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/property")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class Property extends AbstractIntentionTest {
+ public void testAllFilesPresentInProperty() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addAnnotationUseSiteTarget/extension/property"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
+ }
+
+ @TestMetadata("delegate.kt")
+ public void testDelegate() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/delegate.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("field.kt")
+ public void testField() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/field.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("file.kt")
+ public void testFile() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/file.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("get.kt")
+ public void testGet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/get.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("param.kt")
+ public void testParam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/param.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("property.kt")
+ public void testProperty() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/property.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("receiver.kt")
+ public void testReceiver() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/receiver.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("set.kt")
+ public void testSet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/set.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("setparam.kt")
+ public void testSetparam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/extension/property/setparam.kt");
+ doTest(fileName);
+ }
+ }
+ }
+
+ @TestMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class Property extends AbstractIntentionTest {
+ public void testAllFilesPresentInProperty() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addAnnotationUseSiteTarget/property"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
+ }
+
+ @TestMetadata("local.kt")
+ public void testLocal() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/local.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class Delegate extends AbstractIntentionTest {
+ public void testAllFilesPresentInDelegate() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
+ }
+
+ @TestMetadata("delegate.kt")
+ public void testDelegate() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/delegate.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("field.kt")
+ public void testField() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/field.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("file.kt")
+ public void testFile() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/file.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("get.kt")
+ public void testGet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/get.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("param.kt")
+ public void testParam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/param.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("property.kt")
+ public void testProperty() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/property.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("receiver.kt")
+ public void testReceiver() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/receiver.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("set.kt")
+ public void testSet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/set.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("setparam.kt")
+ public void testSetparam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/delegate/setparam.kt");
+ doTest(fileName);
+ }
+ }
+
+ @TestMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/val")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class Val extends AbstractIntentionTest {
+ public void testAllFilesPresentInVal() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addAnnotationUseSiteTarget/property/val"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
+ }
+
+ @TestMetadata("delegate.kt")
+ public void testDelegate() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/val/delegate.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("field.kt")
+ public void testField() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/val/field.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("file.kt")
+ public void testFile() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/val/file.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("get.kt")
+ public void testGet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/val/get.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("param.kt")
+ public void testParam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/val/param.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("property.kt")
+ public void testProperty() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/val/property.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("receiver.kt")
+ public void testReceiver() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/val/receiver.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("set.kt")
+ public void testSet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/val/set.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("setparam.kt")
+ public void testSetparam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/val/setparam.kt");
+ doTest(fileName);
+ }
+ }
+
+ @TestMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class ValNoBacking extends AbstractIntentionTest {
+ public void testAllFilesPresentInValNoBacking() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
+ }
+
+ @TestMetadata("delegate.kt")
+ public void testDelegate() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/delegate.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("field.kt")
+ public void testField() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/field.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("file.kt")
+ public void testFile() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/file.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("get.kt")
+ public void testGet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/get.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("param.kt")
+ public void testParam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/param.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("property.kt")
+ public void testProperty() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/property.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("receiver.kt")
+ public void testReceiver() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/receiver.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("set.kt")
+ public void testSet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/set.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("setparam.kt")
+ public void testSetparam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/valNoBacking/setparam.kt");
+ doTest(fileName);
+ }
+ }
+
+ @TestMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/var")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class Var extends AbstractIntentionTest {
+ public void testAllFilesPresentInVar() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addAnnotationUseSiteTarget/property/var"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
+ }
+
+ @TestMetadata("delegate.kt")
+ public void testDelegate() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/var/delegate.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("field.kt")
+ public void testField() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/var/field.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("file.kt")
+ public void testFile() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/var/file.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("get.kt")
+ public void testGet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/var/get.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("param.kt")
+ public void testParam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/var/param.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("property.kt")
+ public void testProperty() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/var/property.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("receiver.kt")
+ public void testReceiver() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/var/receiver.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("set.kt")
+ public void testSet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/var/set.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("setparam.kt")
+ public void testSetparam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/var/setparam.kt");
+ doTest(fileName);
+ }
+ }
+
+ @TestMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class VarNoBacking extends AbstractIntentionTest {
+ public void testAllFilesPresentInVarNoBacking() throws Exception {
+ KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true);
+ }
+
+ @TestMetadata("delegate.kt")
+ public void testDelegate() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/delegate.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("field.kt")
+ public void testField() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/field.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("file.kt")
+ public void testFile() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/file.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("get.kt")
+ public void testGet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/get.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("param.kt")
+ public void testParam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/param.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("property.kt")
+ public void testProperty() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/property.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("receiver.kt")
+ public void testReceiver() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/receiver.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("set.kt")
+ public void testSet() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/set.kt");
+ doTest(fileName);
+ }
+
+ @TestMetadata("setparam.kt")
+ public void testSetparam() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/addAnnotationUseSiteTarget/property/varNoBacking/setparam.kt");
+ doTest(fileName);
+ }
+ }
+ }
+ }
+
@TestMetadata("idea/testData/intentions/addBraces")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)