[kotlin] Share AddStarProjectionsFix and ChangeToStarProjectionFix between K1 and K2

^KTIJ-29570

GitOrigin-RevId: a3d1f3098798ba6c60241fd306b45df9b10cc815
This commit is contained in:
Andrey Cherkasov
2024-05-23 01:32:23 +00:00
committed by intellij-monorepo-bot
parent 4749235c9a
commit 1bf8661125
60 changed files with 165 additions and 197 deletions
@@ -10,11 +10,11 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtDeclarationSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.intentions.KotlinPsiUpdateModCommandAction
import org.jetbrains.kotlin.idea.codeinsight.api.applicators.fixes.KotlinQuickFixFactory
import org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
import org.jetbrains.kotlin.idea.quickfix.StarProjectionUtils
import org.jetbrains.kotlin.idea.quickfix.StarProjectionUtils.starProjectionFixFamilyName
import org.jetbrains.kotlin.psi.KtPsiFactory
import org.jetbrains.kotlin.psi.KtTypeReference
import org.jetbrains.kotlin.psi.KtUserType
internal object AddStarProjectionsFixFactory {
val addStarProjectionsFixFactory = KotlinQuickFixFactory.ModCommandBased { diagnostic: KtFirDiagnostic.NoTypeArgumentsOnRhs ->
@@ -56,27 +56,6 @@ internal object AddStarProjectionsFixFactory {
override fun getFamilyName(): String = starProjectionFixFamilyName
}
private class AddStarProjectionsFix(
element: KtUserType,
private val argumentCount: Int,
) : KotlinPsiUpdateModCommandAction.ElementBased<KtUserType, Unit>(element, Unit) {
override fun invoke(
actionContext: ActionContext,
element: KtUserType,
elementContext: Unit,
updater: ModPsiUpdater,
) = StarProjectionUtils.addStarProjections(actionContext.project, element, argumentCount)
override fun getFamilyName() = starProjectionFixFamilyName
override fun getActionName(
actionContext: ActionContext,
element: KtUserType,
elementContext: Unit,
): String = StarProjectionUtils.addStarProjectionsActionName(argumentCount)
}
}
context(KtAnalysisSession)
@@ -1,8 +1,6 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.idea.k2.codeinsight.fixes
import com.intellij.modcommand.ActionContext
import com.intellij.modcommand.ModPsiUpdater
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
import org.jetbrains.kotlin.analysis.api.KtStarTypeProjection
@@ -12,9 +10,8 @@ import org.jetbrains.kotlin.analysis.api.fir.diagnostics.KtFirDiagnostic
import org.jetbrains.kotlin.analysis.api.types.KtNonErrorClassType
import org.jetbrains.kotlin.analysis.api.types.KtTypeParameterType
import org.jetbrains.kotlin.idea.base.psi.typeArguments
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.intentions.KotlinPsiUpdateModCommandAction
import org.jetbrains.kotlin.idea.codeinsight.api.applicators.fixes.KotlinQuickFixFactory
import org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
import org.jetbrains.kotlin.idea.quickfix.StarProjectionUtils
import org.jetbrains.kotlin.idea.quickfix.StarProjectionUtils.isAsKeyword
import org.jetbrains.kotlin.idea.quickfix.StarProjectionUtils.isOnJvm
@@ -76,24 +73,4 @@ internal object ChangeToStarProjectionFixFactory {
return if (typeElement.typeArgumentsAsTypes.isEmpty()) null
else ChangeToStarProjectionFix(typeElement)
}
private class ChangeToStarProjectionFix(
element: KtTypeElement,
) : KotlinPsiUpdateModCommandAction.ElementBased<KtTypeElement, Unit>(element, Unit) {
override fun invoke(
actionContext: ActionContext,
element: KtTypeElement,
elementContext: Unit,
updater: ModPsiUpdater,
) = StarProjectionUtils.changeToStarProjection(actionContext.project, element)
override fun getActionName(
actionContext: ActionContext,
element: KtTypeElement,
elementContext: Unit,
): String = StarProjectionUtils.changeToStarProjectionActionName(element)
override fun getFamilyName(): String = KotlinBundle.message("fix.change.to.star.projection.family")
}
}
@@ -0,0 +1,35 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.idea.quickfix
import com.intellij.modcommand.ActionContext
import com.intellij.modcommand.ModPsiUpdater
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.intentions.KotlinPsiUpdateModCommandAction
import org.jetbrains.kotlin.psi.KtPsiFactory
import org.jetbrains.kotlin.psi.KtUserType
import org.jetbrains.kotlin.utils.sure
class AddStarProjectionsFix(
element: KtUserType,
private val argumentCount: Int,
) : KotlinPsiUpdateModCommandAction.ElementBased<KtUserType, Unit>(element, Unit) {
override fun invoke(
actionContext: ActionContext,
element: KtUserType,
elementContext: Unit,
updater: ModPsiUpdater,
) {
assert(element.typeArguments.isEmpty())
val typeString = StarProjectionUtils.getTypeNameAndStarProjectionsString(element.text, argumentCount)
val psiFactory = KtPsiFactory(actionContext.project)
val replacement = psiFactory.createType(typeString).typeElement.sure { "No type element after parsing $typeString" }
element.replace(replacement)
}
override fun getFamilyName(): String {
return KotlinBundle.message(
"fix.add.star.projection.text",
StarProjectionUtils.getTypeNameAndStarProjectionsString("", argumentCount))
}
}
@@ -0,0 +1,35 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.idea.quickfix
import com.intellij.modcommand.ActionContext
import com.intellij.modcommand.ModPsiUpdater
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.intentions.KotlinPsiUpdateModCommandAction
import org.jetbrains.kotlin.psi.KtPsiFactory
import org.jetbrains.kotlin.psi.KtTypeElement
class ChangeToStarProjectionFix(
element: KtTypeElement,
) : KotlinPsiUpdateModCommandAction.ElementBased<KtTypeElement, Unit>(element, Unit) {
override fun invoke(
actionContext: ActionContext,
element: KtTypeElement,
elementContext: Unit,
updater: ModPsiUpdater,
) {
val star = KtPsiFactory(actionContext.project).createStar()
element.typeArgumentsAsTypes.forEach { it?.replace(star) }
}
override fun getActionName(
actionContext: ActionContext,
element: KtTypeElement,
elementContext: Unit,
): String {
val type = element.typeArgumentsAsTypes.joinToString { "*" }
return KotlinBundle.message("fix.change.to.star.projection.text", "<$type>")
}
override fun getFamilyName(): String = KotlinBundle.message("fix.change.to.star.projection.family")
}
@@ -2,8 +2,6 @@
package org.jetbrains.kotlin.idea.quickfix
import com.intellij.codeInspection.util.IntentionFamilyName
import com.intellij.codeInspection.util.IntentionName
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.idea.base.facet.platform.platform
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
@@ -12,35 +10,11 @@ import org.jetbrains.kotlin.platform.jvm.isJvm
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
import org.jetbrains.kotlin.utils.sure
object StarProjectionUtils {
@IntentionFamilyName
val starProjectionFixFamilyName = KotlinBundle.message("fix.add.star.projection.family")
@IntentionName
fun addStarProjectionsActionName(argumentCount: Int): String {
return KotlinBundle.message("fix.add.star.projection.text", getTypeNameAndStarProjectionsString("", argumentCount))
}
fun addStarProjections(project: Project, element: KtUserType, argumentCount: Int) {
val typeString = getTypeNameAndStarProjectionsString(element.text, argumentCount)
val psiFactory = KtPsiFactory(project)
val replacement = psiFactory.createType(typeString).typeElement.sure { "No type element after parsing $typeString" }
element.replace(replacement)
}
@IntentionName
fun changeToStarProjectionActionName(element: KtTypeElement): String {
val type = element.typeArgumentsAsTypes.joinToString { "*" }
return KotlinBundle.message("fix.change.to.star.projection.text", "<$type>")
}
fun changeToStarProjection(project: Project, element: KtTypeElement) {
val star = KtPsiFactory(project).createStar()
element.typeArgumentsAsTypes.forEach { it?.replace(star) }
}
data class ChangeToStarProjectionFixInfo(
val binaryExpr: KtBinaryExpressionWithTypeRHS?,
val typeReference: KtTypeReference?,
@@ -16,13 +16,12 @@ import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.KtPsiFactory
import org.jetbrains.kotlin.psi.KtTypeReference
import org.jetbrains.kotlin.psi.KtUserType
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.descriptorUtil.parentsWithSelf
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
import org.jetbrains.kotlin.resolve.scopes.utils.findClassifier
object AddStarProjectionsFixFactory : KotlinSingleIntentionActionFactory() {
internal object AddStarProjectionsFixFactory : KotlinSingleIntentionActionFactory() {
public override fun createAction(diagnostic: Diagnostic): IntentionAction? {
val diagnosticWithParameters = Errors.NO_TYPE_ARGUMENTS_ON_RHS.cast(diagnostic)
val typeReference = diagnosticWithParameters.psiElement
@@ -32,24 +31,11 @@ object AddStarProjectionsFixFactory : KotlinSingleIntentionActionFactory() {
else {
val typeElement = typeReference.typeElement ?: return null
val unwrappedType = StarProjectionUtils.getUnwrappedType(typeElement) ?: return null
return AddStarProjectionsFix(unwrappedType, diagnosticWithParameters.a)
return AddStarProjectionsFix(unwrappedType, diagnosticWithParameters.a).asIntention()
}
}
}
class AddStarProjectionsFix(element: KtUserType, private val argumentCount: Int) : KotlinQuickFixAction<KtUserType>(element) {
override fun getFamilyName() = starProjectionFixFamilyName
override fun getText() = StarProjectionUtils.addStarProjectionsActionName(argumentCount)
override fun invoke(project: Project, editor: Editor?, file: KtFile) {
val element = element ?: return
assert(element.typeArguments.isEmpty())
StarProjectionUtils.addStarProjections(project, element, argumentCount)
}
}
class AddStartProjectionsForInnerClass(element: KtTypeReference) : KotlinQuickFixAction<KtTypeReference>(element) {
override fun getFamilyName() = text
@@ -3,15 +3,11 @@
package org.jetbrains.kotlin.idea.quickfix
import com.intellij.codeInsight.intention.IntentionAction
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.idea.base.psi.typeArguments
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.caches.resolve.resolveToCall
import org.jetbrains.kotlin.idea.codeinsight.api.classic.quickfixes.KotlinQuickFixAction
import org.jetbrains.kotlin.idea.quickfix.StarProjectionUtils.isAsKeyword
import org.jetbrains.kotlin.idea.quickfix.StarProjectionUtils.isOnJvm
import org.jetbrains.kotlin.psi.*
@@ -23,63 +19,49 @@ import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import org.jetbrains.kotlin.types.checker.SimpleClassicTypeSystemContext.isArrayOrNullableArray
import org.jetbrains.kotlin.types.typeUtil.isTypeParameter
class ChangeToStarProjectionFix(element: KtTypeElement) : KotlinQuickFixAction<KtTypeElement>(element) {
override fun getFamilyName() = KotlinBundle.message("fix.change.to.star.projection.family")
internal object ChangeToStarProjectionFixFactory : KotlinSingleIntentionActionFactory() {
override fun createAction(diagnostic: Diagnostic): IntentionAction? {
val psiElement = diagnostic.psiElement
override fun getText(): String {
val element = this.element ?: return ""
return StarProjectionUtils.changeToStarProjectionActionName(element)
}
// We don't suggest this quick-fix for array instance checks because there is ConvertToIsArrayOfCallFix
if (psiElement.parent is KtIsExpression && diagnostic.isArrayInstanceCheck() && psiElement.isOnJvm()) return null
public override fun invoke(project: Project, editor: Editor?, file: KtFile) {
val element = this.element ?: return
return StarProjectionUtils.changeToStarProjection(project, element)
}
val (binaryExpr, typeReference, typeElement) = StarProjectionUtils.getChangeToStarProjectionFixInfo(psiElement) ?: return null
companion object : KotlinSingleIntentionActionFactory() {
override fun createAction(diagnostic: Diagnostic): IntentionAction? {
val psiElement = diagnostic.psiElement
// We don't suggest this quick-fix for array instance checks because there is ConvertToIsArrayOfCallFix
if (psiElement.parent is KtIsExpression && diagnostic.isArrayInstanceCheck() && psiElement.isOnJvm()) return null
val (binaryExpr, typeReference, typeElement) = StarProjectionUtils.getChangeToStarProjectionFixInfo(psiElement) ?: return null
if (binaryExpr?.operationReference?.isAsKeyword() == true) {
val parent = binaryExpr.getParentOfTypes(
true,
KtValueArgument::class.java,
KtQualifiedExpression::class.java,
KtCallableDeclaration::class.java
)
if (parent is KtCallableDeclaration
&& parent.typeReference.typeArguments().any { it.projectionKind != KtProjectionKind.STAR }
&& typeReference.typeArguments().isNotEmpty()
&& binaryExpr.isUsedAsExpression(binaryExpr.analyze(BodyResolveMode.PARTIAL_WITH_CFA))
) return null
val type = when (parent) {
is KtValueArgument -> {
val callExpr = parent.getStrictParentOfType<KtCallExpression>()
(callExpr?.resolveToCall()?.getArgumentMapping(parent) as? ArgumentMatch)?.valueParameter?.original?.type
}
is KtQualifiedExpression ->
if (KtPsiUtil.safeDeparenthesize(parent.receiverExpression) == binaryExpr)
parent.resolveToCall()?.resultingDescriptor?.extensionReceiverParameter?.value?.original?.type
else
null
else ->
null
if (binaryExpr?.operationReference?.isAsKeyword() == true) {
val parent = binaryExpr.getParentOfTypes(
true,
KtValueArgument::class.java,
KtQualifiedExpression::class.java,
KtCallableDeclaration::class.java
)
if (parent is KtCallableDeclaration
&& parent.typeReference.typeArguments().any { it.projectionKind != KtProjectionKind.STAR }
&& typeReference.typeArguments().isNotEmpty()
&& binaryExpr.isUsedAsExpression(binaryExpr.analyze(BodyResolveMode.PARTIAL_WITH_CFA))
) return null
val type = when (parent) {
is KtValueArgument -> {
val callExpr = parent.getStrictParentOfType<KtCallExpression>()
(callExpr?.resolveToCall()?.getArgumentMapping(parent) as? ArgumentMatch)?.valueParameter?.original?.type
}
if (type?.arguments?.any { !it.isStarProjection && !it.type.isTypeParameter() } == true) return null
is KtQualifiedExpression ->
if (KtPsiUtil.safeDeparenthesize(parent.receiverExpression) == binaryExpr)
parent.resolveToCall()?.resultingDescriptor?.extensionReceiverParameter?.value?.original?.type
else
null
else ->
null
}
if (typeElement.typeArgumentsAsTypes.isNotEmpty()) {
return ChangeToStarProjectionFix(typeElement)
}
return null
if (type?.arguments?.any { !it.isStarProjection && !it.type.isTypeParameter() } == true) return null
}
private fun Diagnostic.isArrayInstanceCheck(): Boolean =
factory == Errors.CANNOT_CHECK_FOR_ERASED && Errors.CANNOT_CHECK_FOR_ERASED.cast(this).a.isArrayOrNullableArray()
if (typeElement.typeArgumentsAsTypes.isNotEmpty()) {
return ChangeToStarProjectionFix(typeElement).asIntention()
}
return null
}
private fun Diagnostic.isArrayInstanceCheck(): Boolean =
factory == Errors.CANNOT_CHECK_FOR_ERASED && Errors.CANNOT_CHECK_FOR_ERASED.cast(this).a.isArrayOrNullableArray()
}
@@ -337,8 +337,8 @@ class QuickFixRegistrar : QuickFixContributor {
LOCAL_VARIABLE_WITH_TYPE_PARAMETERS.registerFactory(RemovePsiElementSimpleFix.RemoveTypeParametersFactory)
LOCAL_VARIABLE_WITH_TYPE_PARAMETERS_WARNING.registerFactory(RemovePsiElementSimpleFix.RemoveTypeParametersFactory)
UNCHECKED_CAST.registerFactory(ChangeToStarProjectionFix)
CANNOT_CHECK_FOR_ERASED.registerFactory(ChangeToStarProjectionFix)
UNCHECKED_CAST.registerFactory(ChangeToStarProjectionFixFactory)
CANNOT_CHECK_FOR_ERASED.registerFactory(ChangeToStarProjectionFixFactory)
CANNOT_CHECK_FOR_ERASED.registerFactory(ConvertToIsArrayOfCallFix)
@@ -4,4 +4,4 @@ public fun foo(a: Any) {
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -4,4 +4,4 @@ public fun foo(a: Any) {
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -4,4 +4,4 @@ public fun foo(a: Any?) {
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -4,4 +4,4 @@ public fun foo(a: Any?) {
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) {
fun List<*>.bar() {}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) {
fun List<*>.bar() {}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) {
fun <T> List<T>.bar() {}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) {
fun <T> List<T>.bar() {}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) {
fun <T> Map<T, *>.bar() {}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) {
fun <T> Map<T, *>.bar() {}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -3,4 +3,4 @@ fun <T> test(list: List<*>): List<*> {
return list as List<T><caret>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -3,4 +3,4 @@ fun <T> test(list: List<*>): List<*> {
return list as List<*><caret>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -4,4 +4,4 @@ fun <T> test(list: List<*>): List<T> {
return list as List<T>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -4,4 +4,4 @@ fun <T> test(list: List<*>): List<T> {
return list as List<T>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -3,4 +3,4 @@ fun <T> test6(list: List<*>) {
val a: List<*> = list as List<T><caret>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -3,4 +3,4 @@ fun <T> test6(list: List<*>) {
val a: List<*> = list as List<*><caret>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -3,4 +3,4 @@ fun <T> test7(list: List<*>) {
val a = list as List<T><caret>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -3,4 +3,4 @@ fun <T> test7(list: List<*>) {
val a = list as List<*><caret>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) {
fun foo(list: List<*>) {}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) {
fun foo(list: List<*>) {}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) {
fun <T> foo(list: List<T>) {}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) {
fun <T> foo(list: List<T>) {}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) {
fun <T> foo(map: Map<T, *>) {}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) {
fun <T> foo(map: Map<T, *>) {}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) = when (a) {
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -5,4 +5,4 @@ fun test(a: Any) = when (a) {
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -1,4 +1,4 @@
// "Change type arguments to <*, *>" "true"
fun isStringToIntMap(map : Any) = map is Map<<caret>String, Int>
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -1,4 +1,4 @@
// "Change type arguments to <*, *>" "true"
fun isStringToIntMap(map : Any) = map is Map<<caret>*, *>
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -1,4 +1,4 @@
// "Change type arguments to <*>" "true"
fun isStringList(list : Any) = list is List<<caret>String>?
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -1,4 +1,4 @@
// "Change type arguments to <*>" "true"
fun isStringList(list : Any) = list is List<<caret>*>?
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -1,4 +1,4 @@
// "Change type arguments to <*>" "true"
fun isStringList(list : Any?) = list is (List<<caret>String>)
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -1,4 +1,4 @@
// "Change type arguments to <*>" "true"
fun isStringList(list : Any?) = list is (List<<caret>*>)
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.ChangeToStarProjectionFixFactory$ChangeToStarProjectionFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.ChangeToStarProjectionFix
@@ -3,4 +3,4 @@ public fun foo(a: Any) {
a is java.util.Array<caret>List
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -3,4 +3,4 @@ public fun foo(a: Any) {
a is java.util.ArrayList<*>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -3,4 +3,4 @@ public fun foo(a: Any) {
a is kotlin.collections.List<caret>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -3,4 +3,4 @@ public fun foo(a: Any) {
a is kotlin.collections.List<*>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -3,4 +3,4 @@ public fun foo(a: Any) {
a is kotlin.collections.Map<caret>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -3,4 +3,4 @@ public fun foo(a: Any) {
a is kotlin.collections.Map<*, *>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -3,4 +3,4 @@ public fun foo(a: Any) {
a is List<caret>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -3,4 +3,4 @@ public fun foo(a: Any) {
a is List<*>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -3,4 +3,4 @@ public fun foo(a: Any) {
a is Map<caret>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -3,4 +3,4 @@ public fun foo(a: Any) {
a is Map<*, *>
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -6,4 +6,4 @@ public fun foo(a: Any) {
}
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -6,4 +6,4 @@ public fun foo(a: Any) {
}
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -6,4 +6,4 @@ public fun foo(a: Any) {
}
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -6,4 +6,4 @@ public fun foo(a: Any) {
}
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -6,4 +6,4 @@ public fun foo(a: Any) {
}
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -6,4 +6,4 @@ public fun foo(a: Any) {
}
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -6,4 +6,4 @@ public fun foo(a: Any) {
}
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -6,4 +6,4 @@ public fun foo(a: Any) {
}
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -6,4 +6,4 @@ public fun foo(a: Any) {
}
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
@@ -6,4 +6,4 @@ public fun foo(a: Any) {
}
}
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.k2.codeinsight.fixes.AddStarProjectionsFixFactory$AddStarProjectionsFix
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.AddStarProjectionsFix