[SLC] SymbolLightAbstractAnnotationParameterList: introduce more flexible symbolLightAnnotationParameterList api
^KT-56046
This commit is contained in:
committed by
Space Team
parent
d7535c303d
commit
197160fbd7
+12
-2
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.light.classes.symbol.annotations
|
||||
|
||||
import com.intellij.psi.PsiAnnotationParameterList
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtNamedAnnotationValue
|
||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
|
||||
@@ -16,10 +17,19 @@ internal sealed class SymbolLightAbstractAnnotationParameterList(
|
||||
override val kotlinOrigin: KtElement? get() = (parent as SymbolLightAbstractAnnotation).kotlinOrigin?.valueArgumentList
|
||||
}
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
internal inline fun SymbolLightAbstractAnnotation.symbolLightAnnotationParameterList(): SymbolLightAbstractAnnotationParameterList {
|
||||
return SymbolLightEmptyAnnotationParameterList(this)
|
||||
}
|
||||
|
||||
internal fun SymbolLightAbstractAnnotation.symbolLightAnnotationParameterList(
|
||||
arguments: List<KtNamedAnnotationValue> = emptyList(),
|
||||
arguments: List<KtNamedAnnotationValue>,
|
||||
): SymbolLightAbstractAnnotationParameterList = if (arguments.isNotEmpty()) {
|
||||
SymbolLightLazyAnnotationParameterList(this, lazyOf(arguments))
|
||||
} else {
|
||||
SymbolLightEmptyAnnotationParameterList(this)
|
||||
symbolLightAnnotationParameterList()
|
||||
}
|
||||
|
||||
internal inline fun SymbolLightAbstractAnnotation.symbolLightAnnotationParameterList(
|
||||
crossinline argumentsComputer: () -> List<KtNamedAnnotationValue>,
|
||||
): SymbolLightAbstractAnnotationParameterList = SymbolLightLazyAnnotationParameterList(this, lazyPub { argumentsComputer() })
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ internal open class SymbolLightJavaAnnotation(
|
||||
override fun getQualifiedName(): String = javaQualifier
|
||||
|
||||
private val _parameterList: PsiAnnotationParameterList by lazyPub {
|
||||
SymbolLightLazyAnnotationParameterList(this, lazyPub { argumentsComputer() })
|
||||
symbolLightAnnotationParameterList { argumentsComputer() }
|
||||
}
|
||||
|
||||
override fun getParameterList(): PsiAnnotationParameterList = _parameterList
|
||||
|
||||
+2
-2
@@ -40,9 +40,9 @@ internal class SymbolLightLazyAnnotation(
|
||||
|
||||
private val _parameterList: PsiAnnotationParameterList by lazyPub {
|
||||
if (annotationApplication.isCallWithArguments) {
|
||||
SymbolLightLazyAnnotationParameterList(this, lazyPub { annotationApplicationWithArgumentsInfo.value.arguments })
|
||||
symbolLightAnnotationParameterList { annotationApplicationWithArgumentsInfo.value.arguments }
|
||||
} else {
|
||||
SymbolLightEmptyAnnotationParameterList(this)
|
||||
symbolLightAnnotationParameterList()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user