Do not try to add type parameter to non-writable declaration (EA-209570)

This commit is contained in:
Ilya Kirillov
2019-09-26 19:20:46 +03:00
parent a24da280ca
commit 21429f0b94
3 changed files with 3 additions and 0 deletions
@@ -90,6 +90,7 @@ object CreateTypeParameterByUnresolvedRefActionFactory : KotlinIntentionActionFa
QuickFixWithDelegateFactory factory@{
val originalElement = originalElementPointer.element ?: return@factory null
val data = quickFixDataFactory()?.copy(declaration = it) ?: return@factory null
if (!data.declaration.isWritable) return@factory null
CreateTypeParameterFromUsageFix(originalElement, data, presentTypeParameterNames = true)
}
}
@@ -64,6 +64,7 @@ class CreateTypeParameterFromUsageFix(
fun doInvoke(): List<KtTypeParameter> {
val declaration = data.declaration
if (!declaration.isWritable) return emptyList()
val project = declaration.project
val usages = project.runSynchronouslyWithProgress("Searching ${declaration.name}...", true) {
runReadAction {
@@ -79,6 +79,7 @@ object CreateTypeParameterUnmatchedTypeArgumentActionFactory : KotlinIntentionAc
return QuickFixWithDelegateFactory factory@ {
val originalElement = originalElementPointer.element ?: return@factory null
val data = quickFixDataFactory() ?: return@factory null
if (!data.declaration.isWritable) return@factory null
CreateTypeParameterFromUsageFix(originalElement, data, false)
}.let(::listOf)
}