User: fx morin Date: 14 Aug 24 07:21 Revision: 8e06246b824b12dfe83cadd202b252ac2b7c279c Summary: SplitString: Support split strings within inspections & method target references (#2358) TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=9617&personal=false Index: src/main/kotlin/platform/mixin/inspection/reference/AmbiguousReferenceInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/reference/AmbiguousReferenceInspection.kt (revision 5273bb3ec019de72223f93d50544b79fde039ca8) +++ src/main/kotlin/platform/mixin/inspection/reference/AmbiguousReferenceInspection.kt (revision 8e06246b824b12dfe83cadd202b252ac2b7c279c) @@ -35,7 +35,6 @@ import com.intellij.psi.PsiAnnotationMemberValue import com.intellij.psi.PsiArrayInitializerMemberValue import com.intellij.psi.PsiBinaryExpression -import com.intellij.psi.PsiLiteral class AmbiguousReferenceInspection : MixinAnnotationAttributeInspection("method") { @@ -53,8 +52,8 @@ } when (value) { - is PsiLiteral -> checkMember(value, holder) is PsiArrayInitializerMemberValue -> value.initializers.forEach { checkMember(it, holder) } + else -> checkMember(value, holder) } } @@ -80,7 +79,7 @@ val elementFactory = JavaPsiFacade.getElementFactory(project) - if (constantValue != null && element is PsiLiteral) { + if (constantValue != null) { val newLiteral = "\"${StringUtil.escapeStringCharacters("$constantValue*")}\"" element.replace(elementFactory.createExpressionFromText(newLiteral, null)) } else { Index: src/main/kotlin/platform/mixin/inspection/reference/InvalidMemberReferenceInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/reference/InvalidMemberReferenceInspection.kt (revision 5273bb3ec019de72223f93d50544b79fde039ca8) +++ src/main/kotlin/platform/mixin/inspection/reference/InvalidMemberReferenceInspection.kt (revision 8e06246b824b12dfe83cadd202b252ac2b7c279c) @@ -33,7 +33,6 @@ import com.intellij.psi.PsiArrayInitializerMemberValue import com.intellij.psi.PsiElement import com.intellij.psi.PsiElementVisitor -import com.intellij.psi.PsiLiteral import com.intellij.psi.PsiNameValuePair class InvalidMemberReferenceInspection : MixinInspection() { @@ -68,10 +67,10 @@ // Attempt to parse the reference when (value) { - is PsiLiteral -> checkMemberReference(value, value.constantStringValue) is PsiArrayInitializerMemberValue -> value.initializers.forEach { checkMemberReference(it, it.constantStringValue) } + else -> checkMemberReference(value, value.constantStringValue) } } Index: src/main/kotlin/platform/mixin/inspection/reference/UnnecessaryQualifiedMemberReferenceInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/reference/UnnecessaryQualifiedMemberReferenceInspection.kt (revision 5273bb3ec019de72223f93d50544b79fde039ca8) +++ src/main/kotlin/platform/mixin/inspection/reference/UnnecessaryQualifiedMemberReferenceInspection.kt (revision 8e06246b824b12dfe83cadd202b252ac2b7c279c) @@ -34,7 +34,6 @@ import com.intellij.psi.PsiAnnotation import com.intellij.psi.PsiAnnotationMemberValue import com.intellij.psi.PsiArrayInitializerMemberValue -import com.intellij.psi.PsiLiteral class UnnecessaryQualifiedMemberReferenceInspection : MixinAnnotationAttributeInspection("method") { @@ -51,8 +50,8 @@ } when (value) { - is PsiLiteral -> checkMemberReference(value, holder) is PsiArrayInitializerMemberValue -> value.initializers.forEach { checkMemberReference(it, holder) } + else -> checkMemberReference(value, holder) } } Index: src/main/kotlin/platform/mixin/reference/AbstractMethodReference.kt =================================================================== --- src/main/kotlin/platform/mixin/reference/AbstractMethodReference.kt (revision 5273bb3ec019de72223f93d50544b79fde039ca8) +++ src/main/kotlin/platform/mixin/reference/AbstractMethodReference.kt (revision 8e06246b824b12dfe83cadd202b252ac2b7c279c) @@ -43,7 +43,6 @@ import com.intellij.psi.PsiAnnotation import com.intellij.psi.PsiArrayInitializerMemberValue import com.intellij.psi.PsiElement -import com.intellij.psi.PsiLiteral import com.intellij.psi.PsiSubstitutor import com.intellij.psi.ResolveResult import com.intellij.psi.util.parentOfType @@ -111,9 +110,8 @@ private fun resolve(context: PsiElement): Sequence? { val targets = getTargets(context) ?: return null val targetedMethods = when (context) { - is PsiLiteral -> context.constantStringValue?.let { listOf(it) } ?: emptyList() is PsiArrayInitializerMemberValue -> context.initializers.mapNotNull { it.constantStringValue } - else -> emptyList() + else -> context.constantStringValue?.let { listOf(it) } ?: emptyList() } return targetedMethods.asSequence().flatMap { method -> @@ -141,9 +139,8 @@ val targets = getTargets(context) ?: return null val targetedMethods = when (context) { - is PsiLiteral -> context.constantStringValue?.let { listOf(it) } ?: emptyList() is PsiArrayInitializerMemberValue -> context.initializers.mapNotNull { it.constantStringValue } - else -> emptyList() + else -> context.constantStringValue?.let { listOf(it) } ?: emptyList() } return targetedMethods.asSequence().flatMap { method ->