@@ -13,6 +13,7 @@ import com.intellij.psi.ResolveResult
13
13
import com.intellij.psi.search.GlobalSearchScope
14
14
import org.jetbrains.kotlin.analysis.api.analyze
15
15
import org.jetbrains.kotlin.analysis.api.types.KaClassType
16
+ import org.jetbrains.kotlin.asJava.classes.KtLightClass
16
17
import org.jetbrains.kotlin.asJava.toLightClass
17
18
import org.jetbrains.kotlin.idea.stubindex.KotlinPropertyShortNameIndex
18
19
import org.jetbrains.kotlin.name.ClassId
@@ -24,7 +25,7 @@ const val LANGUAGE_FEATURE_FQ_NAME = "org.jetbrains.kotlin.config.LanguageFeatur
24
25
private val VALUE_DIRECTIVE_CLASS_ID =
25
26
ClassId .topLevel(FqName (" org.jetbrains.kotlin.test.directives.model.ValueDirective" ))
26
27
27
- typealias EnumClassProvider = (Project ) -> Array < out PsiClass >
28
+ typealias EnumClassProvider = (Project ) -> List < PsiClass >
28
29
29
30
class EnumValueReference (
30
31
element : PsiElement ,
@@ -52,26 +53,27 @@ class EnumValueReference(
52
53
override fun getVariants (): Array <Any > = emptyArray()
53
54
}
54
55
55
- fun getLanguageFeatureClasses (project : Project ): Array < out PsiClass > {
56
+ fun getLanguageFeatureClasses (project : Project ): List < PsiClass > {
56
57
val psiFacade = JavaPsiFacade .getInstance(project)
57
- return psiFacade
58
- .findClasses(
59
- LANGUAGE_FEATURE_FQ_NAME ,
60
- GlobalSearchScope .allScope(project)
61
- )
58
+
59
+ return resolvePreferringProjectScope(project) {
60
+ psiFacade.findClasses(LANGUAGE_FEATURE_FQ_NAME , it).toList()
61
+ }
62
62
}
63
63
64
- fun getEnumClassesByDirective (key : String , project : Project ): Array <out PsiClass > {
65
- val declarations =
66
- KotlinPropertyShortNameIndex .Helper [key, project, GlobalSearchScope .allScope(project)]
64
+ fun getEnumClassesByDirective (key : String , project : Project ): List <KtLightClass > {
65
+ return resolvePreferringProjectScope(project) {
66
+ val declarations =
67
+ KotlinPropertyShortNameIndex .Helper [key, project, GlobalSearchScope .allScope(project)]
67
68
68
- return declarations.mapNotNull {
69
- analyze(it) {
70
- if (it.returnType.isClassType(VALUE_DIRECTIVE_CLASS_ID )) {
71
- ((it.returnType as KaClassType ).typeArguments.firstOrNull()?.type?.expandedSymbol?.psi as ? KtClass )?.toLightClass()
72
- } else {
73
- null
69
+ declarations.mapNotNull {
70
+ analyze(it) {
71
+ if (it.returnType.isClassType(VALUE_DIRECTIVE_CLASS_ID )) {
72
+ ((it.returnType as KaClassType ).typeArguments.firstOrNull()?.type?.expandedSymbol?.psi as ? KtClass )?.toLightClass()
73
+ } else {
74
+ null
75
+ }
74
76
}
75
77
}
76
- }.toTypedArray()
78
+ }
77
79
}
0 commit comments