Skip to content

Commit 8e06246

Browse files
authored
SplitString: Support split strings within inspections & method target references (#2358)
1 parent 5273bb3 commit 8e06246

File tree

4 files changed

+6
-12
lines changed

4 files changed

+6
-12
lines changed

src/main/kotlin/platform/mixin/inspection/reference/AmbiguousReferenceInspection.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import com.intellij.psi.PsiAnnotation
3535
import com.intellij.psi.PsiAnnotationMemberValue
3636
import com.intellij.psi.PsiArrayInitializerMemberValue
3737
import com.intellij.psi.PsiBinaryExpression
38-
import com.intellij.psi.PsiLiteral
3938

4039
class AmbiguousReferenceInspection : MixinAnnotationAttributeInspection("method") {
4140

@@ -53,8 +52,8 @@ class AmbiguousReferenceInspection : MixinAnnotationAttributeInspection("method"
5352
}
5453

5554
when (value) {
56-
is PsiLiteral -> checkMember(value, holder)
5755
is PsiArrayInitializerMemberValue -> value.initializers.forEach { checkMember(it, holder) }
56+
else -> checkMember(value, holder)
5857
}
5958
}
6059

@@ -80,7 +79,7 @@ class AmbiguousReferenceInspection : MixinAnnotationAttributeInspection("method"
8079

8180
val elementFactory = JavaPsiFacade.getElementFactory(project)
8281

83-
if (constantValue != null && element is PsiLiteral) {
82+
if (constantValue != null) {
8483
val newLiteral = "\"${StringUtil.escapeStringCharacters("$constantValue*")}\""
8584
element.replace(elementFactory.createExpressionFromText(newLiteral, null))
8685
} else {

src/main/kotlin/platform/mixin/inspection/reference/InvalidMemberReferenceInspection.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import com.intellij.psi.JavaElementVisitor
3333
import com.intellij.psi.PsiArrayInitializerMemberValue
3434
import com.intellij.psi.PsiElement
3535
import com.intellij.psi.PsiElementVisitor
36-
import com.intellij.psi.PsiLiteral
3736
import com.intellij.psi.PsiNameValuePair
3837

3938
class InvalidMemberReferenceInspection : MixinInspection() {
@@ -68,10 +67,10 @@ class InvalidMemberReferenceInspection : MixinInspection() {
6867

6968
// Attempt to parse the reference
7069
when (value) {
71-
is PsiLiteral -> checkMemberReference(value, value.constantStringValue)
7270
is PsiArrayInitializerMemberValue -> value.initializers.forEach {
7371
checkMemberReference(it, it.constantStringValue)
7472
}
73+
else -> checkMemberReference(value, value.constantStringValue)
7574
}
7675
}
7776

src/main/kotlin/platform/mixin/inspection/reference/UnnecessaryQualifiedMemberReferenceInspection.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ import com.intellij.psi.JavaPsiFacade
3434
import com.intellij.psi.PsiAnnotation
3535
import com.intellij.psi.PsiAnnotationMemberValue
3636
import com.intellij.psi.PsiArrayInitializerMemberValue
37-
import com.intellij.psi.PsiLiteral
3837

3938
class UnnecessaryQualifiedMemberReferenceInspection : MixinAnnotationAttributeInspection("method") {
4039

@@ -51,8 +50,8 @@ class UnnecessaryQualifiedMemberReferenceInspection : MixinAnnotationAttributeIn
5150
}
5251

5352
when (value) {
54-
is PsiLiteral -> checkMemberReference(value, holder)
5553
is PsiArrayInitializerMemberValue -> value.initializers.forEach { checkMemberReference(it, holder) }
54+
else -> checkMemberReference(value, holder)
5655
}
5756
}
5857

src/main/kotlin/platform/mixin/reference/AbstractMethodReference.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ import com.intellij.codeInsight.lookup.LookupElementBuilder
4343
import com.intellij.psi.PsiAnnotation
4444
import com.intellij.psi.PsiArrayInitializerMemberValue
4545
import com.intellij.psi.PsiElement
46-
import com.intellij.psi.PsiLiteral
4746
import com.intellij.psi.PsiSubstitutor
4847
import com.intellij.psi.ResolveResult
4948
import com.intellij.psi.util.parentOfType
@@ -111,9 +110,8 @@ abstract class AbstractMethodReference : PolyReferenceResolver(), MixinReference
111110
private fun resolve(context: PsiElement): Sequence<ClassAndMethodNode>? {
112111
val targets = getTargets(context) ?: return null
113112
val targetedMethods = when (context) {
114-
is PsiLiteral -> context.constantStringValue?.let { listOf(it) } ?: emptyList()
115113
is PsiArrayInitializerMemberValue -> context.initializers.mapNotNull { it.constantStringValue }
116-
else -> emptyList()
114+
else -> context.constantStringValue?.let { listOf(it) } ?: emptyList()
117115
}
118116

119117
return targetedMethods.asSequence().flatMap { method ->
@@ -141,9 +139,8 @@ abstract class AbstractMethodReference : PolyReferenceResolver(), MixinReference
141139
val targets = getTargets(context) ?: return null
142140

143141
val targetedMethods = when (context) {
144-
is PsiLiteral -> context.constantStringValue?.let { listOf(it) } ?: emptyList()
145142
is PsiArrayInitializerMemberValue -> context.initializers.mapNotNull { it.constantStringValue }
146-
else -> emptyList()
143+
else -> context.constantStringValue?.let { listOf(it) } ?: emptyList()
147144
}
148145

149146
return targetedMethods.asSequence().flatMap { method ->

0 commit comments

Comments
 (0)